XMLSchema 验证中的元素是否有通配符?
Is there a wildcard for elements in XMLSchema validation?
我的 XML 文件由我要验证的通用部分和稍后验证的特殊部分组成(使用不同的 xsd 文件再次检查通用部分可以,因为它不会改变)。
如何让 XMLSchema 只检查元素 GeneralPart 而不检查元素 SpecialPart?此外,如果可能,名称 SpecialPart 应该可以互换。所以我想用 <xs:anything/>
...
之类的东西替换 <xs:element name="SpecialPart" minOccurs="0" maxOccurs="1">
<?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>
有一个any
element:
<?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>
用
替换<xs:element name="SpecialPart" minOccurs="0" maxOccurs="1">
<xs:element name="SpecialPart" type="xs:anyType" minOccurs="0" maxOccurs="1" />
有效。但是,我必须保留名称 "SpecialPart".
我的 XML 文件由我要验证的通用部分和稍后验证的特殊部分组成(使用不同的 xsd 文件再次检查通用部分可以,因为它不会改变)。
如何让 XMLSchema 只检查元素 GeneralPart 而不检查元素 SpecialPart?此外,如果可能,名称 SpecialPart 应该可以互换。所以我想用 <xs:anything/>
...
<xs:element name="SpecialPart" minOccurs="0" maxOccurs="1">
<?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>
有一个any
element:
<?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>
用
替换<xs:element name="SpecialPart" minOccurs="0" maxOccurs="1">
<xs:element name="SpecialPart" type="xs:anyType" minOccurs="0" maxOccurs="1" />
有效。但是,我必须保留名称 "SpecialPart".