Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs
ASP German Homepage Homepage
 

Liste

.NET 2.0 (1)
.NET Allgemein (16)
.NET Fu (5)
ADO.NET (11)
Aprilscherz (3)
ASP Grundlagen (44)
ASP Tricks (83)
ASP.NET (44)
ASPIntranet.de (5)
C# (28)
Datenbank (44)
Dokumentation (4)
IIS 6.0 (1)
Komponenten (29)
Optimierung (10)
Server (21)
Sicherheit (34)
Tee Off (6)
VB.NET (6)
WAP (8)
Web Services (11)
XML (9)

RSS 2.0 - Die neuesten fünf Artikel auf AspHeute.com


 

Suchen





 

English Articles
Chinese Articles
Unsere Autoren
 
Link zu AspHeute
Impressum
Werben
Anfragen

Was sind XML Schemas?

Geschrieben von: Christian Holm
Kategorie: XML

Dieser Artikel soll Ihnen Antworten auf die wichtigsten Fragen zum Thema XML Schemas (XSD) geben - wozu dienen eigentlich XML Schemas, welche Vorteile haben sie und warum sind diese den DTDs vorzuziehen. Die in diesem Artikel enthaltenen Informationen stützen sich auf die W3C Recommendation vom 2. Mai 2001.

Bevor man sich in eine Technologie vertieft, fragt man sich wohl zuerst wofür sie gut ist - also worin besteht der Zweck in der Verwendung von XML Schemas? XML Schema Dateien (.xsd) enthalten die Elementnamen und die verfügbaren Attribute eines XML Dokuments, d.h. eine Schemadatei enthält die hierfür nötigen Deklarationen dieser.

Diese Dekalarationen dienen schließlich und endlich dazu, wie ein XML Dokument dargestellt werden soll. Dies ist aber nichts Neues, da ja ursprünglich die Document Type Definitions (DTD) diesen Zweck erfüllt haben. Die DTD Spezifikationen wurden vom W3C Konsortium vorgeschlagen, während die XML Schemas auf einen Vorschlag von Microsoft basieren aber jetzt vom W3C Konsortium vereinheitlicht und standardisiert wurden.

Ihre XML Datenstruktur mit Hilfe vom Schemas zu beschreiben hilft Ihnen nicht nur bei einer leicherten Organisation und Strukturierung, sondern vielmehr eine Vereinfachung beim Datenaustausch. Diese Informationen benötigen andere Applikationen (z.B. Web Services), damit diese erkennen, in welcher Form bzw. Datenstruktur sie die Daten erhalten, wie sie die erhaltenen Daten bearbeiten müssen und in welcher Form sie sie zurück zu Ihnen senden müssen, damit Sie wiederum mit den bearbeiteten Ergebnissen etwas anfangen können.

Eine berechtigte Frage ist nun, warum man statt den DTDs XML Schemas verwenden soll. Im Gegensatz zu DTDs verwenden XML Schemas den gebräuchlichen XML Syntax, was eine schnellere Einarbeitung garantiert. Weiters können Sie Elementen einen Datentyp zuweisen - z.B Integer, Datumswert, Fließkommazahlen, Zeichenketten sowie die anderen (simplen) Datentypen oder auch URLs. Bei der Verwendung von DTD's sind Sie bei der Datentypzuweisung auf den Datentyp String limitiert.

Bei Datentypen unterscheidet die W3C Empfehlung drei unterschiedliche Hauptgruppen: Atomic, List und Union Datentypen. Diese Hauptgruppen können Primitive oder Derived Datentypen enthalten. Weiters können die Datentypen mit diversen Eigenschaften versehen werden oder sogar zu Attributgruppen zusammengefaßt werden.

Ein weiterer Vorteil von XML Schemas ist die einfache Erweiterbarkeit dieser, da sie XML basiert sind und daher nicht an einen vorgegebenen Syntax gebunden sind. D.h. wenn Sie ein neues Child Element hinzufügen und es Gültigkeit im enthaltenden Namespace hat, so wird dies ohne weiters vom Parser akzeptiert.

