Neueste Web-Entwicklung Tutorials
 

XSD Element Auswechslung


Mit XML-Schemas kann ein Element ein anderes Element ersetzt werden.


Element Auswechslung

Lassen Sie uns sagen, dass wir den Nutzern von zwei verschiedenen Ländern: England und Norwegen. Wir möchten, dass die Fähigkeit der Benutzer wählen zu lassen, ob er oder sie möchte die norwegische Elementnamen zu verwenden, oder die englischen Elementnamen im XML-Dokument.

Um dieses Problem zu lösen, könnten wir einen definieren substitutionGroup im XML - Schema. Zunächst erklären wir ein Kopfelement und dann erklären wir die anderen Elemente, die angeben, dass sie für das Kopfelement substituierbar sind.

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

In dem obigen Beispiel, die "name" ist Element das Kopfelement und das "navn" Element ist ersetzbar "name" .

Schauen Sie sich das Fragment eines XML-Schemas:

<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"/>

Ein gültiges XML - Dokument (according to the schema above) könnte wie folgt aussehen:

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

oder wie folgt aus:

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

Sperrelement Substitution

Um zu verhindern , andere Elemente mit einem bestimmten Element zu ersetzen, verwenden Sie das block - Attribut:

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

Schauen Sie sich das Fragment eines XML-Schemas:

<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"/>

Ein gültiges XML - Dokument (according to the schema above) sieht wie folgt aus :

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

Aber das ist nicht mehr gültig:

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

Mit substitution

Die Art der substituierbaren Elemente muss gleich oder aus, dem Typ des Kopfelementes abgeleitet werden. Wenn der Typ des substituierbar Element die gleiche wie die Art des Kopfelementes ist, werden Sie nicht den Typ des substituierbar Element angeben.

Beachten Sie, dass alle Elemente in der substitution (dem Kopfelement und die substituierbar Elemente) muss als globale Elemente deklariert werden, sonst wird es nicht funktionieren!


Was sind globale Elemente?

Globale Elemente sind Elemente , die unmittelbare Kinder des sind "schema" Element! Lokale Elemente sind Elemente in anderen Elementen verschachtelt.