简体   繁体   English

XMLSchema验证中的元素是否有通配符?

[英]Is there a wildcard for elements in XMLSchema validation?

My XML file consists of a general part, which I want to validate, and a special part, which is validated later (using a different xsd file which checks the general part again which is ok since it does not change). 我的XML文件包含一个我要验证的常规部分和一个稍后进行验证的特殊部分(使用另一个xsd文件,该文件再次检查该常规部分,因为它不变,所以可以)。

How can I tell XMLSchema to check only for the element GeneralPart and not for the element SpecialPart? 我如何告诉XMLSchema仅检查元素GeneralPart而不检查元素SpecialPart? Also, the name SpecialPart should be interchangible if possible. 另外,名称SpecialPart尽可能应可以互换。 So I'd like to replace <xs:element name="SpecialPart" minOccurs="0" maxOccurs="1"> with something like <xs:anything/> ... 因此,我想将<xs:element name="SpecialPart" minOccurs="0" maxOccurs="1">替换为<xs:anything/> ...

<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">


  <xs:element name="MyModule">
    <xs:complexType>
      <xs:sequence>

        <!-- General part -->
        <xs:element name="GeneralPart" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Version" type="xs:string"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>

        <!-- Special part. -->
        <xs:element name="SpecialPart" minOccurs="0" maxOccurs="1">

      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

There is an any element : any元素

<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">


  <xs:element name="MyModule">
    <xs:complexType>
      <xs:sequence>

        <!-- General part -->
        <xs:element name="GeneralPart" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Version" type="xs:string"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>

        <xs:any minOccurs="0" maxOccurs="1" namespace="##any" processContents="skip"/>

      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Replacing <xs:element name="SpecialPart" minOccurs="0" maxOccurs="1"> with <xs:element name="SpecialPart" minOccurs="0" maxOccurs="1">替换为

<xs:element name="SpecialPart" type="xs:anyType" minOccurs="0" maxOccurs="1" />

works. 作品。 However, I have to keep the name "SpecialPart". 但是,我必须保留名称“ SpecialPart”。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM