0

非(null |空白)である必要があり、非(null |空白)でもある「修飾子」属性を持つ複合型の作成に問題があります。これは私がこれまでに持っているものです。

<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>
4

1 に答える 1

0

と の両方extensionrestriction同じ型定義に含めることはできません。制限付きの単純型を定義してから、このカスタム型を拡張します。この単純型は、要素と属性の定義の両方に使用できます。

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>

は無効になります。

于 2016-02-04T19:09:34.817 に答える