Latest web development tutorials

Ersetzen Sie XML-Schema-Elemente

Mit dem XML-Schema kann ein Element mit einem anderen Element ersetzt werden.


Ersetzte Elemente

Lassen Sie uns zeigen: unsere Kunden aus dem Vereinigten Königreich und Norwegen. Wir wollen die Möglichkeit haben, Benutzer wählen zu lassen, die norwegischen Elementnamen im XML-Dokument zu verwenden oder den englischen Namen des Elements.

Um dieses Problem zu lösen, können wir eine substitution im XML - Schema definieren. Zunächst erklären wir das Hauptelement, dann werden wir kleinere Elemente deklarieren, können diese Elemente deklariert werden, wenn sie das primäre Element ersetzen können.

<xs:element name="name" type="xs:string"/>
<xs:element name="navn" substitutionGroup="name"/>

In dem obigen Beispiel, "name" Element ist das wichtigste Element, "navn" Element "name" Element ersetzen.

Betrachten wir ein XML-Schema-Fragment:

<xs:element name="name" type="xs:string"/>
<xs:element name="navn" substitutionGroup="name"/>

<xs:complexType name="custinfo">
<xs:sequence>
<xs:element ref="name"/>
</xs:sequence>
</xs:complexType>

<xs:element name="customer" type="custinfo"/>
<xs:element name="kunde" substitutionGroup="customer"/>

Gültige XML-Dokument wie folgt aus (nach dem obigen Schema):

<customer>
<name>John Smith</name>
</customer>

Oder etwas wie folgt aus:

<kunde>
<navn>John Smith</navn>
</kunde>


Ersetzen Anschlagelement

Um zu verhindern, andere Elemente ein bestimmtes Element zu ersetzen, verwenden Sie die Blockeigenschaften:

<xs:element name="name" type="xs:string" block="substitution"/>

Sehen Sie ein XML-Schema-Fragment:

<xs:element name="name" type="xs:string" block="substitution"/>
<xs:element name="navn" substitutionGroup="name"/>

<xs:complexType name="custinfo">
<xs:sequence>
<xs:element ref="name"/>
</xs:sequence>
</xs:complexType>

<xs:element name="customer" type="custinfo" block="substitution"/>
<xs:element name="kunde" substitutionGroup="customer"/>

Gültige XML-Dokument sollte wie folgt aussehen (nach dem obigen Schema):

<customer>
<name>John Smith</name>
</customer>

Allerdings ist das folgende Dokument nicht mehr legitim:

<kunde>
<navn>John Smith</navn>
</kunde>


Verwenden Sie substitution

Austauschbare Elemente müssen die Hauptelemente des gleichen Typs sein, oder aus dem Hauptelement abgeleitet. Wenn die Art Elemente der Hauptelemente des gleichen Typs ersetzen können, werden Sie nicht die Art des Elements angeben müssen ersetzt werden kann.

Bitte beachten Sie, substitution alle Elemente in den (primären Elemente und austauschbaren Elementen) muss als globale Elemente deklariert werden, sonst wird es nicht funktionieren!


Was ist das globale Element (Global Elemente)?

Globale Element bezieht sich auf die direkte untergeordnete Elemente von "Schema" Element! Lokale Elemente (Local Elemente) bezieht sich auf die Elemente innerhalb anderer Elemente verschachtelt.