Understanding XML Schema for Robust Document Type Definitions
200 likes | 288 Vues
Learn about XML Schema, a powerful alternative to DTDs, to define rules for XML instances. Explore creating XML instances based on XML Schema and its key components like elements, data types, and restrictions.
Understanding XML Schema for Robust Document Type Definitions
E N D
Presentation Transcript
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