在xsd中解析复杂类型元素并创建xml文件

时间:2012-04-17 05:00:10

标签: c# xsd xml-parsing

我有一个XSD文件。我需要在运行时为XSD中的复杂类型创建XML文件。

我能够在XSD文件中找到复杂类型。但我无法将其解析为XML文件。

实际上,有几个基于此XSD文件创建的XML文件。如果删除了任何xml文件,我需要在运行时从XSD恢复它。

请帮助我成为XSD的新蜜蜂。

提前致谢

1 个答案:

答案 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。