KatalogManager.de - die Website für Katalogmanagement und E-Business suso.PUBLISH
 
Magazin
RSS-Newsfeed
Newsletter
 
HerstellerIndex
DienstleisterIndex
Produktübersicht
Infos für Hersteller
Produkt anmelden
 
Studien
Katalog-Formate
Klassifikationssysteme
Bücher
Weblinks
 
Forum
Umfrage
Veranstaltungen
 
Kontakt
Werbung
Haftungsausschluss
Impressum

XML Schemata

von Johannes Hentrich

Spektakuläre Neuerung gab es dieses Jahr bei den XML-Katalogformaten nicht, jedoch wurde im Hintergrund kräftig gearbeitet. Bei BMEcat und openTRANS wurden beispielsweise so genannte XML Schemata eingeführt. Der folgende Beitrag zeigt, welche Vorteile XML Schemata bieten und wie sie funktionieren.

Die Struktur eines XML-Dokuments wird üblicherweise in einer DTD, das heißt einer "Document Type Defintion" festgelegt. Mit einer DTD kann überprüft werden, ob ein vorhandenes XML-Dokument mit der in einer DTD festgelegten Struktur übereinstimmt. Das ist besonders dann wichtig, wenn standardisierte XML-Dokumente, zum Beispiel Bestellungen oder Rechnungen, zwischen verschiedenen Teilnehmern ausgetauscht werden sollen.
Damit ist aber das Einsatzgebiet von DTDs auch schon fast vollständig eingegrenzt. Will man beispielsweise neben der Struktur auch Datentypen in XML-Dokumenten überprüfen, so kann dies mit DTD's nicht mehr realisiert werden. 

DTDs <--> XML Schemata
Die wesentlichen Unterschiede zwischen DTDs und  XML-Schemata lassen sich wie folgt zusammenfassen:

  • XML-Schemata sind im Gegensatz zu DTDs selbst wohlgeformte XML-Dokumente. Damit können XML-Schemata auf die gleiche Art verarbeitet werden wie XML-Dokumente. 

  • XML Schemata unterstützen eine Vielzahl von Datentypen. Auch ist es möglich eigene Datentypen definieren zu können. Diese Eigenschaft macht sich gerade beim Austausch von Daten bei elektronischen Katalogen bezahlt. Es kann nicht nur die Katalogstruktur überprüft werden, sondern auch Datumsformate, Preise, Beschreibungen oder Längenangaben können auf ihr korrektes Format überprüft werden. 

  • Für ein XML-Schema kann im Gegensatz zu einer DTD ein Vererbungskonzept implementiert werden. Damit können Applikationen effektiver auf XML-Schemata zurückgreifen und mit ihnen arbeiten.

  • Für Elemente können in XML-Schemata zusätzliche Strukturspezifiaktionen definiert werden. Beispielsweise kann angegeben werden, wie häufig ein Element vorkommen muss.

  • Mit XML-Schemata sind äquivalente Felddefinitionen möglich. Beispielsweise kann man definieren: Element Vorname = Element first_name.

Aufgrund der Flexibilität, die XML-Schemata bieten, wurden XML-Schemata auch für BMEcat und openTRANS  zur Verfügung gestellt.

Aufbau eines XML-Schemas

Bevor mit der Definition eines XML-Schemas begonnen werden kann, müssen zunächst einmal die Elemente, die in einem XML-Dokument verwendet werden können, klassifiziert werden. Dazu werden zunächst die erlaubten Inhalts-Modelle betrachtet. In einem Inhalts-Modell werden die erlaubten Inhalte der jeweiligen Elemente festgelegt.

  • Leeres Inhalts-Modell: Es werden keine Kinderelemente oder Textknoten erwartet.

  • Einfaches Inhalts-Modell: Es sind Textknoten zugelassen.

  • Komplexes Inhaltsmodell: Es sind nur Subelemente zugelassen.

  • Gemischtes Inhaltsmodell: Ist eine Kombination aus dem einfachen und dem komplexen Inhalts-Modell.

Bei den Elementen unterscheidet man zwischen: 

  • Einfachen Typ: Bestehen nur aus Inhalt, das heißt, es gibt keine Attribute. Attribute selbst sind Elemente vom einfachen Typ.

  • Komplexen Typ: Elemente, die wiederum in anderen Elementen enthalten sind, werden als Elemente vom komplexen Typ bezeichnet.

Die Vielzahl an Kategorisierung wird am folgenden Beispiel an einem Auszug aus dem XML-Schema von BMEcat erläutert.

Der folgende Auszug aus dem BMEcat-Schema zeigt die Definition einer Adresse:

<xsd:complexType name="typeADDRESS">

<xsd:sequence>

<xsd:element ref="NAME" minOccurs="0"/>

<xsd:element ref="NAME2" minOccurs="0"/>

<xsd:element ref="NAME3" minOccurs="0"/>

<xsd:element ref="CONTACT" minOccurs="0"/>

<xsd:element ref="STREET" minOccurs="0"/>

<xsd:element ref="ZIP" minOccurs="0"/>

<xsd:element ref="BOXNO" minOccurs="0"/>

<xsd:element ref="ZIPBOX" minOccurs="0"/>

<xsd:element ref="CITY" minOccurs="0"/>

<xsd:element ref="STATE" minOccurs="0"/>

<xsd:element ref="COUNTRY" minOccurs="0"/>

<xsd:element ref="PHONE" minOccurs="0"/>

