Neueste Web-Entwicklung Tutorials
 

XSD-Anzeigen


Wir können steuern, wie Elemente in den Dokumenten mit Indikatoren zu verwenden sind.


Indikatoren

Es gibt sieben Indikatoren:

Bestellen Indikatoren:

  • All
  • Choice
  • Sequence

Vorkommen Indikatoren:

  • maxOccurs
  • minOccurs

Konzernkennzahlen:

  • Group name
  • attributeGroup name

Bestellen Indikatoren

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

Alle Indicator

Die <all> Kennzeichen gibt an, dass die untergeordneten Elemente in beliebiger Reihenfolge auftreten können, und dass 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>

Note: Bei der Verwendung von <all> Anzeige können Sie einstellen , die <minOccurs> Anzeige auf 0 oder 1 und die <maxOccurs> Anzeige kann nur auf 1 gesetzt werden (das <minOccurs> und <maxOccurs> werden später beschrieben).

Wahl-Indikator

Die <choice> Indikator gibt an, dass entweder ein untergeordnetes Element oder eine andere auftreten können:

<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

Die <sequence> Indikator gibt an, dass die untergeordneten Elemente in einer bestimmten Reihenfolge erscheinen müssen:

<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 Indikatoren

Vorkommen Indikatoren werden verwendet, um festzulegen, wie oft ein Element auftreten kann.

Note: Für alle "Order" und "Group" Indikatoren (alle, alle, Auswahl, Reihenfolge, Gruppenname und Gruppenreferenz) den Standardwert für maxOccurs und minOccurs ist 1.

maxOccurs Indicator

Die <maxOccurs> Indikator gibt die maximale Anzahl von Malen kann 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"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

Das Beispiel zeigt , dass das oben "child_name" Element mindestens einmal auftreten kann (der Standardwert für minOccurs 1) und maximal zehn Mal in der "person" Element.

minOccurs Indicator

Die <minOccurs> Indikator gibt die Mindestanzahl von Malen kann 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>

Das obige Beispiel zeigt , dass das "child_name" Element ein Minimum von Null mal und höchstens zehnmal in der auftreten kann , "person" Element.

Tip: Um ein Element erlauben eine unbegrenzte Anzahl von Zeiten zu erscheinen, verwenden Sie das maxOccurs = "unbounded" Aussage:

A working example:

Eine XML - Datei mit dem Namen "Myfamily.xml" :

<?xml version="1.0" encoding="UTF-8"?>

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

Die XML - Datei enthält über ein Root - Element mit dem Namen "persons" . Innerhalb dieses Wurzelelement haben wir drei definierten "person" Elemente. Jeder "person" Element muss ein enthalten "full_name" Element und es können bis zu fünf enthalten "child_name" Elemente.

Hier ist die Schemadatei "family.xsd" :

<?xml version="1.0" encoding="UTF-8"?>
<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>

Konzernkennzahlen

Gruppe Indikatoren werden verwendet, um ähnliche Mengen von Elementen definieren.

Elementgruppen

Elementgruppen sind mit der Gruppe Erklärung, wie folgt definiert:

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

Sie müssen eine ganze, Wahl oder Sequenzelement innerhalb der Gruppe Deklaration definieren. Das folgende Beispiel definiert eine Gruppe mit dem Namen "persongroup" , die eine Gruppe von Elementen definiert, die in einer genauen Reihenfolge auftreten 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 eine Gruppe definiert haben, können Sie es in einer anderen Definition, wie dieser Referenz:

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

Attributgruppen

Attributgruppen werden mit dem attribute Erklärung definiert, wie folgt aus:

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

Das folgende Beispiel definiert ein Attribut Gruppe mit dem Namen "personattrgroup" :

<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 eine Attributgruppe definiert haben, können Sie es in einer anderen Definition, wie dieser Referenz:

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