【问题标题】:XSD schema for xml with same name but different type具有相同名称但类型不同的 xml 的 XSD 架构
【发布时间】:2014-07-22 17:46:33
【问题描述】:

如何构建一个 xsd 声明此 XML 的所有元素:

<a>
  <myElement type="type1">
    <idElement>1</idElement>
    <TypeOneContent>my content</TypeOneContent>
  </myElement>
  <myElement type="type2">
    <idElement>2</idElement>
    <qteElemetType2>3</qteElemetType2>
  </myElement>
  <myElement type="type3">
    <idElement>3</idElement>
  </myElement>
</a>

【问题讨论】:

    标签: xml xsd schema


    【解决方案1】:

    这可能是您的 XML 的 XSD

    <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:element name="a">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="myElement" maxOccurs="unbounded" minOccurs="0">
              <xs:complexType>
                <xs:sequence>
                  <xs:element type="xs:byte" name="idElement"/>
                  <xs:element type="xs:string" name="TypeOneContent" minOccurs="0"/>
                  <xs:element type="xs:byte" name="qteElemetType2" minOccurs="0"/>
                </xs:sequence>
                <xs:attribute type="xs:string" name="type" use="optional"/>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
    

    【讨论】:

    • 谢谢。 Orignially 我的 xml 是一个巨大的文件,有很多不同的类型。那么有没有办法让每个类型都有一个 complexType 而不是声明所有的都一样?
    【解决方案2】:

    XSD 1.0 和 XSD 1.1 中都存在的约束“元素声明一致”表示如果两个同级元素具有相同的名称,那么它们必须具有相同的类型。因此,您的问题的答案是无法完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-18
      • 2012-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-14
      • 1970-01-01
      相关资源
      最近更新 更多