I tried using xsd.exe
to convert an .xsd file into a C# class. It worked, but I'm still not quite sure how to use this class. It has several class-level attributes but the most interesting is System.Xml.Serialization.XmlTypeAttribute. Which class uses that attribute?
Is there a simple way to turn an instantiation of this clas开发者_开发知识库s into a string of XML?
Super straight-forward. I love the xsd tool. I have taken some liberties below.
//From xml to object
YourRootType inst = new XmlSerializer(typeof(YourRootType)).Deserialize(XmlReader.Create("some.xml"));
//From object to xml
Using(FileStream fs = new FileStream("some.xml", FileMode.Create))
new XmlSerializer(typeof(YourRootType)).Serialize(fs, inst);
Yes. Look at XmlSerializer [and StringWriter if you like].
Use the classes like normal classes. Then, when you serialize them to XML, the XML will validate against the schema. You can also take XML that validates against the schema and deserialize it back into instances of the classes.
精彩评论