如何从XSD文件生成XML文件?
解决方案假设我们已经Test.xsd文件,该文件是这样的:
< XML版本=1.0&GT?;
< XS:模式的xmlns:XS =http://www.w3.org/2001/XMLSchema>
< XS:元素的名称=MyClass的>
< XS:复杂类型>
< XS:序列>
< XS:元素的名称=字段1
TYPE =XS:字符串/>
< XS:元素的名称=字段2
TYPE =XS:字符串/>
< / XS:序列>
< / XS:复杂类型>
< / XS:组件>
< / XS:模式>
创建使用XSD工具类:
XSD.EXE /类Test.xsd
这将产生test.cs中的文件。
添加test.cs中的文件到您的解决方案。
创建实例 MyClass的
,在XSD架构定义和XMLSERIALIZE是:
使用的System.Xml.Serialization;
// ...
VAR数据=新MyClass的{字段1 =测试1,字段2 =测试2};
无功序列化=新的XmlSerializer(typeof运算(MyClass的));
使用(VAR流=新的StreamWriter(C:\的test.xml))
serializer.Serialize(流数据);
结果:
< XML版本=1.0编码=UTF-8&GT?;
< MyClass的的xmlns:XSD =http://www.w3.org/2001/XMLSchema的xmlns:XSI =http://www.w3.org/2001/XMLSchema-instance>
<字段1>测试1< /字段1>
<场2>的test2< /场2>
< / MyClass的>
How to generate XML file from XSD file?
解决方案Suppose we have Test.xsd file that looks like this:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="MyClass">
<xs:complexType>
<xs:sequence>
<xs:element name="Field1"
type="xs:string"/>
<xs:element name="Field2"
type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Create classes using xsd tool:
xsd.exe /classes Test.xsd
This will generate Test.cs file.
Add Test.cs file to your solution.
Create instance of MyClass
, defined in XSD schema and XmlSerialize it:
using System.Xml.Serialization;
// ...
var data = new MyClass { Field1 = "test1", Field2 = "test2" };
var serializer = new XmlSerializer(typeof(MyClass));
using (var stream = new StreamWriter("C:\test.xml"))
serializer.Serialize(stream, data);
Result:
<?xml version="1.0" encoding="utf-8"?>
<MyClass xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Field1>test1</Field1>
<Field2>test2</Field2>
</MyClass>