0

key と keyref を使用して参照のリスト (IDREFS タイプの要素など) を作成し、リスト内の各項目 (以下の例のリンク) がリンクの属性 @name を参照するようにします。

以下のコードは機能しませんが、次のように記述します。

<xs:element name="root">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="Node">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Links">
                        <xs:simpleType>
                            <xs:list itemType="xs:string" />
                        </xs:simpleType>
                        <xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="Link">
            <xs:complexType>
                <xs:attribute type="xs:string" name="name" use="required" />
                <xs:attribute type="xs:string" name="source" use="required" />
                <xs:attribute type="xs:string" name="destination" use="required" />
            </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:key name="LinkKey">
        <xs:selector xpath="Link" />
        <xs:field xpath="@name" />
    </xs:key>
    <xs:keyref name="LinkRef" refer="LinkKey">
        <xs:selector xpath="Node" />
        <xs:field xpath="Links" />
    </xs:keyref>
<xs:element>

それ以外の:

<xs:element name="root">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="Node">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Links" type:"xs:IDREFS" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="Link">
            <xs:complexType>
                <xs:attribute type="xs:ID" name="name" use="required" />
                <xs:attribute type="xs:string" name="source" use="required" />
                <xs:attribute type="xs:string" name="destination" use="required" />
            </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
<xs:element>

出来ますか?

4

1 に答える 1

0

いいえ、key と keyref を使用してこれを行うことはできません。XSD 1.1 アサーションを使用する必要があります。

于 2016-11-04T21:39:14.110 に答える