Hey, Simple XML Schema:
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="doc"> <xs:complexType> <xs:sequence> <xs:element name="i" type="xs:integer"/> <xs:element name="l" type="xs:long"/> <xs:element name="f" type="xs:float"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> If I push this one through xsd.exe /c I get: // // This source code was auto-generated by xsd, Version=1.0.3705.209. // using System.Xml.Serialization; /// <remarks/> [System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)] public class doc { /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(DataType="integer")] public string i; /// <remarks/> public long l; /// <remarks/> public System.Single f; } Why is my integer value compiled into string typed field and annoteded with integer datatype XmlElementAttribute? Any specific reasons that it is not converted to integer in the programmatic type system? The problem is, that this allows me to do: doc objDoc = new doc(); objDoc.i = "Lala"; And when I serialize using XmlSerializer I don't get a valid XML (for given schema). Actualy I get this: <?xml version="1.0"?> <doc xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <i>Lala</i> <l>21020012121</l> <f>9.876</f> </doc> Not good. Regards, Matevz. You can read messages from the Advanced DOTNET archive, unsubscribe from Advanced DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com.
