不可能同时拥有extension
和restriction
在同一个类型定义中。定义一个带限制的简单类型,然后扩展这个自定义类型。您可以将此简单类型用于元素和属性定义。
请注意,XML(以及扩展,如果您原谅双关语,XML Schema)是区分大小写的。“限定符”和“限定符”不是相同的属性名称。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="PRODUCT" type="PRODUCTType"/>
<xs:complexType name="PRODUCTType">
<xs:simpleContent>
<xs:extension base="restrictedType">
<xs:attribute name="qualifier" type="restrictedType" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="restrictedType">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
以下 XML 文档将针对上述模式有效:
<?xml version="1.0" encoding="UTF-8"?>
<PRODUCT qualifier="value">text</PRODUCT>
而文件像
<?xml version="1.0" encoding="UTF-8"?>
<PRODUCT qualifier="">text</PRODUCT>
或者
<?xml version="1.0" encoding="UTF-8"?>
<PRODUCT qualifier="value"></PRODUCT>
将无效。