と の両方extension
をrestriction
同じ型定義に含めることはできません。制限付きの単純型を定義してから、このカスタム型を拡張します。この単純型は、要素と属性の定義の両方に使用できます。
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>
は無効になります。