XML -Tutorial

XML-HOME XML-Einführung XML-Wie zu verwenden XML-Baum XML-Syntax XML-Elemente XML-Attribute XML-Namespaces XML-Anzeige XML-HttpRequest XML-Parser XML-DOM XML-XPath XML-XSLT XML-XQuery XML-XLink XML-Validator XML-DTD XML-Schema XML-Server XML-Beispiele XML-Quiz XML-Zertifikat

XML-AJAX

AJAX-Einführung AJAX-XMLHttp AJAX-Anfrage AJAX-Antwort AJAX-XML-Datei AJAX-PHP AJAX ASP AJAX-Datenbank AJAX-Anwendungen AJAX-Beispiele

XML-DOM

DOM-Einführung DOM-Knoten DOM-Zugriff DOM-Knoten-Info DOM-Knotenliste DOM-Traversierung DOM-Navigation DOM Get-Werte DOM-Änderungsknoten DOM-Knoten entfernen DOM-Ersetzungsknoten DOM-Knoten erstellen DOM-Knoten hinzufügen DOM-Klonknoten DOM-Beispiele

XPath -Tutorial

XPath-Einführung XPath-Knoten XPath-Syntax XPath-Achsen XPath-Operatoren XPath-Beispiele

XSLT -Tutorial

XSLT-Einführung XSL-Sprachen XSLT-Transformation XSLT <Vorlage> XSLT <Wert von> XSLT <für-jeden> XSLT <sortieren> XSLT <wenn> XSLT <auswählen> XSLT anwenden XSLT auf dem Client XSLT auf dem Server XSLT XML bearbeiten XSLT-Beispiele

XQuery- Tutorial

XQuery-Einführung XQuery-Beispiel XQuery FLWOR XQuery-HTML XQuery-Bedingungen XQuery-Syntax XQuery hinzufügen XQuery-Auswahl XQuery-Funktionen

XML -DTD

DTD-Einführung DTD-Bausteine DTD-Elemente DTD-Attribute DTD-Elemente vs. Attr DTD-Entitäten DTD-Beispiele

XSD- Schema

XSD-Einführung XSD-Anleitung XSD <Schema> XSD-Elemente XSD-Attribute XSD-Einschränkungen

XSD- Komplex

XSD-Elemente XSD leer Nur XSD-Elemente Nur XSD-Text XSD gemischt XSD-Indikatoren XSD <beliebig> XSD <beliebiges Attribut> XSD-Ersetzung XSD-Beispiel

XSD -Daten

XSD-String XSD-Datum XSD Numerisch XSD Sonstiges XSD-Referenz

Webdienste _

XML-Dienste XML-WSDL XML-SOAP XML-RDF XML-RSS

Verweise

DOM-Knotentypen DOM-Knoten DOM-Knotenliste DOM NamedNodeMap DOM-Dokument DOM-Element DOM-Attribut DOM-Text DOM-CDATA DOM-Kommentar DOM-XMLHttpRequest DOM-Parser XSLT-Elemente XSLT/XPath-Funktionen

XSD- Indikatoren


Wir können steuern, WIE Elemente in Dokumenten mit Indikatoren verwendet werden sollen.


Indikatoren

Es gibt sieben Indikatoren:

Bestellindikatoren:

  • Alle
  • Auswahl
  • Reihenfolge

Auftretensindikatoren:

  • maxVorkommt
  • minVorkommt

Gruppenindikatoren:

  • Gruppenname
  • AttributGruppenname

Bestellindikatoren

Ordnungsindikatoren werden verwendet, um die Reihenfolge der Elemente zu definieren.

Alle Indikator

Der Indikator <all> gibt an, dass die untergeordneten Elemente in beliebiger Reihenfolge erscheinen können und dass jedes untergeordnete Element nur einmal vorkommen darf:

<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: Wenn Sie den Indikator <all> verwenden, können Sie den Indikator <minOccurs> auf 0 oder 1 und den Indikator <maxOccurs> nur auf 1 setzen (die <minOccurs> und <maxOccurs> werden später beschrieben).

Auswahlindikator

Der Indikator <choice> gibt an, dass entweder ein untergeordnetes Element oder ein anderes vorkommen kann:

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

Sequenzanzeige

Der Indikator <sequence> 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>


Auftretensindikatoren

Häufigkeitsindikatoren werden verwendet, um zu definieren, wie oft ein Element auftreten kann.

Hinweis: Für alle „Order“- und „Group“-Indikatoren (any, all, choice, sequence, group name und group reference) ist der Standardwert für maxOccurs und minOccurs 1.

maxOccurs-Indikator

Der Indikator <maxOccurs> gibt an, wie oft ein Element maximal vorkommen kann:

<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 obige Beispiel zeigt, dass das Element „child_name“ mindestens einmal (der Standardwert für minOccurs ist 1) und maximal zehn Mal im Element „person“ vorkommen kann.

minOccurs-Indikator

Der Indikator <minOccurs> gibt an, wie oft ein Element mindestens vorkommen darf:

<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 Element „child_name“ mindestens nullmal und maximal zehnmal im Element „person“ vorkommen kann.

Tipp: Um zuzulassen, dass ein Element unbegrenzt oft erscheint, verwenden Sie die Anweisung maxOccurs="unbounded":

Ein funktionierendes Beispiel:

Eine XML-Datei namens "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 obige XML-Datei enthält ein Root-Element namens „persons“. Innerhalb dieses Root-Elements haben wir drei „Person“-Elemente definiert. Jedes „person“-Element muss ein „full_name“-Element enthalten und kann bis zu fünf „child_name“-Elemente enthalten.

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>

Gruppenindikatoren

Gruppenindikatoren werden verwendet, um zusammengehörige Gruppen von Elementen zu definieren.

Elementgruppen

Elementgruppen werden wie folgt mit der Gruppendeklaration definiert:

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

Innerhalb der Gruppendeklaration müssen Sie ein all-, choice- oder sequence-Element definieren. Das folgende Beispiel definiert eine Gruppe namens "persongroup", die eine Gruppe von Elementen definiert, die in einer exakten 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 sie wie folgt in einer anderen Definition referenzieren:

<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 wie folgt mit der attributeGroup-Deklaration definiert:

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

Das folgende Beispiel definiert eine Attributgruppe 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 sie wie folgt in einer anderen Definition referenzieren:

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