代码之家  ›  专栏  ›  技术社区  ›  Natrium

XSD中的<any>不起作用?

  •  3
  • Natrium  · 技术社区  · 15 年前

    我正在尝试创建一个xml模式(xsd)来验证xml文件。

    <a>
        <b>
            <c>...</c>
            <d>...</d>
        </b>
        <b>
            <c>...</c>
            <e>...</e>
                <d>...</d>
        </b>
    <a>
    

    1 a-元素。 多个b元素,具有一些内容。

    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
        <xs:element name="a">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="b" minOccurs="1" maxOccurs="unbounded"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="b">
            <xs:complexType>
                <xs:sequence>
                    <xs:any minOccurs="1"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
    </xs:schema>
    

    我希望 any

    编辑:

    2 回复  |  直到 15 年前
        1
  •  2
  •   skaffman    15 年前

    从…起 这个模式。

    如果希望架构中不存在元素,则需要将其定义为:

    <xs:any minOccurs="1" processContents="lax"/>
    

    W3C spec 更多信息。

        2
  •  2
  •   Fiona - myaccessible.website    15 年前

        <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
      <xs:element name="a">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="b" minOccurs="1" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:any maxOccurs="unbounded" minOccurs="1" processContents="lax"/>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
    

    这说明你有 <a> <b> s

    编辑:

    第二次编辑: 上面的另一次尝试!