200 likes | 282 Views
XML-Schema. HKI Proseminar Wintersemester 2010/11 Dozentin: Frau Kurz von Jan Kohl und Christian Lütticke. Seminarkontext. bisher: Erstellen von Document Type Definitions (DTDs), z.B. Cocktailsammlung, Immobilienanzeigen.
E N D
XML-Schema HKI Proseminar Wintersemester 2010/11 Dozentin: Frau Kurz von Jan Kohl und Christian Lütticke
Seminarkontext bisher: Erstellen von Document Type Definitions (DTDs), z.B. Cocktailsammlung, Immobilienanzeigen. → XML-Schema als leistungsfähigere Alternative zur DTD, um die Regeln für eine XML-Instanz festzulegen.
Seminarkontext Ausblick auf Möglichkeit 1 der Semesterarbeit: Wirklichkeitsbereich durch XML-Schema abbilden und dazugehörige XML-Instanz verfassen. Bedingungen an das XML-Schema: - mindestens 30 tags - mindestens 5 complex types - mindestens 5 restrictions - mindestens für 5 Tags einen über die vorgegebenen Datentypen hinaus spezifizierten - in zugehöriger XML-Instanz soll jedes vordefinierte Tag mindestens fünfmal vorkommen
Definition XML-Schema auch: XSD (XML Schema Definition) - auf XML basierende Alternative zu DTD - beschriebt die Struktur einer XML-Instanz - definiert die Anzahl der Elemente, Kind-Elemente, Attribute, sowie deren Reihenfolge - definiert zulässige Inhalte und (Ausgangs-)Werte für Elemente und Attribute
Definition XML-Schema Neu: - definiert den Datentyp, sowie dessen Einschränkungen für Elemente und Attribute - unterstützt das Einbinden von Namensräumen (namespaces) - unterstützt „Vererbbarkeit“ Forschungsstandpunkt: „We think that very soon XML Schemas will be used in most Web applications as a replacement for DTDs.“ „XML Schema became a W3C Recommendation 02. May 2001.“ (Zitate: www.w3schools.com)
XML-Schema XML-Schema basiert auf XML-Syntax - keine andere Sprache als XML notwendig - </oxygen> Editor verwendbar - Zugriff auf XML-Instanz durch XSLT (Extensible Stylesheet Language Transformation) → XML-Schema muss well-formed und valide sein (case-sensitive wie XML!)
XML-Schema XML-Deklaration zu Beginn des XML-Schema Abspeichern als: xyz.xsd <?xml version="1.0" encoding=“UTF-8“?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> … ... </xs:schema>
XML-Schema Einbinden des XML-Schema in XML-Instanz <?xml version="1.0"?> <note xmlns="http://www.w3schools.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="eigene.xsd"> … … </note>
XML-Schema Elemente: simple type - kann nur einen Datentyp und keine weiteren Elemente oder Attribute enthalten <xs:element name="nachname"type="..."/>
XML-Schema Elemente: simple type – data types Unterschied: Datentyp-Definition „type=...“ anstatt „#PCDATA“ (einfache „parseable character data“). in XSD: <xs:element name="nachname" type="..." default=“mueller“> in DTD: <!ELEMENT nachname (#PCDATA)>
XML-Schema Elemente: simple type – data types XSD verwendet verschiedene Datentypen, Am häufigsten: - xs:string - xs:decimal - xs:integer - xs:boolean - xs:date - xs:time Beispiel: <xs:element name="nachname" type="xs:string"/> <xs:element name="alter" type="xs:integer"/>
XML-Schema Elemente: complex type enthält – im Gegensatz zum simple type – weitere Elemente oder Attribute weitere Elemente – Beispiel: <xs:element name="kuenstler"> <xs:complexType> <xs:sequence> <xs:element name="vorname" type="xs:string"/> <xs:element name="nachname" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
XML-Schema Indicators - definieren wie einzelne Elemente in complex type verwendet werden können. Reihenfolge: all choice sequence Häufigkeit: maxOccurs minOccurs Gruppen: Group name attributeGroup name
XML-Schema Indicators Beispiel: <xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="Vorname" type="xs:string"/> <xs:element name="Zweitname" type="xs:string" maxOccurs="10" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element>
XML-Schema Elemente: complex type enthält – im Gegensatz zum simple type – weitere Elemente oder Attribute type attribute – Beispiel: <xs:element name="kuenstler" type="personinfo"/> <xs:complexType name="personinfo"> <xs:sequence> <xs:element name="vorname" type="xs:string"/> <xs:element name="nachname" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:element name="darsteller" type="personinfo"/>
XML-Schema Complex type – attributes Beispiel: Attribut-Deklaration: <xs:attribute name="anrede" type="xs:string" use="required/> in XML-Instanz: <name anrede="Herr">Mueller</name>
XML-Schema Restrictions - „Einschränkungen“ - definieren Vorgabe-Bereiche für Datentypen - eigene restrictions werden auch als facets bezeichnet Beispiel: <xs:element name="alter"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="120"/> </xs:restriction> </xs:simpleType> </xs:element>
XML-Schema Restrictions - „Einschränkungen“ Weitere restriction-types: - enumeration - fractionDigits - length - maxExclusive - maxInclusive - maxLength - minExclusive - minInclusive - minLength - pattern - totalDigits - whiteSpace
XML-Schema Anwendungsbeispiel
XML-Schema Quellen: http://www.edition-w3.de/TR/2001/REC-xmlschema-0-20010502/ http://www.edition-w3.de/TR/2001/REC-xmlschema-1-20010502/ http://www.edition-w3.de/TR/2001/REC-xmlschema-2-20010502/ http://www.w3schools.com/schema/default.asp http://de.wikipedia.org/wiki/XML_Schema http://www.oxygenxml.com/xml_schema_editor.html