【问题标题】:Parsing complex type element in xsd and create xml file解析 xsd 中的复杂类型元素并创建 xml 文件
【发布时间】:2012-04-17 05:00:10
【问题描述】:

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

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

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

请帮助我是 XSD 的新成员。

提前致谢

【问题讨论】:

    标签: c# xsd xml-parsing


    【解决方案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 并相对容易地获取您需要的信息 - 您最终会得到一个 XmlSchemaComplexType具有所有可能属性和子元素及其类型的列表的实例,您可以使用它来生成 XML。

    【讨论】:

    • Mimo ..感谢您的帮助...但我只是尝试了另一种方法,即使用 ICodeCompiler 编译 XSD 文件。然后序列化类..无论如何感谢您的帮助..
    猜你喜欢
    • 2015-07-11
    • 2013-11-14
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多