Android will doch nur spielen XML 1
Agenda Motivation Grundlagen Schemadefinitionen XML Namensräume 2
Motivation extensible Markup Language Zweck: Datentransport Datenspeicherung Einfach erlernbar Strikte Trennung von Daten Metadaten Präsentation 3
Agenda Motivation Grundlagen Schemadefinitionen XML Namensräume 4
Aufbau (I) <?xml version="1.0" encoding="utf-8"?> <workshop title="android will doch nur spielen"> <speaker>christoph Stach</speaker> <participants> <participant> <name>max Mustermann</name> <school>bize</school> <email>mm@web.de</email> </participant> </participants> </workshop> 5
Aufbau (II) XML Deklaration: <?xml version="1.0" encoding="utf-8"?> Wurzelelement: <workshop title="android will doch nur spielen"> </workshop> 6
Aufbau (III) Elemente: Tag = Bezeichner des Elements Jedes Element muss geschlossen werden Inhalt: Text oder weitere Elemente Attribute: Beschreiben ein Element Name / Wert Paare Attribute als IDs, Kindknoten für Inhalt 7
Wohlgeformtheit Ein XML Dokument ist genau dann wohlgeformt wenn: es mit einer XML-Deklaration beginnt es mindestens ein Datenelement besitzt es genau ein Wurzelelement besitzt es korrekt verschachtelt ist jedes Element geschlossen wird 8
Gültigkeit Wohlgeformtheit beachtet keine Metadaten Ein XML Dokument ist genau dann gültig wenn: es wohlgeformt ist es ein Schema besitzt es gemäß der Schemadefinition aufgebaut ist 9
Agenda Motivation Grundlagen Schemadefinitionen XML Namensräume 10
Metadaten Schemata legen fest Welche Daten gespeichert werden Von welchem Datentyp die Daten sind Automatisch Dateninterpretation wird ermöglicht Zwei mögliche Datenformate: Document Type Definition (DTD) XML Schema 11
DTD (I) DTD legt fest Welche Elemente auftreten Welche Attribute die Elemente haben können / müssen Welche und wie viele Kinder die Elemente haben können / müssen Keine Einschränkung des Datentyps möglich 12
DTD (II) <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE workshop [ <!ELEMENT workshop (speaker,participants)?> <!ELEMENT speaker (#PCDATA)> <!ELEMENT participants (participant)+> <!ELEMENT participant (name,school,email)> <!ELEMENT name (#PCDATA)> <!ELEMENT school (#PCDATA)> <!ELEMENT email (#PCDATA)> ]> <workshop title="android will doch nur spielen"> 13
DTD (III) Auch Attribute können definiert werden: <!ATTLIST workshop title CDATA #REQUIRED> Attribute können Wertmenge einschränken Schlüssel als Datentyp zulässig 14
XML Schema (I) Alternative zur DTD Besteht selbst aus XML Datentypen zuweisbar Eigene Datentypen definierbar Unterstützt objektorientierte Eigenschaften, wie Abgeleitete Klassen Abstrakte Klassen Finale Klassen 15
XML Schema (II) <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:complextype name="p_t"> <xs:sequence> <xs:element name="participant"> <xs:complextype> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="school"type="xs:string"/> <xs:element name="email" type="xs:string"/> </xs:sequence> </xs:complextype> </xs:element> </xs:sequence> </xs:complextype> 16
XML Schema (III) <xs:element name="workshop"> <xs:complextype> <xs:sequence> <xs:element name="speaker" type="xs:string"/> <xs:element name="participants"type="p_t"/> </xs:sequence> <xs:attribute name="title" type="xs:string"/> </xs:complextype> </xs:element> </xs:schema> 17
Agenda Motivation Grundlagen Schemadefinitionen XML Namensräume 18
XML Namensräume Gleiche Tagnamen können unterschiedliche Bedeutungen haben Kollisionen bei mehreren Dokumenten möglich Lösung: unterschiedliche Namensräume Jeder Tagname innerhalb eines Namensraums eindeutig 19