Skip to content

Archives

  • Januar 2022
  • Dezember 2021
  • November 2021
  • Oktober 2021
  • September 2021

Categories

  • Keine Kategorien
Trend RepositoryArticles and guides
Articles

Ein XSD-Beispiel

On September 29, 2021 by admin

In diesem Kapitel wird gezeigt, wie man ein XML-Schema schreibt. Sie werden auch lernen, dass ein Schema auf verschiedene Arten geschrieben werden kann.

  • Ein XML-Dokument
  • Erstellen eines XML-Schemas
  • Das Schema aufteilen
  • Verwendung von benannten Typen

Ein XML-Dokument

Schauen wir uns dieses XML-Dokument namens „shiporder.xml“:

Erstellen eines XML-Schemas

Nun wollen wir ein Schema für das obige XML-Dokument erstellen.

Wir beginnen damit, eine neue Datei zu öffnen, die wir „shiporder.xsd“ nennen werden. Um das Schema zu erstellen, könnten wir einfach der Struktur des XML-Dokuments folgen und jedes Element so definieren, wie wir es finden. Wir beginnen mit der Standard-XML-Deklaration, gefolgt von dem xs:schema-Element, das ein Schema definiert:

<?xml version=“1.0″ encoding=“UTF-8″ ?>
<xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema“>
…
</xs:schema>

In dem obigen Schema verwenden wir den Standard-Namensraum (xs), und der mit diesem Namensraum verbundene URI ist die Schema-Sprachdefinition, die den Standardwert http://www.w3.org/2001/XMLSchema hat.

Als nächstes müssen wir das Element „shiporder“ definieren. Dieses Element hat ein Attribut und enthält andere Elemente, daher betrachten wir es als einen komplexen Typ. Die Kindelemente des „shiporder“-Elements sind von einem xs:sequence-Element umgeben, das eine geordnete Folge von Unterelementen definiert:

<xs:element name=“shiporder“>
<xs:complexType>
<xs:sequence>
…
</xs:sequence>
</xs:complexType>
</xs:element>

Dann müssen wir das Element „orderperson“ als einfachen Typ definieren (weil es keine Attribute oder andere Elemente enthält). Dem Typ (xs:string) ist das mit XML Schema assoziierte Namespace-Präfix vorangestellt, das einen vordefinierten Schema-Datentyp angibt:

<xs:element name=“orderperson“ type=“xs:string“/>

Als Nächstes müssen wir zwei Elemente definieren, die vom komplexen Typ sind: „shipto“ und „item“. Wir beginnen mit der Definition des Elements „shipto“:

Mit Schemata können wir die Anzahl der möglichen Vorkommen für ein Element mit den Attributen maxOccurs und minOccurs definieren. maxOccurs gibt die maximale Anzahl der Vorkommen für ein Element an und minOccurs die minimale Anzahl der Vorkommen für ein Element. Der Standardwert für maxOccurs und minOccurs ist 1!

Nun können wir das Element „item“ definieren. Dieses Element kann mehrfach innerhalb eines „shiporder“-Elements erscheinen. Dies wird durch die Einstellung des Attributs maxOccurs des Elements „item“ auf „unbounded“ festgelegt, was bedeutet, dass das Element „item“ so oft vorkommen kann, wie der Autor es wünscht. Beachten Sie, dass das „note“-Element optional ist. Wir haben dies festgelegt, indem wir das Attribut minOccurs auf Null gesetzt haben:

Wir können nun das Attribut des Elements „shiporder“ deklarieren. Da es sich um ein erforderliches Attribut handelt, geben wir use=“required“ an.

Hinweis: Die Attributdeklarationen müssen immer an letzter Stelle stehen:

<xs:attribute name=“orderid“ type=“xs:string“ use=“required“/>

Hier ist das komplette Listing der Schemadatei „shiporder.xsd“:

Das Schema aufteilen

Die vorherige Entwurfsmethode ist sehr einfach, kann aber schwierig zu lesen und zu pflegen sein, wenn die Dokumente komplex sind.

Die nächste Entwurfsmethode basiert darauf, alle Elemente und Attribute zuerst zu definieren und dann mit dem ref-Attribut auf sie zu verweisen.

Hier ist der neue Entwurf der Schemadatei („shiporder.xsd“):

Verwendung von benannten Typen

Die dritte Entwurfsmethode definiert Klassen oder Typen, die es uns ermöglichen, Elementdefinitionen wiederzuverwenden. Dies geschieht durch die Benennung der simpleTypes- und complexTypes-Elemente, auf die dann über das type-Attribut des Elements verwiesen wird.

Hier ist der dritte Entwurf der Schemadatei („shiporder.xsd“):

Das restriction-Element zeigt an, dass der Datentyp von einem W3C XML Schema-Namensraum-Datentyp abgeleitet ist. Das folgende Fragment bedeutet also, dass der Wert des Elements oder Attributs ein String-Wert sein muss:

<xs:restriction base=“xs:string“>

Das restriction-Element wird häufiger verwendet, um Einschränkungen auf Elemente anzuwenden. Betrachten Sie die folgenden Zeilen aus dem obigen Schema:

<xs:simpleType name=“orderidtype“>
<xs:restriction base=“xs:string“>
<xs:pattern value=“{6}“/>
</xs:restriction>
</xs:simpleType>

Dies zeigt an, dass der Wert des Elements oder Attributs eine Zeichenkette sein muss, die aus genau sechs Zeichen in einer Reihe bestehen muss, und diese Zeichen müssen eine Zahl von 0 bis 9 sein.

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Archive

  • Januar 2022
  • Dezember 2021
  • November 2021
  • Oktober 2021
  • September 2021

Meta

  • Anmelden
  • Feed der Einträge
  • Kommentare-Feed
  • WordPress.org
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語

Copyright Trend Repository 2022 | Theme by ThemeinProgress | Proudly powered by WordPress