Inhaltsverzeichnis
XML Schema
Definition
Akronym: XMLS
Vorteile gegenüber DTD
- unterstützt mehr Datentypen (derzeit 44), eigene Datentypen sind möglich
- genaue Festlegung wie oft ein Wert vorkommen darf (vgl. Quantifizierer)
- keine eigene Syntax
- nutzt Ansätze der Objektorientierung
- Vererbung, Aggregation
Nachteile gegenüber DTD
- schwerer Überschaubar
- Probleme mit SAX – Parsern
- ungeeignet für embedded Software
Aufbau/Syntax
- jedes Element aus Namespace
xs:bzw.xsd: - insgesamt 13 Komponenten, davon 4 Hauptkomponenten
- einfache Typdefinitionen
- für Elemente die nur Text enthalten
<xsd:element name=„abc“ type=„xsd:string“/>
- komplexe Typdefinitionen – enthalten weitere Elemente oder Attribute
- Attribut- , Elementdeklaration
Attribute
- Soll ein Element ein Attribut erhalten, so muss es ein komplexes Element sein. Das Attribut selbst wird innerhalb des komplexen Elements als einfaches Element deklarieren
- Die Definition von Attributen darf in Schema-Dateien nur am Ende eines komplexen Elements, also direkt vor dem schließenden Tag, angegeben werden
- mögliche Typen:
type = (string | decimal | boolean | date | time | uriReference | eigener)– eigener Typ: siehe Folie Übung 4 / F11
Restrictions (Einschränkungen)
- werden genutzt um Elementen und Attributen spezielle Werte vorzuschreiben, bzw. die Auswahl einzugrenzen.
<xsd:restriction Attribut=“Wert“> - Wertebereich kann mit
minInclusiveundmaxInclusive(bzw.minExclusive/maxExclusive) beschränkt werden xsd:pattern– erlaubt Muster für zulässige Werte anzulegen
Komplexe Elemente
- reine Elemente – enthalten Elemente oder Attribute, aber keinen Text
- leere Elemente – enthalten Attribute, aber niemals Elemente oder Text
- Kombinationselemente – können Elemente, Attribute und/oder Text enthalten
- reine Textelemente – enthalten nur Text
- Indikatoren
- Reihenfolge-Indikatoren
- sequence – Reihenfolge der Unterelemente ist einzuhalten
- all – Jedes Unterelement muss genau 1-mal auftreten, in beliebiger Reihenfolge
- choise – Auswahl, nur eines der Elemente
- Vorkommens-Indikatoren
- werden direkt im Element angegeben
minOccurs– MindesthäufigkeitmaxOccurs– Maximalhäufigkeit- Angabe von
unboundedwenn keine Obergrenze gewünscht wird - Standardwert = 1
- Gruppen-Indikatoren
group- Zusammenfassen von Elementen und Attributen zu Gruppen, die dann später über eine Referenz angesprochen werden können- Innerhalb muss ein Reihenfolge-Indikator angegeben werden
- können nicht aus komplexen Typen bestehen
attributeGroup– Gruppierung von Attributen