Xml 如何在XSD复杂类型定义中混合扩展和限制
我在创建要求为非-(null | blank)且具有非-(null | blank)的“qualifier”属性的复杂类型时遇到问题。这就是我目前所拥有的Xml 如何在XSD复杂类型定义中混合扩展和限制,xml,xsd,xml-schema-collection,Xml,Xsd,Xml Schema Collection,我在创建要求为非-(null | blank)且具有非-(null | blank)的“qualifier”属性的复杂类型时遇到问题。这就是我目前所拥有的 <xsd:complexType name="PRODUCT"> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="Qualifier" type="xs
<xsd:complexType name="PRODUCT">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="Qualifier" type="xsd:string" use="required" />
</xsd:extension>
<xsd:restriction base="xsd:string">
<xsd:minLength value="1"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
在同一类型定义中不可能同时具有
扩展
和限制
。定义一个带有限制的简单类型,然后扩展此自定义类型。您可以将此简单类型用于元素和属性定义
请注意,XML(扩展一下,如果您不介意双关语的话,XML模式)是区分大小写的。“限定符”和“限定符”不是相同的属性名称
<?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>