J
Jeremy
I've added the System.Xml.Serialization.XmlSchemaProvider attribute to my
class to customize the schema. Some of the datatypes in my schema are
strings, but I'm getting an error that string type is not declared. Can
anyone show me how to do this properly? I've included the code to my schema
below:
[System.Xml.Serialization.XmlSchemaProvider("MySchema")]
public class AnyTextData2 : AnyTextData,
System.Xml.Serialization.IXmlSerializable
{
public AnyTextData2()
{
}
public static System.Xml.XmlQualifiedName
MySchema(System.Xml.Schema.XmlSchemaSet xs)
{
System.Xml.Serialization.XmlSerializer schemaSerializer =
new
System.Xml.Serialization.XmlSerializer(typeof(System.Xml.Schema.XmlSchema));
System.Xml.Schema.XmlSchema s = AnyTextData2.Schema;
xs.XmlResolver = new System.Xml.XmlUrlResolver();
xs.Add(s);
return new System.Xml.XmlQualifiedName("AnyTextData2");//, ns);
}
private static System.Xml.Schema.XmlSchema Schema
{
get
{
/*
<s:complexType name="AnyTextData2">
<s:simpleContent>
<s:extension base="s:string">
<s:attribute name="Attribute" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
*/
System.Xml.Schema.XmlSchema pSchema = new
System.Xml.Schema.XmlSchema();
pSchema.ElementFormDefault =
System.Xml.Schema.XmlSchemaForm.Qualified;
//<s:complexType name="CData">
System.Xml.Schema.XmlSchemaComplexType pComplexType = new
System.Xml.Schema.XmlSchemaComplexType();
pComplexType.Name = "AnyTextData2";
//<xs:simpleContent>
System.Xml.Schema.XmlSchemaSimpleContent pSimpleContent = new
System.Xml.Schema.XmlSchemaSimpleContent();
//<s:extension base="s:string">
System.Xml.Schema.XmlSchemaSimpleContentExtension pExtension =
new System.Xml.Schema.XmlSchemaSimpleContentExtension();
pExtension.BaseTypeName = new
System.Xml.XmlQualifiedName("string");//"s:string"
//<s:attribute name="Attribute" type="s:string" />
System.Xml.Schema.XmlSchemaAttribute pAttribute = new
System.Xml.Schema.XmlSchemaAttribute();
pAttribute.Name = "Attribute";
pAttribute.SchemaTypeName = new
System.Xml.XmlQualifiedName("string");//"s:string"
pExtension.Attributes.Add(pAttribute);
pSimpleContent.Content = pExtension;
pComplexType.ContentModel = pSimpleContent;
pSchema.Items.Add(pComplexType);
return pSchema;
}
}
}
class to customize the schema. Some of the datatypes in my schema are
strings, but I'm getting an error that string type is not declared. Can
anyone show me how to do this properly? I've included the code to my schema
below:
[System.Xml.Serialization.XmlSchemaProvider("MySchema")]
public class AnyTextData2 : AnyTextData,
System.Xml.Serialization.IXmlSerializable
{
public AnyTextData2()
{
}
public static System.Xml.XmlQualifiedName
MySchema(System.Xml.Schema.XmlSchemaSet xs)
{
System.Xml.Serialization.XmlSerializer schemaSerializer =
new
System.Xml.Serialization.XmlSerializer(typeof(System.Xml.Schema.XmlSchema));
System.Xml.Schema.XmlSchema s = AnyTextData2.Schema;
xs.XmlResolver = new System.Xml.XmlUrlResolver();
xs.Add(s);
return new System.Xml.XmlQualifiedName("AnyTextData2");//, ns);
}
private static System.Xml.Schema.XmlSchema Schema
{
get
{
/*
<s:complexType name="AnyTextData2">
<s:simpleContent>
<s:extension base="s:string">
<s:attribute name="Attribute" type="s:string" />
</s:extension>
</s:simpleContent>
</s:complexType>
*/
System.Xml.Schema.XmlSchema pSchema = new
System.Xml.Schema.XmlSchema();
pSchema.ElementFormDefault =
System.Xml.Schema.XmlSchemaForm.Qualified;
//<s:complexType name="CData">
System.Xml.Schema.XmlSchemaComplexType pComplexType = new
System.Xml.Schema.XmlSchemaComplexType();
pComplexType.Name = "AnyTextData2";
//<xs:simpleContent>
System.Xml.Schema.XmlSchemaSimpleContent pSimpleContent = new
System.Xml.Schema.XmlSchemaSimpleContent();
//<s:extension base="s:string">
System.Xml.Schema.XmlSchemaSimpleContentExtension pExtension =
new System.Xml.Schema.XmlSchemaSimpleContentExtension();
pExtension.BaseTypeName = new
System.Xml.XmlQualifiedName("string");//"s:string"
//<s:attribute name="Attribute" type="s:string" />
System.Xml.Schema.XmlSchemaAttribute pAttribute = new
System.Xml.Schema.XmlSchemaAttribute();
pAttribute.Name = "Attribute";
pAttribute.SchemaTypeName = new
System.Xml.XmlQualifiedName("string");//"s:string"
pExtension.Attributes.Add(pAttribute);
pSimpleContent.Content = pExtension;
pComplexType.ContentModel = pSimpleContent;
pSchema.Items.Add(pComplexType);
return pSchema;
}
}
}