EDN Admin
Well-known member
Hi
I am trying experimenting with XML serialization and deserialization using XSD.exe to generate the classes for me from my XML schema. The schema is pretty straight forward and is as follows
<span style="color:rgb(0,0,255) <?xml version="1.0" encoding="utf-8" ?><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: schema xmlns: xsd="http://www.w3.org/2001/XMLSchema"<br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) targetNamespace ="http://tryingXML.prasad.org/exampel2" <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) xmlns:tns="http://tryingXML.prasad.org/exampel2 <br style="color:rgb(0,0,255) <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd:element name="Properties" type ="tns: PropertyType"/><br style="color:rgb(0,0,255) <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: complexType name ="PropertyType" ><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: sequence><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: element name ="KeyValuePair" nillable ="false" type ="tns: KeyValue"/><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: element name ="ArrayOfElements" type ="tns: ArrayType" /><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) </xsd: sequence><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) </xsd: complexType><br style="color:rgb(0,0,255) <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: complexType name ="KeyValue <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: sequence><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: element name="Key" type ="xsd: string"/><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: element name="Value" type ="xsd: string"/><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) </xsd: sequence><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) </xsd: complexType><br style="color:rgb(0,0,255) <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: complexType name ="ArrayType <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: sequence minOccurs ="0" maxOccurs ="unbounded <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: element name ="ArrayElement" type ="tns: ElementType"/><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) </xsd: sequence><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) </xsd: complexType><br style="color:rgb(0,0,255) <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: complexType name ="ElementType <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: sequence><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: element name ="serverName" type ="xsd: string"/><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: element name ="Instance" type ="xsd: string" /><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: element name ="IntegratedAuth" type ="xsd: string"/><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) </xsd: sequence><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) </xsd: complexType><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) </xsd: schema>
I wrote following code to serialize / deserialize XML data for above schema. Following is the sample code.
<span style="color:rgb(0,0,255) XmlSerializer serialize = new XmlSerializer(typeof(PropertyType), "http://tryingXML.prasad.org/exampel2");<br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) PropertyType property = new PropertyType();<br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) property.KeyValuePair = new KeyValue();<br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) property.KeyValuePair.Key = "Test";<br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) property.KeyValuePair.Value = "TestValue";<br style="color:rgb(0,0,255) <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) ElementType[] arrElems = new ElementType[] { new ElementType { Instance ="TestServer", IntegratedAuth ="SSPI", serverName ="TST"}<br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) };<br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) property.ArrayOfElements = new ArrayType();<br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) property.ArrayOfElements.ArrayElement = arrElems;<br style="color:rgb(0,0,255) <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) FileStream stream = new FileStream("Output.xml",FileMode.Create);<br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) serialize.Serialize(stream, property);<br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <br style="color:rgb(0,0,255) <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) PropertyType ptype = (PropertyType)serialize.Deserialize(stream);<br style="color:rgb(0,0,255)
It serializes the values I am specifying to the XML file, but when I try to deseriaize the same file I get an error
"There is an error in XML document (0, 0)." with an inner exception of "Root Element is missing".
Let me know if I need to do anything else for this.
Thanks
Prasad
View the full article
I am trying experimenting with XML serialization and deserialization using XSD.exe to generate the classes for me from my XML schema. The schema is pretty straight forward and is as follows
<span style="color:rgb(0,0,255) <?xml version="1.0" encoding="utf-8" ?><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: schema xmlns: xsd="http://www.w3.org/2001/XMLSchema"<br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) targetNamespace ="http://tryingXML.prasad.org/exampel2" <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) xmlns:tns="http://tryingXML.prasad.org/exampel2 <br style="color:rgb(0,0,255) <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd:element name="Properties" type ="tns: PropertyType"/><br style="color:rgb(0,0,255) <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: complexType name ="PropertyType" ><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: sequence><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: element name ="KeyValuePair" nillable ="false" type ="tns: KeyValue"/><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: element name ="ArrayOfElements" type ="tns: ArrayType" /><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) </xsd: sequence><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) </xsd: complexType><br style="color:rgb(0,0,255) <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: complexType name ="KeyValue <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: sequence><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: element name="Key" type ="xsd: string"/><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: element name="Value" type ="xsd: string"/><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) </xsd: sequence><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) </xsd: complexType><br style="color:rgb(0,0,255) <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: complexType name ="ArrayType <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: sequence minOccurs ="0" maxOccurs ="unbounded <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: element name ="ArrayElement" type ="tns: ElementType"/><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) </xsd: sequence><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) </xsd: complexType><br style="color:rgb(0,0,255) <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: complexType name ="ElementType <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: sequence><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: element name ="serverName" type ="xsd: string"/><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: element name ="Instance" type ="xsd: string" /><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <xsd: element name ="IntegratedAuth" type ="xsd: string"/><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) </xsd: sequence><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) </xsd: complexType><br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) </xsd: schema>
I wrote following code to serialize / deserialize XML data for above schema. Following is the sample code.
<span style="color:rgb(0,0,255) XmlSerializer serialize = new XmlSerializer(typeof(PropertyType), "http://tryingXML.prasad.org/exampel2");<br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) PropertyType property = new PropertyType();<br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) property.KeyValuePair = new KeyValue();<br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) property.KeyValuePair.Key = "Test";<br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) property.KeyValuePair.Value = "TestValue";<br style="color:rgb(0,0,255) <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) ElementType[] arrElems = new ElementType[] { new ElementType { Instance ="TestServer", IntegratedAuth ="SSPI", serverName ="TST"}<br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) };<br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) property.ArrayOfElements = new ArrayType();<br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) property.ArrayOfElements.ArrayElement = arrElems;<br style="color:rgb(0,0,255) <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) FileStream stream = new FileStream("Output.xml",FileMode.Create);<br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) serialize.Serialize(stream, property);<br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) <br style="color:rgb(0,0,255) <br style="color:rgb(0,0,255) <span style="color:rgb(0,0,255) PropertyType ptype = (PropertyType)serialize.Deserialize(stream);<br style="color:rgb(0,0,255)
It serializes the values I am specifying to the XML file, but when I try to deseriaize the same file I get an error
"There is an error in XML document (0, 0)." with an inner exception of "Root Element is missing".
Let me know if I need to do anything else for this.
Thanks
Prasad
View the full article