我有一个XSD文件。我需要在运行时为XSD中的复杂类型创建XML文件。
我能够在XSD文件中找到复杂类型。但我无法将其解析为XML文件。
实际上,有几个基于此XSD文件创建的XML文件。如果删除了任何xml文件,我需要在运行时从XSD恢复它。
请帮助我成为XSD的新蜜蜂。
提前致谢
答案 0 :(得分:1)
XSD文件描述XML文件的结构,但不描述其内容 - 通常有许多不同的XML文件,具有不同的内容,对应于相同的XSD。例如。对
<xs:element name="test">
<xs:complexType>
<xs:attribute name="a" type="xs:string" use="optional"/>
<xs:attribute name="b" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
有效的XML可以是
<test a="something" b="something else"/>
但也
<test a="" b="2012"/>
甚至
<test/>
您将如何决定生成哪个特定的XML?或者您只需要与XSD匹配的任何XML,只需要虚拟内容?
.NET Framework包含一个完整的XSD对象模型 - 在命名空间System.Xml.Schema
中,您可以使用这些类加载XSD并获得相对容易的信息 - 最终会得到一个{ {1}}实例包含所有可能属性和子元素及其类型的列表,您可以使用它来生成XML。