Latest web development tutorials

XML-Schema-Indikator

Durch den Indikator, können wir die Verwendung der Elemente in der Dokumentmodus steuern.


Anzeige

Es gibt sieben Indikatoren:

Bestellen Indikatoren:

  • alle
  • Wahl
  • Sequenz

Vorkommen Anzeige:

  • maxOccurs
  • minOccurs

Gruppenanzeige:

  • Gruppenname
  • attribute Name

Bestellen Anzeige

Um Indikatoren werden verwendet, um die Reihenfolge der Elemente zu definieren.

Alle Anzeige

<Alle> Anzeige in Übereinstimmung mit den Bestimmungen der Unterelemente können in beliebiger Reihenfolge erscheinen, und jedes Kind-Element muss nur einmal vorkommen:

<xs:element name="person">
<xs:complexType>
<xs:all>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:all>
</xs:complexType>
</xs:element>

Hinweis: Bei der Verwendung des <alle> Indikator, können Sie put <minOccurs> auf 0 oder 1, sondern nur die <maxOccurs> Indikator auf 1 gesetzt ist (später erklären <minOccurs> und <maxOccurs>).

Wahl-Indikator

<Auswahl> Anzeige sieht ein Unterelement auftreten oder ein anderes Kind Element auftreten können (oder andere):

<xs:element name="person">
<xs:complexType>
<xs:choice>
<xs:element name="employee" type="employee"/>
<xs:element name="member" type="member"/>
</xs:choice>
</xs:complexType>
</xs:element>

Feldrichtungsanzeiger

<Sequence> Element muss in einer bestimmten Reihenfolge angegeben werden:

<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>


Vorkommen Anzeige

Auftreten Indikatoren werden verwendet, treten die Frequenz eines Elements zu definieren.

Hinweis: Für alle die "Order" und "Gruppe" Indikator (alle, alle, Wahl, Sequenz , Gruppenname und Gruppenreferenz), die maxOccurs und minOccurs defaults 1 sind.

maxOccurs Anzeige

<MaxOccurs> Anzeige können die maximale Anzahl festlegen, wie oft ein Element auftreten können:

<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string" maxOccurs="10"/>
</xs:sequence>
</xs:complexType>
</xs:element>

Die obigen Beispiele zeigen, dass das Kind-Element "child_name" einmal im Geringsten "Person" Element erscheinen kann (wobei der Standardwert minOccurs 1), erscheint höchstens 10-mal.

minOccurs Anzeige

<MinOccurs> Indikator kann eine minimale Anzahl von Zeiten erfordern ein Element auftreten:

<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string"
maxOccurs="10" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>

Die obigen Beispiele zeigen, dass das Kind-Element "child_name" kann es ein Minimum von 0 in "Person" Element sein, erscheint höchstens 10-mal.

Tipp: Um die Anzahl der Vorkommen eines Elements machen nicht begrenzt ist, nutzen Sie bitte das maxOccurs = "unbounded" diese Aussage:

Ein praktisches Beispiel:

Genannt "Myfamily.xml" XML-Datei:

<?xml version="1.0" encoding="ISO-8859-1"?>

<persons xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="family.xsd">

<person>
<full_name>Hege Refsnes</full_name>
<child_name>Cecilie</child_name>
</person>

<person>
<full_name>Tove Refsnes</full_name>
<child_name>Hege</child_name>
<child_name>Stale</child_name>
<child_name>Jim</child_name>
<child_name>Borge</child_name>
</person>

<person>
<full_name>Stale Refsnes</full_name>
</person>

</persons>

Oberhalb dieser XML-Datei enthält ein Root-Element mit dem Namen "Personen" von. Innerhalb dieses Wurzelelement haben wir drei "Personen" Element definiert. Jeder "Person" Element muss ein "full_name" Elemente enthalten, aber es kann bis zu 5 "child_name" Element enthalten.

Dies ist die Schemadatei "family.xsd":

<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">

<xs:element name="persons">
<xs:complexType>
<xs:sequence>
<xs:element name="person" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string"
minOccurs="0" maxOccurs="5"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>

</xs:schema>


Gruppenanzeige

Gruppenindikator für mehrere Chargen von Elementen zur Definition zusammen.

Elementgruppe

Elementgruppe von der Gruppe definiert erklärt:

<xs:group name="groupname">
...
</xs:group>

Sie müssen eine Anweisung innerhalb der Gruppe definieren alle, die Auswahl oder Sequenzelemente. Das folgende Beispiel definiert eine Gruppe mit dem Namen "persongroup", die eine Reihe von Elementen definiert, die nach einem genauen vorhanden sein müssen:

<xs:group name="persongroup">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="birthday" type="xs:date"/>
</xs:sequence>
</xs:group>

Nachdem Sie die Gruppe abgeschlossen haben, definiert sind, können Sie sie in einer anderen Definition verweisen:

<xs:group name="persongroup">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="birthday" type="xs:date"/>
</xs:sequence>
</xs:group>

<xs:element name="person" type="personinfo"/>

<xs:complexType name="personinfo">
<xs:sequence>
<xs:group ref="persongroup"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:complexType>

Immobilien Gruppe

Attributgruppen definiert durch attribute Aussage:

<xs:attributeGroup name="groupname">
...
</xs:attributeGroup>

Das folgende Beispiel definiert eine Eigenschaft Gruppe mit dem Namen "personattrgroup" aus:

<xs:attributeGroup name="personattrgroup">
<xs:attribute name="firstname" type="xs:string"/>
<xs:attribute name="lastname" type="xs:string"/>
<xs:attribute name="birthday" type="xs:date"/>
</xs:attributeGroup>

Nachdem Sie einen vollständigen Satz von Attributen definiert haben, können Sie es in einer anderen Definition verweisen, etwa so:

<xs:attributeGroup name="personattrgroup">
<xs:attribute name="firstname" type="xs:string"/>
<xs:attribute name="lastname" type="xs:string"/>
<xs:attribute name="birthday" type="xs:date"/>
</xs:attributeGroup>

<xs:element name="person">
<xs:complexType>
<xs:attributeGroup ref="personattrgroup"/>
</xs:complexType>
</xs:element>