目标:创建一个 complexType,允许元素“跳过”以任何顺序包含任何元素、任意次数,并验证我的 xml 没有错误。
架构:skip.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns="http://www.example.com/main"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.com/main"
attributeFormDefault="unqualified"
elementFormDefault="qualified"
>
<xs:complexType name="skip">
<xs:sequence>
<xs:any minOccurs="1"
maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:schema>
我将 skip.xsd 导入我的 main.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:esc="http://www.escmatrix.com/main"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.com/main"
attributeFormDefault="unqualified"
elementFormDefault="qualified"
>
<xs:include
schemaLocation="http://www.example/skip" />
<xs:element name="tasks">
<xs:complexType>
<xs:choice minOccurs="0"
maxOccurs="unbounded" >
<xs:element name="skip"
type="esc:skip" />
</xs:choice>
</xs:complexType>
</xs:element>
<xs:schema>
我需要验证可以具有以下形式的 xml:
<skip>
<anyelement1></anyelement1>
<anyelement2></anyelement2>
<anyelementN></anyelementN>
</skip>
问题:验证时出错;“cvc-complex-type.2.4.c:匹配的通配符是严格的,但找不到元素'anyelement1'的声明”