Um der trockenen Theorie ein wenig Abwechslung zu bieten, habe ich ein (sehr) einfaches Beispiel vorbereitet. Dieses besteht zum einen aus einem XML Dokument (YourCompanyStaff.xml) welches zwei Datensätze aus einer fiktiven Personaldatenbank enthält und zum anderen aus einer einfachen Schema Datei CompanyStaff.xsd. Der Inhalt der YourCompanyStaff.xml Datei ist wie folgt:

<?xml version="1.0"?>
<YourCompany xmlns="http://www.yourcompany.com/Staff/XSD"
 xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
 xsi:schemaLocation="http://www.yourcompany.com/Staff/XSD/CompanyStaff.xsd">

    <Staff>
        <Name>Doe</Name>
        <FirstName>John</FirstName>
        <Function>Program Manager</Function>
        <MemberOf>Development Team</MemberOf>
        <SSNo>788313443</SSNo>
    </Staff>
    
    <Staff>
        <Name>Castor</Name>
        <FirstName>Rob</FirstName>
        <Function>CEO</Function>
        <MemberOf>Executives</MemberOf>
        <SSNo>661541234</SSNo>
    </Staff>

</YourCompany>

Das Attribut xmlns enthält den Namespace, in dem der YourCompany Tag enthalten sein soll. Das Attribut xsi:schemaLocation verweist auf den URL, wo sich die XML Schema Datei CompanyStaff.xsd auf Ihrem Web Server befindet. Die zum XML Dokument dazugehörige CompanyStaff.xsd Schema Datei sieht im einfachsten Fall so aus:

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" elementFormDefault="qualified">
    <xsd:element name="Staff" />
      <xsd:complexType>
        <xsd:sequence>
          <xsd:element ref="Name" /> 
          <xsd:element ref="FirstName" /> 
          <xsd:element ref="Function" /> 
          <xsd:element ref="MemberOf" /> 
          <xsd:element ref="SSNo" /> 
        </xsd:sequence>
      </xsd:complexType>
    
    <xsd:element name="YourCompany">
      <xsd:complexType>
        <xsd:sequence>
          <xsd:element ref="Staff" maxOccurs="unbounded" /> 
        </xsd:sequence>
      </xsd:complexType>
    </xsd:element>
    <xsd:element name="Name" type="xsd:string"/>
    <xsd:element name="FirstName" type="xsd:string"/>
    <xsd:element name="Function" type="xsd:string"/>
    <xsd:element name="MemberOf" type="xsd:string"/>
    <xsd:element name="SSNo" type="xsd:integer"/>
</xsd:schema>

Eine sequence beschreibt eine Folge (Gruppe) von Elementen, während complexType eine genauere Definition des referenzierten Elementes angibt. Auf alle Details des XSD kann ich in diesem Einführungsartikel nicht eingehen - spätere Artikel werden sich damit beschäftigen. Soviel aber vorweg: referenziert eine XML Datei dieses Schema, und die XML Datei entspricht dem Schema nicht, dann wird der Parser die XML Datei als nicht korrekt monieren.

Schlußbemerkung

Dieser Artikel sollte Ihnen einen kurzen Einblick in die wichtigsten Neuerungen von XML Schemas geben, welches vom W3C Konsortium seit Anfang Mai vereinheitlicht und standardisiert wurde. Damit soll die Definition der Datenstruktur basierend auf XML für jede beliebige Web Applikation lesbar werden.

Download des Codes

Klicken Sie hier, um den Download zu starten.

Verwandte Artikel

Arbeiten mit dem SQL Server XML View Mapper
Crystal Reports mit DataSets befüllen - Teil 2
Verwendung von XML-Schemas (XSD)
Web Services mit dem SOAP Toolkit erstellen
XML-Daten verarbeiten mit XSLT

Links zu anderen Sites

MSDN Online XML Developer Center
XML Schema Part 0: Primer
XML Schema Part 1: Structures
XML Schema Part 2: Data Types
XML Schema Working Group

Wenn Sie jetzt Fragen haben...

Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten.

Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.

 

Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.

Bewerten Sie diesen Artikel
 Sehr gut   Nicht genügend  
   1  2  3  4  5  
 

  
   Für Ausdruck optimierte Seite

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.