<xsd:element ref="FAX" minOccurs="0"/>

<xsd:element ref="EMAIL" minOccurs="0"/>

<xsd:element ref="PUBLIC_KEY" minOccurs="0" maxOccurs="unbounded"/>

<xsd:element ref="URL" minOccurs="0"/>

<xsd:element ref="ADDRESS_REMARKS" minOccurs="0"/>

</xsd:sequence>

</xsd:complexType>

Das Element typeADDRESS ist ein Element vom komplexen Typ (<xsd:complexType....) mit einem komplexen Inhaltsmodell. Die Definition kann wie folgt gelesen werden: Das Element typeADDRESS vom komplexen Typ besteht aus einer Sequenz (<xsd:sequence>) von 17 Elementen (NAME, NAME2, NAME§, CONTACT usw.). minOccurs="0" zeigt an, dass ein Element optional ist und nicht erscheinen braucht. Mit maxOccurs="unbounded" wird definiert, dass ein Element mindestens einmal erscheinen soll aber dann beliebig oft erscheinen kann. Mit  </xsd:sequence> und </xsd:complexType> wird die Definition des Elements typeADDRESS abgeschlossen.
Die Definition der Attribute der Elemente erfolgt in einem XML Schema immer hinter der Definition der Elemente und ist hier nicht aufgeführt.

Datentypen

Die im Inhalts-Modell des Elements typeADDRESS enthaltene Elemente werden ebenfalls im Anschluss definiert. Das folgende Beispiel zeigt die Definition des Elements ADDRESS_REMARKS.

<xsd:element name="ADDRESS_REMARKS">

<xsd:simpleType>

<xsd:restriction base="dtSTRING">

<xsd:maxLength value="250"/>

<xsd:minLength value="1"/>

</xsd:restriction>

</xsd:simpleType>

</xsd:element>

Da das Element ADDRESS_REMARKS keine Attribute enthält, handelt es sich um ein Element von einem einfachen Typ (<xsd:simpleType>). Im Element wird der Datentyp des Elements definiert. Die Spezifikation der XML Schemata kennt eine Reihe von vordefinierten Datentypen wie string, decimal, float, boolean, datetime usw. Darüber hinaus ist es bei XML Schemata möglich, auch eigene Datentypen definieren zu können. Eine Möglichkeit einen eigenen Datentyp zu definieren besteht darin, den neuen Datentyp von einem bestehenden Datentyp durch Restriktion abzuleiten. Restriktion bedeutet, das ein vorhandener Datentyp nach bestimmten Kriterien eingeschränkt wird.  <xsd:restriction base="dtSTRING"> bedeutet somit, dass der Datentyp "dtSRING" als Basis für den eigenen Datentyp verwendet wird. Über maxLength und minLength wird definiert, wie viel Zeichen der neue Datentyp enthalten darf.

Das hier gezeigt Beispiel zeigt nur einen kleinen Bereich über die Möglichkeiten für die Definition von Datentypen. Gerade hier unterscheiden sich XML Schemata deutlich von DTDs.

Zusammenfassung

Zusammenfassend lässt sich also feststellen, das XML Schemata sowohl die Struktur als auch die Datentypen von XML-Dokumenten überprüfen können. Da sich die Struktur und die Datentypen von XML-Dokumenten durch XML Schemata relativ unabhängig voneinander überprüfen lassen, erweisen sich XML Schemata als ein sehr geeigneter Mechanismus für die Validierung von XML-Dokumenten und deren Inhalte. 
Unterstützen Katalogsysteme die Validierung von XML-basierten Katalogen, wie zum Beispiel BMEcat, über XML Schemata, können beim Einsatz von XML Schemata bereits sehr viele Fehlerquellen beim Datenaustausch vermieden werden. 

Sie wollen mehr zu XML Schemata oder  XML-Katalogformate wissen ? Dann besuchen Sie doch das Online-Seminar:

"Katalogmanagement"  

Johannes Hentrich bietet Ihnen bei diesem Online-Seminar bei einer individuellen Betreuung einen fundierten Einstieg in die Welt der elektronischen Kataloge.
Neben den Katalogstandards BMEcat und eClass werden auch XML-Geschäftssprachen wie openTRANS und ebXML praxisnah vermittelt. 

Jetzt anmelden bei XLcampus!

 

   
 

XML Schema

Eric van der Vlist

Mit der XML Schemata Empfehlung des W3Cs steht ein leistungsfähiger Satz an Werkzeugen für die Definition von XML Dokumentstrukturen zur Verfügung. Die Leistungsfähigkeit der XML Schemata zieht jedoch auch ein hohes Maß an Komplexität nach sich. 
Dieses Buch beschreibt daher zunächst die Grundlagen der XML Schemata Definition und wendet sich dann zunehmend den fortgeschritteneren Themen zu. Der Autor verliert dabei nie den Gesamtzusammenhang aus dem Auge, so dass der Leser Schritt für Schritt auch die komplizierteren Gefilde der XML Schemata meistern kann. 
Ergänzt wird das Buch durch eine vollständige Referenz, einem Glossar und natürlich durch viele Beispiele.

Jetzt auch als deutsche Ausgabe:

 

Links zu XML Schema

W3C

W3C (deutsche Übersetzung)

XML.com: Using W3C XML Schema

XML Schema Tutorial

© 2001 - 2011 KatalogManager.de
KatalogManager.de ist ein Service der XLcontent GmbH