คุณต้องใช้xsd.exe
เครื่องมือที่ได้รับการติดตั้งด้วย Windows SDK ในไดเรกทอรีสิ่งที่คล้ายกับ:
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin
และในคอมพิวเตอร์ 64 บิต:
C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\bin
และบนคอมพิวเตอร์ Windows 10:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin
ในการรันครั้งแรกคุณใช้xsd.exe
และคุณแปลง XML ตัวอย่างของคุณเป็นไฟล์ XSD (ไฟล์ XML schema):
xsd yourfile.xml
สิ่งนี้ให้คุณyourfile.xsd
ซึ่งในขั้นตอนที่สองคุณสามารถแปลงอีกครั้งโดยใช้xsd.exe
เป็นคลาส C #:
xsd yourfile.xsd /c
สิ่งนี้จะให้ไฟล์yourfile.cs
ซึ่งจะมีคลาส C # ที่คุณสามารถใช้ในการ deserialize ไฟล์ XML ที่คุณได้รับ - เช่น:
XmlSerializer serializer = new XmlSerializer(typeof(msg));
msg resultingMessage = (msg)serializer.Deserialize(new XmlTextReader("yourfile.xml"));
ควรทำงานค่อนข้างดีสำหรับกรณีส่วนใหญ่
อัปเดต: XML serializer จะใช้สตรีมใด ๆ ก็ได้เป็นอินพุต - ไฟล์หรือสตรีมหน่วยความจำจะใช้ได้:
XmlSerializer serializer = new XmlSerializer(typeof(msg));
MemoryStream memStream = new MemoryStream(Encoding.UTF8.GetBytes(inputString));
msg resultingMessage = (msg)serializer.Deserialize(memStream);
หรือใช้ StringReader:
XmlSerializer serializer = new XmlSerializer(typeof(msg));
StringReader rdr = new StringReader(inputString);
msg resultingMessage = (msg)serializer.Deserialize(rdr);