我有一个 XSD 文件。我需要在运行时为 XSD 中的复杂类型创建 XML 文件。
我能够在 XSD 文件中找到复杂类型。但我无法将其解析为 XML 文件。
实际上有几个基于这个 XSD 文件创建的 XML 文件。如果删除了任何 xml 文件,我需要在运行时从 XSD 恢复它。
请帮助我是 XSD 的新蜜蜂。
提前致谢
我有一个 XSD 文件。我需要在运行时为 XSD 中的复杂类型创建 XML 文件。
我能够在 XSD 文件中找到复杂类型。但我无法将其解析为 XML 文件。
实际上有几个基于这个 XSD 文件创建的 XML 文件。如果删除了任何 xml 文件,我需要在运行时从 XSD 恢复它。
请帮助我是 XSD 的新蜜蜂。
提前致谢
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 并相对容易地获取您需要的信息 - 您最终会得到一个XmlSchemaComplexType
包含所有可能属性列表的实例和子元素及其类型,您可以使用它来生成 XML。