wake-up-neo.com

Was bewirkt das ref-Attribut für ein Element in einer XSD?

Die Dokumentation scheint zu sagen, dass es auf ein anderes Element im Schema verweist, aber wie könnte es verwendet werden? Ich habe es noch nie in Schemas gesehen, mit denen ich gearbeitet habe.

Hat jemand nette Anwendungsfälle oder etwas, das seine Verwendung weiter erklären könnte?

Grundsätzlich verweist es auf ein anderes Element, das an einer anderen Stelle gelöscht wird und bei dem es sich möglicherweise um dasselbe Schemadokument handelt oder nicht. Beispielsweise könnte es aus einem extern referenzierten Schema in einem anderen Namespace stammen. Angenommen, Sie verwenden das item -Element häufig in mehreren verschiedenen Schemas. Sie können es (und alle anderen gängigen Typen und Attribute) in einem common -Schema deklarieren und diese dann in wiederverwenden alle Ihre anderen Schemata. Wenn Sie Ihr common - Schema mit dem Namespace c referenzieren, können Sie eine Instanz des item - Elements als solches oder als Teil eines Typs deklarieren wie folgt:

<xs:element ref="c:item" /><!-- reference here -->
<xs:complexType name="something">
    <xs:sequence>
        <xs:element ref="c:item" /><!-- and here -->
    </xs:sequence>
    <xs:element name="other" type="xs:Name" />
</xs:complexType>

Die Definition im Datenschema würde folgendermaßen aussehen:

<xs:element name="item" type="itemType" /><!-- referenced element -->
<xs:complexType name="itemType">
    <xs:sequence>
        <xs:element name="code" type="xs:Name" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="description" type="xs:normalizedString" use="required" />
</xs:complexType>
69
grkvlt

Zum Beispiel, wenn Sie Elementtypen deklarieren möchten, die tief verschachtelt erscheinen können, aber auch als Elemente der obersten Ebene in einem Instanzdokument.

Der XML Schema Primer enthält Beispiele dafür: http://www.w3.org/TR/xmlschema-0/

5
zedoo