Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Validierung vom XML mit XML Schema

Ähnliche Präsentationen


Präsentation zum Thema: "Validierung vom XML mit XML Schema"—  Präsentation transkript:

1 Validierung vom XML mit XML Schema
Nochmals XML-Skript-Uni-Stuttgart-DTD-Schema.pdf lesen. Ist die Präsentation besser?

2 XML Schema Auch XSD (XML Schema Definition) genannt (*.xsd)
Sind selbst XML Dokumente ( validierbar) Beschreiben Struktur v. XML Dokumenten (Bessere) Alternative zu/Nachfolge der DTD Unterstützen Namensräume Unterstützen erweiterbare und wiederverwendbare Datentypen

3 Syntax XML-Schema Referenzierung im XML Dokument
<?xml version=″1.0″ encoding=″UTF-8″ ?> <xsd:schema xmlns:xs=" ... </xsd:schema> Referenzierung im XML Dokument <?xml version=″1.0″ encoding=″UTF-8″ ?> <Arztbrief xmlns:xsi=″ xsi:noNamespaceSchemaLocation=″SCHEMA_URI″> </Arztbrief>

4 Datentypen 13:20:00.000 2006-09-18 Ohne CR, LF, TAB
Ohne führende Leerzeichen Language: de-DE NMTOKEN, ID, IDREF, ENTITY, NOTATION sind die Entsprechungen für die DTD Sprachelemente Alles siehe Jeckle oder Schema-Datentypen.doc Quelle:

5 Verwendung bestehender Datentypen
Beispiele für XML und XSD <datum> </datum> <xsd:element name="datum" type="xsd:date"/> <vorname>Sepp</vorname> <xsd:element name="vorname" type="xsd:token" minOccurs="1" maxOccurs="unbounded"/> <person sprache="EN"/> <xsd:attribute name="sprache" type="xsd:language" default="DE" use="required"/> Mögliche Attribute name (Pflicht) type (default: anytype) minOccurs (Nur Elemente) maxOccurs (Nur Elemente) default ref fixed abstract (Nur Elemente) final (Nur Elemente) use (Nur Attribute: required, optional, prohibited) ... Die ganze Schema-Datei können wir an dieser Stelle noch nicht zeigen, da wir – falls sich im ersten Beispiel <datum/> innerhalb eines <wurzelelement> befindet – zuerst der compleyType mit xsd:sequence einführt werden müsste

6 Neue Datentypen durch Ableitung  SimpleType
Durch Einschränkung: Wertebereich <Alter>78</Alter> <xsd:element name="Alter" type="age"/> <xsd:simpleType name="age"> <xsd:restriction base="xsd:integer"> <xsd:minInclusive value="0"/> <xsd:maxInclusive value="100"/> </xsd:restriction> </xsd:simpleType> Durch Einschränkung: Auflistung <Person Geschlecht="female"> ...</Person> <xsd:attribute name="Geschlecht" type="sex"/> <xsd:simpleType name="sex"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="male"/> <xsd:enumeration value="female"/> Mögliche Attribute enumeration minInclusive (Zahlen) minExclusive (Zahlen) maxInclusive (Zahlen) maxExlusive (Zahlen) maxLength (Zeichen) minLength (Zeichen) pattern (Zeichen) totalDigits (Zahlen) fractionDigits (Zahlen) length (Zeichen) Erst haben wir gesehen, wie wir die Datentypen nutzen, die bereits definiert sind. Nun werden wir eigene definieren Bsp. Alter (könnte auch la <Edad/> heißen, der Typ wäre aber immer “age” Bsp. Geschlecht, leitet sich von String ab Bsp (gemeinsam mit Studenten): Vorname (kein führndes Leerzeichen, mindestens 2 Buchstaben) <xsd:stimpleType name=“firstName” type=“name”> <xsd:restriction base=“xsd:token” <xsd:minLength=“2”/> </xsd:restriction> </xsd:simpleType> Neben “restriction” gibt es auch die Möglichkeit SimpleTypes durch “union” und “list” zu bilden (hat aber keine so hohe Bedeutung) Datentypen werden für die Definition von Elementen (oberes Bsp.) und Attributen gebraucht

7 Definition komplexer Elemente  ComplexType
Komplexe Elemente sind Leere Elementen Elemente mit Attributen Elemente mit Kindelementen (Text und/oder anderen Elemente) ad 1. Leere Elemente <Person/> <xsd:element name="Person"> <xsd:complexType/> </xsd:element>

8 ad 2. Elemente mit Attributen
Beispiel für Syntax <xsd:attribute name="id" type="xsd:int" use="required"/> Mögliche Eigenschaften (Auszug) name: Name des Attributs type: Typ, definiert durch SimpleType default: Vorgabewert ref: Verweis auf globale Definition use: Mögliche Werte sind required, optional, prohibited fixed: Konstanter Wert

9 ad 2. Elemente mit Attributen /2
2 Beispiele für die Definition von Attributen <xsd:attribute name="id" type="xsd:int" use="required"/> <xsd:attribute name="age"> <xsd:simpleType> <xsd:restriction base="xsd:positiveInteger"> <xsd:maxValue value="120"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> Beispiel für Verwendung eines Attributs <Person id="123" alter="78"/> <xsd:element name="Person"> <xsd:complexType> <xsd:attribute name="id" type="xsd:int"/> <xsd:attribute name="alter" type="age"/> </xsd:complexType> </xsd:element> Typ an anderer Stelle definiert (s.o.)

10 ad 3.Definition der Kindelemente
Alternativen Feste Reihenfolge (sequence): Auswahl (choice) Beliebige Reihenfolge (all) Beispiel (für sequence) <xsd:element name="Person"> <xsd:complexType> <xsd:sequence> <xsd:element name="Vorname" type=„xsd:token" minOccurs="1"/> <xsd:element name="Birthdate" type="xsd:date"/> </xsd:sequence> </xsd:complexType> </xsd:element> <Person> <Vorname>Hans</Vorname> <Vorname>Joachim</Vorname> <Birthdate> </Birthdate> </Person>


Herunterladen ppt "Validierung vom XML mit XML Schema"

Ähnliche Präsentationen


Google-Anzeigen