XML und die dritte Generation des Internet



Ähnliche Dokumente
XML Schema vs. Relax NG

XML-Schema Datentypen

XML Grundlagen. Andreas Rottmann,Sebastian Riedl. 27. August Quit Full Screen Previous Page Next Page GoTo Page Go Forward Go Back

XML DTD und Schema von Thomas Mangold

XML, Standards und andere Aktivitäten zur Formierung des Semantic Web

Namespaces. Namensräume...

Mario Jeckle. XML Schema

... MathML XHTML RDF

Datenaustauschformate. Datenaustauschformate - FLV

Klaus Schild, XML Clearinghouse Namensräume

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann

WEBSEITEN ENTWICKELN MIT ASP.NET

HTML5. Wie funktioniert HTML5? Tags: Attribute:

RDF und RDF Schema. Einführung in die Problematik Von HTML über XML zu RDF

Wiederholung: Beginn

XML Kurs LRZ 1

2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit

Java und XML 2. Java und XML

Meine erste Homepage - Beispiele

DTD: Syntax-Zusammenfassung

Android will doch nur spielen XML

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

IT-Zertifikat: Daten- und Metadatenstandards

XML Schema 2014 S h_da S Seite 1

Dokumenten- und Content Management

Das Einsteigerseminar

Webseiten und Web-Apps grafisch gestalten mit HTML5 Canvas ohne Flash und sonstige Tools

Verteilte Systeme: Übung 4

Java: Kapitel 9. Java und XML. Programmentwicklung WS 2008/2009. Holger Röder

XSL Templates. Mit Templates arbeiten. XSL Templates

Reimo Fachhändlerbereich Import Datei

Ressourcen-Beschreibung im Semantic Web

XML Schema 2016 S h_da S Seite 1

X-Technologien. Ein Überblick. Ulrike Henny. IDE Summer School 2013, Chemnitz

Implementierung von Web Services: Teil I: Einleitung / SOAP

Grundbegriffe der Informatik

XML und SOAP Einführung und Grundlagen

Workflow, Business Process Management, 4.Teil

Online-Publishing mit HTML und CSS für Einsteigerinnen

Semantic Web Services

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

XML Extensible Markup Language

XML Informationsmodelle

Webdesign-Multimedia HTML und CSS

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Präsentation Von Laura Baake und Janina Schwemer

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML

Zusammenfassung XML. Metasprache um Dokumenttypen zu definieren

GI-Services erstellen und bereitstellen

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

VVA Webservice Online Lieferbarkeits-Abfrage

HTML-Grundlagen (X)HTML:

Semantic Markup für die Dokumentenklassifizierung. Seminarvortrag von Mirko Pracht

XML Extensible Markup Language

XML Schema Kurzreferenz

Barrierefreie Webseiten erstellen mit TYPO3

XSL und XSLT. Inhalt. Mathias Heilig XSL Übersicht. Formatierungsprozess. Sprachbeschreibung. Vorführung Resümee

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

Dokumentation Externe Anzeige von Evento Web Dialogen

XML-Namensräume. Marc Monecke

XML Tutorium mit Oxygen. Oxygen Version 9.3!!

Einführung in XML. Seminarunterlage. Version 3.05 vom

Pflichtenheft. CDIX-Roles. Erweiterung des CDIX Berechtigungssystems. Autor : CD Software GmbH. Copyright CD Software GmbH Version:

1 Software Engineering 1

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

4 Aufzählungen und Listen erstellen

XML Grundlagen Teil I

Tutorial: Die Extensible Markup Language (XML)

W3C s XML Schema Die Sprache der Sprachen Mario Jeckle DaimlerChrysler Forschungszentrum Ulm

Vortrag von: Ilias Agorakis & Robert Roginer

XML Vorlesung ETHZ SS XML Vorlesung ETHZ, Sommersemester

OP-LOG

Informationen zu den regionalen Startseiten

XML Werkzeug XML Spy. Frank Heininger Axel Labuschke

Containerformat Spezifikation

Containerformat Spezifikation

WhiteStarUML Tutorial

Zustandsgebundene Webservices

XML-Praxis. XML-Anwendungen. Jörn Clausen

Ursprung des Internets und WWW

Gliederung. 1. That s Radiant 2. User Interface 3. Rollen 4. Installation 5. Extensions 6. Fazit

Anleitung für das Content Management System

Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug Name: Note:

XML - Extensible Markup Language. Agenda - Oracle XML DB

Content Management System. «Rainbow Basis» Grundlagen. Einfache Kursverwaltung

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Guido de Melo Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis

5.2 Neue Projekte erstellen

XML Verarbeitung mit einer in Haskell eingebetteten DSL. Manuel Ohlendorf (xi2079)

IT-Zertifikat: Daten- und Metadatenstandards. Transformation von XML-Dokumenten mit XSLT (und XPATH) XSLT kurz und knackig. XSLT und die Praxis

Erste Schritte mit XHTML

Der iredakt 4.0 Editor für 100% barrierefreien Content. und überhaupt die Gesamt-Problematik der Barrierefreiheit bei CMS-Editoren

Präsentation zum Thema XML Datenaustausch und Integration

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

CGI Programmierung mit Ha. Markus Schwarz

TemplaVoila T3AK07 - TYPO3 Akademie 2.0

Anforderungen an die HIS

Transkript:

XML und die dritte Generation des Internet Mario Jeckle DaimlerChrysler Forschungszentrum Ulm mario.jeckle@daimlerchrysler.com mario@jeckle.de www.jeckle.de

Gliederung I II III IV XML -- wo stehen wir heute? Web Services -- der nächste Hype?! Web Services -- von der Idee zur Praxis XML, das Web und die Zukunft M. Jeckle XML und die dritte Generation des Internet 2002-10-07 3

Inhalte und Einordnung des Tutorials HTML XHTML SVG SMIL... DSig P3P CCPP... Semantic Web (RDF, Ontologies,...) Web Services SGML XML (Namespaces, XML Schema, XSLT, Xpath, XLink, XML Base) Das ursprüngliche Web Das Web der Gegenwart und (beginnenden) Zukunft M. Jeckle XML und die dritte Generation des Internet 2002-10-07 4

Inhalte und Einordnung des Tutorials... die dritte Generation des Internet ARPANet/Internet Web Web NG 2001 2000 1999 1997 1994 1989 1974 1969 1962 1962: Paketnetzwerke 1969: ARPANet 1974: TCP/IP 1962: HTML, HTTP und die erste Browserimplementierung 1994: Zunehmende HTML-Inkompatibilitäten und -standardverwässerungen 1997: Extensible Markup Language 1999: Resource Description Framework 2000: XML Schema 2001: Semantic Web M. Jeckle XML und die dritte Generation des Internet 2002-10-07 18

Inhalte und Einordnung des Tutorials... die dritte Generation des Internet ARPANet/Internet Web Web NG 2001 2000 1999 1997 1994 1989 1974 1969 1962 Transferorientiert Dokumenten- und Publikationsorientiert Daten- und Informationssorientiert M. Jeckle XML und die dritte Generation des Internet 2002-10-07 19

Inhalte und Einordnung des Tutorials XML -- wo stehen wir heute? Entwicklungsstand des XML-Sprachkerns Version 1.1 XInclude XMLBase XML Schema Grundidee und Möglichkeiten Aktueller Status der Standardisierung Einsatzerfahrungen und Auswirkungen M. Jeckle XML und die dritte Generation des Internet 2002-10-07 20

Inhalte und Einordnung des Tutorials XML -- wo stehen wir heute? Die nächste Hypertextgeneration XHTML v2.0 Das sichtbare Web wird zum semantischen XHTML als eine XML Sprache XML in der Softwareentwicklung Design Time (UML, XMI, SVG) Build Time (Code Generierung, Dokumentation) Run Time (XML-Schnittstellen und APIs) M. Jeckle XML und die dritte Generation des Internet 2002-10-07 21

Inhalte und Einordnung des Tutorials Web Services -- Der nächste Hype? Web Services Was steckt hinter dem Schlagwort? SOAP -- Ausgangspunkt der Web Service Idee W3Cs SOAP v1.2 Flankierende Standards und Ideen Web Service Schnittstellenbeschreibung (WSDL) Web Service Verzeichnisse (UDDI) Web Service Choreographie (BPEL4WS) M. Jeckle XML und die dritte Generation des Internet 2002-10-07 22

Inhalte und Einordnung des Tutorials Web Services -- Von der Idee zur Praxis Sicherheitsaspekte Bedarf and sicheren Web Services Technische Maßnahmen Einsatzempfehlungen M. Jeckle XML und die dritte Generation des Internet 2002-10-07 23

Inhalte und Einordnung des Tutorials XML, das Web und die Zukunft Die Vision des semantischen Webs Was ist das semantische Web? Standards und Roadmap Verfügbar, greifbar und einsetzbar? Architekturprinzipien des Web Grundidee und Elemente Identifikation, Formate und Protokolle Der Architekturvorschlag REST M. Jeckle XML und die dritte Generation des Internet 2002-10-07 24

XML und die dritte Generation des Internet Entwicklungsstand des XML-Sprachkerns Version 1.1 XInclude XMLBase M. Jeckle XML und die dritte Generation des Internet 2002-10-07 27

Entwicklungsstand des XML-Sprachkerns XML und der Euro Das Euro-Symbol ( ) ist in Unicode enthalten (0x20AC)... nicht jedoch in ISO-Latin-1!... dafür jedoch in ISO-Latin-15! <?xml <?xml version= version= 1.0 1.0 encoding= ISO-8859-1?> encoding= ISO-8859-1?> <Rechnung> <Rechnung> korrekte...... Fassungen <Betrag>42</Betrag> <Betrag>42</Betrag> <Währung> </Währung> <Währung> </Währung>...... </Rechnung> </Rechnung> <?xml <?xml version= version= 1.0 1.0 encoding= UTF-8?> <Rechnung>...... <Betrag>42</Betrag> <Währung> </Währung>...... </Rechnung> <?xml <?xml version= version= 1.0 1.0 encoding= ISO-8859-15?> <Rechnung>...... <Betrag>42</Betrag> <Währung> </Währung>...... </Rechnung> M. Jeckle XML und die dritte Generation des Internet 2002-10-07 28

Entwicklungsstand des XML-Sprachkerns XML Version 1.1 Was bisher geschah... XML v1.0: Entwickelt seit 1997 Veröffentlicht 1998 XML v1.0 2 nd edition: Keine neue Version Behebt kleinere Fehler und editorielle Ungenauigkeiten Behutsame Synchronisation mit ISO 10646/Unicode... aber immer noch... Strukturelle Abhängigkeit zu Unicode => Daraus erwachsende Probleme bei der Namensbildung M. Jeckle XML und die dritte Generation des Internet 2002-10-07 29

Entwicklungsstand des XML-Sprachkerns XML Version 1.1 Neuerungen in XML v1.1 (Codename: blueberry) Ausschließlich Fragestellungen der Zeichendarstellung berücksichtigt. Internationalisierung (vollständig natives XML) ist in XML v1.0 nicht für alle natürlichen Sprachen möglich (z.b. Kantonesisch, traditionelles Mongolisch, Japansich,...) Zeichendarstellung hat weitreichende Auswirklungen...... Namensbildung (Elemente, Attribute, Processing Instructions,...)... Prozessorenbau... alle XML-Vokabulare und Standards... die Wohlgeformtheit M. Jeckle XML und die dritte Generation des Internet 2002-10-07 30

Entwicklungsstand des XML-Sprachkerns XML Version 1.1 Exkurs: vollständig natives Markup Gemischte Darstellung aus ASCII-codierten und nativen (griechischen) Anteilen... ist kein vollständiges natives Markup M. Jeckle XML und die dritte Generation des Internet 2002-10-07 31

Entwicklungsstand des XML-Sprachkerns XML Version 1.1 Exkurs: vollständig natives Markup Natives Markup: Ausschließliche Verwendung von nativen (hier: Bopomofo) Anteilen sowohl in den XML-Konstrukten, als auch den Inhalten M. Jeckle XML und die dritte Generation des Internet 2002-10-07 32

Entwicklungsstand des XML-Sprachkerns XML Version 1.1 Neuerungen in XML v1.1 (Codename: blueberry) Ausschließlich Fragestellungen der Zeichendarstellung berücksichtigt. Sonderrolle einzelner Zeichen (konkret: der Leerraumsymbole) ist nicht plattformübergreifend. Zeilenende und Zeilenumbrüche auf IBM-Mainframes (OS/390) werden in XML v1.0 nicht adäquat unterstützt. Gesamtheit aller Erweiterungen und Änderungen rechtfertigt eine neue XML-Version, statt nur einer neuen Ausgabe. M. Jeckle XML und die dritte Generation des Internet 2002-10-07 33

Entwicklungsstand des XML-Sprachkerns XML Version 1.1 Neuerungen in XML v1.1 (Codename: blueberry) Zeilenende und Zeilenumbruch IBM-kompatibler Mainframes als white-spaces. Veränderung XML-Namens. Zulassung diakritischer und weiterer Zeichen. M. Jeckle XML und die dritte Generation des Internet 2002-10-07 34

Entwicklungsstand des XML-Sprachkerns XML Version 1.1 Zusammenfassung: XML-Parser müssen überarbeitet werden! XML v1.1 Dokumente erlauben alle (im Anwendungskontext sinnvollen) Unicodesymbole. Unterstützen alle Unicode v3.1 Symbole zur Darstellung des Zeilenendes. XML v1.1 berücksichtigt konzeptionell bereits zukünftige Unicodeüberarbeitungen. nimmt keine weiteren Änderungen vor. M. Jeckle XML und die dritte Generation des Internet 2002-10-07 35

Entwicklungsstand des XML-Sprachkerns XML Version 1.1... Was XML v1.1 nicht enthält: Abkehr von DTD. XML-Schema löst SGMLs Grammatikmechanismus nicht ab. Direkter InfoSet-Bezug. Syntax und strukturelle Semantik weiterhin getrennt. Integration der Namensraume. Kein über v1.0 hinausgehender Bezug. Berücksichtigung von XMLBase. Attribut xml:base geniest weiterhin eine Sonderstellung. Abkehr vom Konstrukt der Enititäten. XInclude würde die wesentlichen Eigenschaften aufweisen. M. Jeckle XML und die dritte Generation des Internet 2002-10-07 36

Entwicklungsstand des XML-Sprachkerns XML Inclusions Hintergrund und Zielsetzung: Allgemeiner Inklusionsmechanismus steht bereits mit XML v1.0 durch die Entitäten zur Verfügung. Nutzung erfordert jedoch Implementierung des DTD-Mechanismus. Entitätsauflösung ist prozessorspezifisch. Wohlgeformtheit eines XML-Dokuments nach Entitätsauflösung nicht garantiert. Entitäten sind kein XML! M. Jeckle XML und die dritte Generation des Internet 2002-10-07 38

Entwicklungsstand des XML-Sprachkerns XML Inclusions Hintergrund und Zielsetzung: Entitäten sind kein XML! Beispiel: <?xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE page page [[ <!ELEMENT page page (#PCDATA head head body)*> body)*> <!ELEMENT body body (#PCDATA)> <!ELEMENT head head (pagetitle)> <!ELEMENT pagetitle pagetitle (#PCDATA)> <!ENTITY header header "<head><pagetitle>hello World!</pagetitle></head>"> ]> ]> <page> <page> &header; &header; <body>...</body> </page> </page> M. Jeckle XML und die dritte Generation des Internet 2002-10-07 39

Entwicklungsstand des XML-Sprachkerns XML Inclusions Hintergrund und Zielsetzung: Rekonstruktion der Mächtigkeit externer Entitäten. Etablierung eines von der Validierung losgelösten Referenzierungsmechanismus. Schaffung eines XML-Vokabulars zur Referenzierung. (Elemente, Attribute, URI Verweise) Vereinigung eigenständiger Infosets. Kontrolle des Vereinigungsprozesses. Verlagerung des Vereinigungszeitpunktes vor den Parsingvorgang. Damit: Verringerung der Parserkomplexität. Aktueller Stand: Candidate Recommendation M. Jeckle XML und die dritte Generation des Internet 2002-10-07 40

Entwicklungsstand des XML-Sprachkerns XML Inclusions Realisierung: Definition eines Beschreibungsmodells, bestehend aus den Elementen include und fallback im XInclude-Namensraum. Nutzung des href-attributes zur Definition des Verweisziels. Nutzung des XPointer-Standards zur Lokalisation des Verweisziels. Definition eines Ausführungsmodells, zur Umsetzung der Inklusion sowie evtl. notwendiger Fehlerzustände. M. Jeckle XML und die dritte Generation des Internet 2002-10-07 41

Entwicklungsstand des XML-Sprachkerns XML Inclusions Beispiel: <?xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE page page [[ <!ELEMENT page page (#PCDATA head head body)*> body)*> <!ELEMENT body body (#PCDATA)> <!ELEMENT head head (pagetitle)> <!ELEMENT pagetitle pagetitle (#PCDATA)> <!ENTITY header header "<head><pagetitle>hello World!</pagetitle></head>"> ]> ]> <page> <page> &header; &header; <body>...</body> </page> </page> header.xml <?xml <?xml version= 1.0 encoding= UTF-8?> <head><pagetitle>hello World!</pagetitle></head> M. Jeckle XML und die dritte Generation des Internet 2002-10-07 42

Entwicklungsstand des XML-Sprachkerns XML Inclusions Beispiel: <?xml <?xml version="1.0" encoding="utf-8"?> <page> <page> <xi:include xmlns:xi= http://www.w3.org/2001/xinclude href= header.xml /> <body>...</body> </page> </page> header.xml <?xml <?xml version= 1.0 encoding= UTF-8?> <head><pagetitle>hello World!</pagetitle></head> M. Jeckle XML und die dritte Generation des Internet 2002-10-07 43

Entwicklungsstand des XML-Sprachkerns XML Inclusions Beispiel: <?xml <?xml version="1.0" encoding="utf-8"?> <page> <page> <head> <head> <pagetitle>hello World!</pagetitle> </head> </head> <body>...</body> </page> </page> Ausführung: Durch separaten XInclude-Prozessor, der Teil des XML-Prozessors sein kann. Kein Bezug zur Validierung! M. Jeckle XML und die dritte Generation des Internet 2002-10-07 44

Entwicklungsstand des XML-Sprachkerns XML Inclusions Eine einfache Implementierung mit XSLT selbstgebaut: <xsl:transform version="2.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform" xmlns:xsl="http://www.w3.org/1999/xsl/transform" xmlns:xi="http://www.w3.org/2001/xinclude"> xmlns:xi="http://www.w3.org/2001/xinclude"> <xsl:template match="* @*"> <xsl:copy> <xsl:apply-templates select="@* node()"/> </xsl:copy> </xsl:template> <xsl:template match="xi:include"> <xsl:variable name="doc" select="@href"/> <xsl:apply-templates select="document($doc)"/> </xsl:template> </xsl:transform> M. Jeckle XML und die dritte Generation des Internet 2002-10-07 45

Entwicklungsstand des XML-Sprachkerns XML Base Hintergrund: Hyperlinks sind das konstituierende Element des Web. (... und werden zukünftig noch mehr an Bedeutung gewinnen) URI-Referenzen eignen sich (zunächst) gut zur dezentralen Definition ein-eindeutiger Lokationen. Fragment-URIs sind zwar syntaktisch zulässig, Zielsetzung: jedoch höchst problematisch... (Vgl. namespace trouble) Sichere Nutzung relativer URIs M. Jeckle XML und die dritte Generation des Internet 2002-10-07 46

Entwicklungsstand des XML-Sprachkerns XML Base Realisierung: Stark angelehnt an HTMLs base-attribut Definition eines Beschreibungsmodells, bestehend aus dem Attribut xml:base Redefinition der Ausführungsmodells des href-attributs Relative URI-Auflösung zu umgebender Entität (Element, Dokument oder externe Entität) M. Jeckle XML und die dritte Generation des Internet 2002-10-07 47

Entwicklungsstand des XML-Sprachkerns XML Base Beispiel: <?xml <?xml version="1.0" encoding="iso-8859-1"?> <series <series xml:base="http://example.com/"> <part <part no="1"> no="1"> <chapter> <item <item href="index.html#zueignung">zueignung</item> <!-- <!--......--> --> </chapter> </part> </part> <part <part no="2" no="2" title="der Tragödie Tragödie erster erster Teil"> Teil"> <chapter <chapter xml:base="teil1/akt1.html"> <item <item href="#nacht">nacht</item> <!-- <!--......--> --> </chapter> </part> </part> </series> M. Jeckle XML und die dritte Generation des Internet 2002-10-07 48

Entwicklungsstand des XML-Sprachkerns XML Base Beispiel: <?xml <?xml version="1.0" encoding="iso-8859-1"?> <series <series xml:base="http://example.com/"> <part <part no="1"> no="1"> <chapter> <item <item href="index.html#zueignung">zueignung</item> <!-- <!--......--> --> </chapter> </part> </part> <part <part no="2" no="2" title="der Tragödie Tragödie erster erster Teil"> Teil"> <chapter <chapter xml:base="teil1/akt1.html"> <item <item href="#nacht">nacht</item> <!-- <!--......--> --> </chapter> </part> </part> </series> http://example.com/index.html#zueignung M. Jeckle XML und die dritte Generation des Internet 2002-10-07 49

Entwicklungsstand des XML-Sprachkerns XML Base Beispiel: <?xml <?xml version="1.0" encoding="iso-8859-1"?> <series <series xml:base="http://example.com/"> <part <part no="1"> no="1"> <chapter> <item <item href="index.html#zueignung">zueignung</item> <!-- <!--......--> --> </chapter> </part> </part> <part <part no="2" no="2" title="der Tragödie Tragödie erster erster Teil"> Teil"> <chapter <chapter xml:base="teil1/akt1.html"> <item <item href="#nacht">nacht</item> <!-- <!--......--> --> </chapter> </part> </part> </series> http://example.com/teil1/akt1.html#nacht M. Jeckle XML und die dritte Generation des Internet 2002-10-07 50

Entwicklungsstand des XML-Sprachkerns XML Base Eine einfache Implementierung mit XSLT selbstgebaut: <?xml <?xml version="1.0" encoding="utf-8"?> <xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:output method="text" version="1.0" encoding="utf-8"/> <xsl:template match="*[@href]"> <xsl:value-of select="."/>: <xsl:apply-templates select="ancestor::*/@xml:base"/><xsl:value-of select="@href"/><xsl:text> </xsl:text> </xsl:template> <xsl:template match="*/@xml:base"> <xsl:value-of select="."/> </xsl:template> <xsl:template match="text()"/> </xsl:transform> M. Jeckle XML und die dritte Generation des Internet 2002-10-07 51

XML und die dritte Generation des Internet XML Schema Grundidee und Möglichkeiten Aktueller Status der Standardisierung Einsatzerfahrungen und Auswirkungen M. Jeckle XML und die dritte Generation des Internet 2002-10-07 52

XML Schema Dokumentenorientiert 1989 1986 1969 1967 1950 1950: Memex 1967: Generic Encoding, Editorial Structure Tags 1969: Generic Markup Language (GML) 1986: Standardized Generalized Markup Language (SGML) 1989: Hyper Text Markup Language (HTML) M. Jeckle XML und die dritte Generation des Internet 2002-10-07 53

XML Schema Dokumentenorientiert Datenorientiert 2001 2000 1989 1986 1969 1967 1950 1950: Memex 1967: Generic Encoding, Editorial Structure Tags 1969: Generic Markup Language (GML) 1986: Standardized Generalized Markup Language (SGML) 1989: Hyper Text Markup Language (HTML) 1989: Hyper Text Markup Language (HTML) 1998: Extensible Markup Language (XML) 2000: Extensible Hyper Text Markup Language (XHTML) 2001: XML Schema M. Jeckle XML und die dritte Generation des Internet 2002-10-07 54

XML Schema Der XML Information Set: Definiert strukturellen Aufbau einer XML-Quelle... als abstrakte Datenmenge... als Definitionssammlung Jedes wohlgeformte XML-Dokument besitzt einen InfoSet... auch wenn es nicht als Datei vorliegt... daher ist diese Spezifikation Basis weiterer W3C-Spezifikationen (XML-Schema, XMLP/SOAP, WSDL,...) W3C Recommendation seit 2001-10-24... definiert keinerlei Programmierparadigmenspezifische Schnittstellen... operiert auf abstrakten Baumstrukturen Wird durch XML-Schemavalidierungsprozeß... auf strukturelle Konformität geprüft... mit Typinformation dekoriert M. Jeckle XML und die dritte Generation des Internet 2002-10-07 57

XML Schema Namespace In-scope namespaces children attributes Attribute references namespace attributes Element document element Comment children DTD Processing Instruction notation Unexpanded Entity Ref. Character Document notation Notation unparsed entities Unparsed Entity notation M. Jeckle XML und die dritte Generation des Internet 2002-10-07 58

XML Schema DTD... definiert ein nicht-xml-vokabular zur Strukturbeschreibung... offeriert ein geschlossenes eng-limitiertes Typsystem InfoSet... definiert ausschließlich Struktur... trifft keine Aussage über die syntaktischen Inhaltsdarstellung... gibt Bindung an (SGML-)Dokumenttypdefinition auf Objektorientierte Umsetzung (Syntax) XML-Schema Strukturelle Validierung Typsystem (erweitert und erweiterbar) XML und zuweisung Konzeptionelle Obermenge der Information DTD-Mächtigkeit Set Einige konkurrierende Vorschläge (Semantik) und Konzepte Bekanntester Kompakte Ansatz: Binärrepräsentation W3Cs XML-Schema (Syntax) XML Recommendation (Syntax) LISPs S-Expression (Syntax) M. Jeckle XML und die dritte Generation des Internet 2002-10-07 61

XML Schema DTD... definiert ein nicht-xml-vokabular zur Strukturbeschreibung... offeriert ein geschlossenes eng-limitiertes Typsystem InfoSet... definiert ausschließlich Struktur... trifft keine Aussage über die syntaktischen Inhaltsdarstellung... gibt Bindung an (SGML-)Dokumenttypdefinition auf XML-Schema Strukturelle Validierung Typisierung Erhalt und Erweiterung der DTD-Mächtigkeit Einige konkurrierende Vorschläge und Konzepte Bekanntester Ansatz: W3Cs XML-Schema M. Jeckle XML und die dritte Generation des Internet 2002-10-07 62

XML Schema: Verhältnis zur Document Type Definition SGML-DTD XML-DTD XML-DTD bildet syntaktisch und hinsichtlich der Mächtigkeit eine echte Untermenge des SGML-DTD-Mechanismus M. Jeckle XML und die dritte Generation des Internet 2002-10-07 63

XML Schema: Erweiterungsoptionen SGML-DTD Erweiterte-XML-DTD Ur-XML-DTD Erweiterung der XML-DTD-Mächtigkeit um weitere (bereits existierende) Primitive des SGML-DTD-Mechanismus: (+) (Unbestreitbarer) Mächtigkeitsgewinn (-) (unvermeidlicher) Komplexitätszuwachs (-) SGML-Mächtigkeit bildet natürliche Obergrenze M. Jeckle XML und die dritte Generation des Internet 2002-10-07 64

XML Schema: Erweiterungsoptionen SGML-DTD Erweiterte-XML-DTD Ur-XML-DTD Erweiterung der XML-DTD-Mächtigkeit um Primitive die über den SGML-DTD-Mechanismus hinausgehen: (+) Freiheitsgrad hinsichtlich beliebiger Erweiterungen (-) XML-Grammatiken keine Untermenge von SGML mehr M. Jeckle XML und die dritte Generation des Internet 2002-10-07 65

XML Schema: Konkurrierende Erweiterungsmöglichkeiten Erweiterungen des bestehenden (SGML-/XML-)DTD-Mechanismus Data Types for DTD (DT4DTD) Wissensbeschreibung Document Content Description for XML (DCD) (RDF basierte Weiterentwicklung von XML-Data) Inspiriert durch XML-API-Entwicklung Schema for Object oriented XML (SOX) XML-Sprachen zur Inhaltsbeschreibung Document Definition Markup Language/XSchema (DDML) Schematron (XSLT-basierte Auswertung der Dokumentstruktur) XML-Data/XML-Data Reduced (XDR) (erster Ansatz noch vor Verabschiedung XML 1.0) Document Structure Description (DSD) M. Jeckle XML und die dritte Generation des Internet 2002-10-07 66

XML Schema: Umfeld DTD... definiert ein nicht-xml-vokabular zur Strukturbeschreibung... offeriert ein geschlossenes eng-limitiertes Typsystem InfoSet... definiert ausschließlich Struktur... trifft keine Aussage über die syntaktischen Inhaltsdarstellung... gibt Bindung an (SGML-)Dokumenttypdefinition auf XML-Schema Strukturelle Validierung Typsystem (erweitert und erweiterbar) und zuweisung Konzeptionelle Obermenge der DTD-Mächtigkeit Einige konkurrierende Vorschläge und Konzepte Bekanntester Ansatz: W3Cs XML-Schema M. Jeckle XML und die dritte Generation des Internet 2002-10-07 67

XML Schema: Vorgängeransätze DTD SOX DCD DDML... definiert ein nicht-xml-vokabular zur Strukturbeschreibung... offeriert ein geschlossenes eng-limitiertes Typsystem W3C s InfoSet XML Schema Part 1 (Structures)... definiert ausschließlich XML Schema Struktur Part 2 (Datatypes)... trifft keine Aussage über die syntaktischen Inhaltsdarstellung... gibt Bindung an (SGML-)Dokumenttypdefinition auf XDR XML Data XML-Schema Strukturelle Validierung Typsystem (erweitert und erweiterbar) und zuweisung Konzeptionelle Obermenge der DTD-Mächtigkeit Einige konkurrierende Vorschläge und Konzepte Bekanntester Ansatz: W3Cs XML-Schema M. Jeckle XML und die dritte Generation des Internet 2002-10-07 68

<?xml version ="1.0" encoding="utf-8"?> <?xml version ="1.0" encoding="utf-8"?> <xs:schema <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema" targetnamespace="http://www.daimlerchrysler.com/ric/ed/presentation/jeckle/gidb" xmlns:xs="http://www.w3.org/2001/xmlschema " targetnamespace="http://www.daimlerchrysler.com/ric/ed/presentation/jeckle/gidb" elementformdefault="qualified" elementformdefault="qualified" xmlns="http://www.daimlerchrysler.com/ric/ed/presentation/jeckle/gidb"> <xs:simpletype xmlns="http://www.daimlerchrysler.com/ric/ed/presentation/jeckle/gidb"> name ="MailAddressType"> <xs:restriction <xs:simpletype base name ="xs ="MailAddressType :token"> "> <xs:restriction base ="xs:token"> <xs:pattern value="([a-z]){1,}((. -){0,1}([a-z]){1,}){1,}@[a-z]{1,}"/> <xs :pattern value="([a-z]){1,}((. -){0,1}([a-z]){1,}){1,}@[a-z]{1,}"/> </xs:restriction> </xs:simpletype> </xs:restriction> </xs:simpletype > <xs:element name="e-mail" type="mailaddresstype "/> <xs:element name ="E-Mail" type="mailaddresstype"/> <xs:element name="firma" type="xs:normalizedstring "/> <xs:element <xs:element name="name" ="Firma" type="xs:normalizedstring type="xs:normalizedstring "/> "/> <xs:element name ="Name" type="xs:normalizedstring "/> <xs:complextype name ="ReferentType"> <xs:complextype name ="ReferentType"> <xs:sequence> <xs:element <xs:sequence> ref="name"/> <xs :element ref="name"/> <xs:element ref="firma"/> <xs :element ref="firma"/> <xs:element ref="url"/> <xs:element :element ref="e-mail"/> ref="url"/> </xs:sequence> <xs :element ref="e- Mail"/> </xs:sequence> </xs:complextype> <xs:element </xs:complextype> name="titel" type="xs:string "/> <xs:element <xs:element name="url" ="Titel" type="xs:anyuri"/> ="xs:string"/> <xs:element name ="URL" type="xs:anyuri"/> <xs:complextype name ="VeranstaltungType "> <xs:complextype name ="VeranstaltungType"> <xs:sequence> <xs:element <xs:sequence> ref="name"/> <xs :element ref="name"/> </xs:sequence> </xs:sequence> <xs:attribute name ="datum" type="xs:date" use ="required"/> </xs:complextype> <xs:attribute name="datum" type="xs:date" use="required"/> </xs:complextype> <xs:element name="vortrag"> <xs:element name ="Vortrag"> <xs:complextype > <xs:sequence> <xs:complextype> <xs:element :sequence> ref="titel"/> <xs:element ref ="Titel"/> <xs:element name="veranstaltung" type="veranstaltungtype "/> <xs:element <xs:element name="referent" ="Veranstaltung" type="referenttype"/> type="veranstaltungtype"/> </xs:sequence> <xs:element name ="Referent" type="referenttype"/> </xs:sequence> </xs:complextype> </xs:element> </xs:complextype > </xs:schema </xs:element> > </xs :schema> Research and Technology XML Schema: Organisation als Metamodell <?xml <?xml version="1.0" version="1.0" encoding="utf-8"?> encoding="utf-8"?> <xs:schema <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema" targetnamespace="http://example.com" xmlns:ex="http://example.com"> xmlns:ex="http://example.com"> </xs:schema> </xs:schema> Der XML-Schema-Standard... ist strukturell selbstbescheibend... gestattet die Definition jedes Schemas als schema-gültiger XML-Datei... unterstützt XML-Namensräume (in zweifacher Hinsicht) Besteht aus zwei Teilen: Strukturen Datentypen <!ELEMENT E-Mail E-Mail (#PCDATA)> <!ELEMENT Firma Firma (#PCDATA)> <!ELEMENT Name Name (#PCDATA)> <!ELEMENT Referent (Name, Firma, Firma, URL, URL, E-Mail)> <!ELEMENT Titel (#PCDATA)> <!ELEMENT URL URL (#PCDATA)> <!ELEMENT Veranstaltung (Name)> <!ATTLIST Veranstaltung datum datum CDATA #REQUIRED> <!ELEMENT Vortrag (Titel, Veranstaltung, Referent)> Dokument Typ Definition Validierung <?xml <?xml version='1.0' encoding='utf-8'?> <!--... --> <!--... --> <xs:schema targetnamespace="http://www.w3.org/2001/xmlschema" blockdefault="#all" <xs:schema targetnamespace="http://www.w3.org/2001/xmlschema" elementformdefault="qualified"version="1.0" xmlns:xs="http://www.w3.org/2001/xmlschema" xml:lang="en" xmlns:hfp="http://www.w3.org/2001/xmlschema-hasfacetandproperty"> <xs:annotation> <xs:annotation> <xs:documentation> Teil Teil 1 1 Version: Version: Id: Id: XMLSchema.xsd,v 1.48 1.48 2001/04/24 2001/04/24 18:56:39 18:56:39 ht ht Exp Exp Teil 2 Version: Id: datatypes.xsd,v 1.52 2001/04/27 11:49:21 ht Exp Teil 2 Version: Id: datatypes.xsd,v 1.52 2001/04/27 11:49:21 ht Exp </xs:documentation> </xs:annotation> <xs:annotation> <xs:documentation < source="http://www.w3.org/tr/2001/recxmlschema-1-20010502/structures.html"xmlschema-1-20010502/structures.html"> Das Schema, welches zu diesem Dokument korrespondiert ist normativ in Bezug Das Schema, welches zu diesem Dokument korrespondiert ist normativ in Bezug auf auf die die syntaktischen Einschränkungen die die in in der der XML XML Schema Schema Sprache ausgedrückt werden. Sprache ausgedrückt werden. Die Dokumentation (innerhalb der <documentation> Elemente) Die Dokumentation (innerhalb der <documentation> Elemente) unten unten ist ist nicht nicht normativ, normativ, nichtsdestotrotz werden werden dadurch dadurch jedoch jedoch wichtige wichtige Aspekte Aspekte der der W3C W3C Empfehlung, Empfehlung, von von der der dies dies ein ein entsprechender Teil ist, herausgestellt.</xs:documentation> Teil ist, herausgestellt.</xs:documentation> </xs:annotation> <xs:annotation> <xs:annotation> <xs:documentation> < Das Das Element Element simpletype simpletype und und alle alle seine seine Mitgliedselemente werden werden erst erst am Ende dieses Schema Dokuments definiert</xs:documentation> am Ende dieses Schema Dokuments definiert</xs:documentation> </xs:annotation> Schema für Schema <xs:import namespace="http://www.w3.org/xml/1998/namespace" schemalocation <xs:import namespace="http://www.w3.org/xml/1998/namespace" ="http://www.w3.org/2001/xml.xsd"> schemalocation="http://www.w3.org/2001/xml.xsd"> <xs:annotation> < xs:documentation> <xs:documentation> Einbindung der xml: Attributgruppen für xml:lang Einbindung der xml: Attributgruppen für xml:lang wie wie in'schema' 'schema' und und 'documentation' unten unten deklariert deklariert </xs:documentation> </xs:documentation> </xs:annotation> </xs:annotation> </xs:import> <!-- <!--...... --> --> XML-Schema <?xml version="1.0" encoding="utf-8"?> <Vortrag> <Vortrag> <Titel>Datenorientiertes XML mit mit XML-Schema</Titel> <Veranstaltung datum="2002-03-11"> <Name>Fachgruppentreffen der der GI-Fachgruppe Datenbanksysteme</Name> </Veranstaltung> <Referent> <Name>Mario Jeckle</Name> <Firma>DaimlerChrysler Research Research and and Technology</Firma> <URL>http://www.jeckle.de</URL> <E-Mail>mario.jeckle@daimlerchrysler.com</E-Mail> </Referent> </Referent> </Vortrag> </Vortrag>XML-Dokument Validierung Validierung Validierung M. Jeckle XML und die dritte Generation des Internet 2002-10-07 69

XML Schema: Typsystem anytype all complex types anysimpletype Urtyp duration datetime time date gyearmonth gyear gmonthday gday gmonth VordefinierterPrimitivtyp boolean base64binary hexbinary float double anyuri QName NOTATION Vordefinierter abgeleiteter Typ string decimal Komplexer Typ normalizestring integer Abgeleitet durch Einschränkung token nonpositiveinteger long nonnegativeinteger Abgeleitet durch Auflistung language Name NMTOKEN negativeinteger int unsignedlong positiveinteger Abgeleitet durch Einschränkung oder Auflistung NCName NMTOKENS short unsignedint ID IDREF ENTITY byte unsignedshort IDREFS ENTITIES unsignedbyte M. Jeckle XML und die dritte Generation des Internet 2002-10-07 71

XML Schema: Typsystem positiveinteger Abgeleitet Primitiv Vordefiniert Anwenderdefiniert int Atomar Liste Vereinigung namespacelist derivationset M. Jeckle XML und die dritte Generation des Internet 2002-10-07 72

XML Schema: Typsystem Typ Unicode-Zeichen(kette) IEEE754 {true,false,0,1} XML -Schema byte unsignedbyte short int long string float double boolean decimal Microsoft CLS - byte short int long string float double bool decimal Java byte - short int long String float double boolean BigDecimal SQL92/SQL3 tinyint smallint int, integer byte clob, char, character(n), varchar(n) float, real, double boolean numeric(p,s), dec, decimal(p,s) M. Jeckle XML und die dritte Generation des Internet 2002-10-07 73

XML Schema: Die XML-Sprachfamilie Web-Prähistorie 1. Generation 2. Generation HTML... XHTML v1.0 XML v1.0 XLink, XPointer XSL-FO und XSLT XML Metadata Interchange Namensräume... XSLT v2 XSD part 1 XSD part 2 XML 2 nd edition XML Query v1.1 XPath v2 Mod. XHTML using XSD... XML v2.0 1990 1995 2000 M. Jeckle XML und die dritte Generation des Internet 2002-10-07 74 t

XML Schema -- Anwendungen: Nullwerte < < xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" > > <xs:element <xs:element name="url" name="url" xsi:nillable="true"/> xsi:nillable="true"/> < < xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" > > <URL <URL xsi:nil="true"/> xsi:nil="true"/> XML-Instanzdokument <?xml version="1.0" encoding="utf-8"?> <Vortrag> <Titel>XML und die die dritte Generation des des Internet</Titel> <Veranstaltung datum="2002-10-07"> <Name>Net.ObjectDays 2002</Name> </Veranstaltung> <Referent> <Name>Mario Jeckle</Name> <Firma>DaimlerChrysler Research and Technology</Firma> <URL>http://www.jeckle.de</URL> <E-Mail>mario.jeckle@daimlerchrysler.com</E-Mail> </Referent> </Vortrag> NULL-Werte: Lukasiewicz-Logik für alle Skalartypen Analog: DBMS (SQL) und diverse Programmiersprachen M. Jeckle XML und die dritte Generation des Internet 2002-10-07 75

XML Schema -- Anwendungen: Bildung komplexer Typen <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:schema <xs:element <xs:element name="vortrag"> name="vortrag"> <xs:complextype> <xs:complextype> <xs:sequence> <xs:sequence> <xs:element <xs:element name="titel"/> name="titel"/> <xs:element <xs:element name="veranstaltung"> name="veranstaltung"> <xs:complextype> <xs:complextype> <xs:sequence> <xs:sequence> <xs:element <xs:element name="name"/> name="name"/> </xs:sequence> </xs:sequence> </xs:complextype> </xs:complextype> </xs:element> </xs:element> </xs:sequence> </xs:sequence> </xs:complextype> </xs:complextype> </xs:element> </xs:element> </xs:schema> </xs:schema> <?xml version="1.0" encoding="utf-8"?> <Vortrag> <Titel>XML und die die dritte Generation des des Internet</Titel> <Veranstaltung datum="2002-10-07"> <Name>Net.ObjectDays 2002</Name> </Veranstaltung> <Referent> <Name>Mario Jeckle</Name> <Firma>DaimlerChrysler Research and Technology</Firma> <URL>http://www.jeckle.de</URL> <E-Mail>mario.jeckle@daimlerchrysler.com</E-Mail> </Referent> </Vortrag> Vortrag Titel Veranstaltung Name M. Jeckle XML und die dritte Generation des Internet 2002-10-07 76

XML Schema -- Anwendungen: Bildung komplexer Typen <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:schema <xs:element <xs:element name="vortrag"> name="vortrag"> <xs:complextype> <xs:complextype> <xs:sequence> <xs:sequence> <xs:element <xs:element name="titel"/> name="titel"/> <xs:element <xs:element name="veranstaltung"> name="veranstaltung"> <xs:complextype> <xs:complextype> <xs:sequence> <xs:sequence> <xs:element <xs:element name="name"/> name="name"/> </xs:sequence> </xs:sequence> </xs:complextype> </xs:complextype> </xs:element> </xs:element> </xs:sequence> </xs:sequence> </xs:complextype> </xs:complextype> </xs:element> </xs:element> </xs:schema> </xs:schema> <?xml version="1.0" encoding="utf-8"?> <Vortrag> <Titel>XML und die die dritte Generation des des Internet</Titel> <Veranstaltung datum="2002-10-07"> <Name>Net.ObjectDays 2002</Name> </Veranstaltung> <Referent> <Name>Mario Jeckle</Name> <Firma>DaimlerChrysler Research and Technology</Firma> <URL>http://www.jeckle.de</URL> <E-Mail>mario.jeckle@daimlerchrysler.com</E-Mail> </Referent> </Vortrag> Strukturierte Typen: Explizieren Hierarchisierung Basis der Wiederverwendung Analogon: Javas anonyme innere Klassen M. Jeckle XML und die dritte Generation des Internet 2002-10-07 77

XML Schema -- Anwendungen: Bildung skalarer Typen Aggregation existierender Typen: <xs:simpletype name="warenkorbelemente"> <xs:list itemtype="xs:token"/> </xs:simpletype> Typkomposition: <xsd:simpletype name="termin"> <xsd:union membertypes="xs:date NamenDerWochentage"/> </xsd:simpletype> Von existierenden Typen abhängige Neudefinition Implizite Substituierbarkeit gemäß XML-Schema-Typsystem bleibt erhalten Analog: Aggregation und Vereinigung in bekannten Programmiersprachen M. Jeckle XML und die dritte Generation des Internet 2002-10-07 78

XML Schema -- Anwendungen: Bildung skalarer Typen Vollständige Enumeration: <xs:simpletype <xs:simpletypename= ampelfarben"> <xs:restriction <xs:restriction base="xs:string"> base="xs:string"> <xs:enumeration <xs:enumeration value="rot"/> value="rot"/>...... </xs:simpletype> </xs:simpletype> Domänenrestriktion: <xsd:simpletype <xsd:simpletypename="postleitzahl"> <xsd:restriction <xsd:restriction base="xs:string"> base="xs:string"> <xsd:length <xsd:length value="5"/> value="5"/> </xsd:restriction> </xsd:restriction> Reguläre Ausdrücke: <xs:simpletype <xs:simpletype name="mailaddresstype"> name="mailaddresstype"> <xs:restriction <xs:restriction base="xs:token"> base="xs:token"> <xs:pattern <xs:pattern value="([a-z]){1,}((. -){0,1}([a-z]){1,}){1,}@[a-z]{1,}"/> </xs:restriction> </xs:restriction> </xs:simpletype> </xs:simpletype> Beschränkung existierender Typen... hinsichtlich der zugelassenen Extensionen... hinsichtlich eines Merkmals Analog: Domänenbildung in DBMS Reguläre Ausdrücke (z.b. Perl) M. Jeckle XML und die dritte Generation des Internet 2002-10-07 79

XML Schema: Kritik am Ansatz XML-Schema Syntax teilweise unnötig kompliziert Dies kann ein Tribut an zukünftige Mächtigkeit sein Heute: Allenfalls eingeschränkte Benutzbarkeit ohne Werkzeuge XML-Schema erweitert die DTD-Mächtigkeit teilweise nur (zu) behutsam Strukturell stellt XML-Schema eine partielle Rekonstruktion der basalen DTD-Mächtigkeit dar. Teilweise werden Anwendungsmöglichkeiten der DTD and Satellitenstandards delegiert (z.b. XML Include). XML-Schema ist...... inzwischen weit verbreitet aber teilweise werden dennoch Alternativansätze (z. B. RELAX NG (ISO)) weiter vorangetrieben.... nur der erste Schritt, weitere werden folgen. M. Jeckle XML und die dritte Generation des Internet 2002-10-07 80

XML Schema: Zukünftige Entwicklung M. Jeckle XML und die dritte Generation des Internet 2002-10-07 81

Zukünftige Entwicklung XML-Schema Version 1.1: Fortschreibung des Primer-Dokuments und Synchronisation mit neuen Sprachmitteln aus Part 1 und Part 2 Erhöhung der Lesbarkeit der normativen Dokumente (Part 1 und Part 2) Behebung der bekannten Fehler (Errata-Dokument) Behutsame Erweiterungen Insgesamt: Bereinigter Interimsstand XML-Schema Version 2.0: Klare Trennung zwischen Informationsmodell und Validierungsanteilen M. Jeckle XML und die dritte Generation des Internet 2002-10-07 82

Zukünftige Entwicklung: XML-Schema v1.1 Datentypen: Schreibungssensitivität birgt Probleme im Zusammenspiel mit Programmiersprachen. Strukturen: Transitive Auswertung freier Inhaltsmodelle (sog. wildcard transitive bug). Konsistenzgarantierende Einschränkungen auf Attributebene. Verkettete referenzierende Einschränkungen. Internationalisierungsaspekte. Überarbeitung der einschränkenden Ableitung. Mehrfachvererbung. Modularisierung und Untermengenbildung. M. Jeckle XML und die dritte Generation des Internet 2002-10-07 83

Zukünftige Entwicklung: XML-Schema v2.0 Verkettete referenzierende Einschränkungen. Mehrfachvererbung. Interaktion verschiedener Einschränkungen bei Substitution. Reguläre Ausdrücke zur Element- und Attributbenennung. Mächtig(er)e konsistenzgarantiertende Einschränkungen. Inhaltsbasierte Einschränkungen (sog. Co-Constraints).... M. Jeckle XML und die dritte Generation des Internet 2002-10-07 84

XML und die dritte Generation des Internet Die nächste Hypertextgeneration XHTML als eine XML Sprache XHTML v2.0 Das sichtbare Web wird zum semantischen M. Jeckle XML und die dritte Generation des Internet 2002-10-07 85

Die nächste Hypertextgeneration 1989 1995 1996 1989: HTML, HTTP und die erste Browserimplementierung 1995: HTML 2.0 (RFC 1866) HTML 3.0 (Internet Draft) 1996: HTML Tabellen (RFC 1942) 1997: HTML 3.2 (W3C Recommendation) 1998: HTML 4.0 (W3C Recommendation) 1999: HTML 4.0.1 (W3C Recommendation) 2001: XHTML 1.0 (W3C Recommendation) 2001: XHTML 1.1 (W3C Recommendation) 2002: XHTML 2.0 (W3C Working Draft) XHTML in XML Schema (W3C Note) 1997 1998 M. Jeckle XML und die dritte Generation des Internet 2002-10-07 86 1999 2002

Die nächste Hypertextgeneration Was bisher geschah... HTML als XML Sprache Extensible Markup Language (XML) Anwendung 1989 2000 Untermenge HyperText Markup Language (HTML) Anwendung extensible HyperText Markup Language (XHTML) Standard Generalized Markup Language (SGML) M. Jeckle XML und die dritte Generation des Internet 2002-10-07 87

Die nächste Hypertextgeneration Was bisher geschah... HTML als XML Sprache Keine überlappenden Elemente <p>here is an emphasized <em>paragraph</em>.</p> <p>here is an emphasized <em>paragraph.</p></em> Korrekte Terminierung <p>here is a paragraph.</p> <p>here is another paragraph.</p> <p>here is a paragraph. <p>here is another paragraph. M. Jeckle XML und die dritte Generation des Internet 2002-10-07 88

Die nächste Hypertextgeneration Was bisher geschah... HTML als XML Sprache Attributdarstellung table rows="3" table rows=3 Attributminimierung <dl compact="compact"> <dl compact> Leere Elemente <br/><hr/> <br><hr> M. Jeckle XML und die dritte Generation des Internet 2002-10-07 89

Die nächste Hypertextgeneration HTML ist seit XHTML (v1.1) kein monolithischer Block mehr XHTML v1.1 Module-based XHTML dekomponiert XHTML in eigenständige Kernmodule XHTML ist nicht genau eine Spezifikation sondern eine Familie von eigenständigen Spezifikationen Modularization of XHTML in XML Schema löst DTDs ab und fundiert XHTML in XML Schema Ruby fügt Annotationsmechanismus hinzu Durch XML und Namensräume erfolgt die Einbettung in die XML Sprachwelt M. Jeckle XML und die dritte Generation des Internet 2002-10-07 90

Die nächste Hypertextgeneration XHTML v1.1 Vier Kernmodule Structure Definiert die zentralen strukturellen Elemente von XHTML, die als Inhalt in den meisten Dokumenten der XHTML-Familie auftreten. html, head, body, title Text Definiert alle grundlegenden Containerelemente sowie deren Attribute und Inhaltsmodelle. abbr, acronym, address, blockquote, br, cite, code, dfn, div, em, h1- h6, kbd, p, pre, q, samp, span, strong, var M. Jeckle XML und die dritte Generation des Internet 2002-10-07 91

Die nächste Hypertextgeneration XHTML v1.1 Vier Kernmodule Hypertext Definiert das (eine!) Element welches zur Verlinkung in XHTMLbasierten Hypertexten verwendet wird. a List Definiert alle Listen-orientierten Elemente und deren Attribute. dl, dt, dd, ol, ul, li Jede XHTML implementierende Applikation muß mindestens die vier Kernmodule umsetzen Anwendungsfall: XHTML innerhalb der Sprachen SVG, SMIL, NewsML, etc. M. Jeckle XML und die dritte Generation des Internet 2002-10-07 92

Die nächste Hypertextgeneration XHTML v1.1 Beispiel der Verwendung von XHTML in SVG: <svg <svgwidth="4in" height="3in" height="3in" xmlns xmlns = = 'http://www.w3.org/2000/svg'> <desc>...</desc> <switch> <switch> <foreignobject width="100" width="100" height="50" height="50" requiredextensions="http://example.com/svgextensions/embeddedxhtml"> <html <html xmlns="http://www.w3.org/1999/xhtml"> <body> <body> <p>here <p>here is is a a paragraph paragraph that that requires requires word word wrap</p> wrap</p> </body> </body> </html> </html> </foreignobject> <text <text font-size="10" font-family="verdana"> <tspan <tspanx="10" y="10">hier y="10">hier wieder wieder normaler normaler Text</tspan> Text</tspan> </text> </text> </switch> </switch> </svg> </svg> M. Jeckle XML und die dritte Generation des Internet 2002-10-07 93

Die nächste Hypertextgeneration XHTML v2 Derzeit nur als Working Draft veröffentlicht Nicht abwärtskompatible Weiterentwicklung der XHTML-Familie Modular Nutzt Ruby Annotationen XML Events XForms Nutzt XLinks nicht! Einige neue Elemente... M. Jeckle XML und die dritte Generation des Internet 2002-10-07 94

Die nächste Hypertextgeneration XHTML v2 Nicht abwärtskompatible Weiterentwicklung der XHTML-Familie Explizite Zeilenumbrüche werden nicht mehr unterstützt Konkret: br-element ist als deprecated gekennzeichnet und soll zukünftig durch das neu eingeführte Element line ersetzt werden <p> <p> Habe Habe nun, nun, ach! ach! Philosophie,<br/> Juristerei und und Medizin,<br/> Und Und leider auch auch Theologie!<br/> </p> </p> <p> <p> <line>habe nun, nun, ach! ach! Philosophie,</line> <line>juristerei und und Medizin,</line> <line>und leider auch auch Theologie!</line> </p> </p> M. Jeckle XML und die dritte Generation des Internet 2002-10-07 95

Die nächste Hypertextgeneration XHTML v2 Nicht abwärtskompatible Weiterentwicklung der XHTML-Familie Graphikeinbindung per img-element werden nicht mehr unterstützt Konkret: img-element wurde aus der Spezifikation entfernt, soll zukünftig stattdessen das Element object Verwendung finden <img <img src= http://www.jeckle.de/images/logo.gif alt= ein Logo /> <object data= http://www.jeckle.de/images/logo.gif type= image/gif standby= ein Logo /> M. Jeckle XML und die dritte Generation des Internet 2002-10-07 96

Die nächste Hypertextgeneration XHTML v2 Nicht abwärtskompatible Weiterentwicklung der XHTML-Familie Gliederungselemente h1-h6 verlieren an Bedeutung und werden durch section und ein allgemeines h ergänzt <h2>der <h2>der Tragödie Tragödie erster erster Teil</h2> Teil</h2> <h3>nacht</h3> <h3>nacht</h3> <h3>vor <h3>vor dem dem Tor</h3> Tor</h3>...... <h2>der <h2>der Tragödie Tragödie zweiter zweiter Teil</h2> Teil</h2> <h3>anmutige <h3>anmutige Gegend</h3> Gegend</h3> <h3>hochgewölbtes <h3>hochgewölbtes enges enges gotisches gotisches Zimmer</h3> Zimmer</h3>...... <section> <section> <h>der <h>der Tragödie Tragödie erster erster Teil</h> Teil</h> <section> <section> <h>nacht</h> <h>nacht</h> </section> </section> <section> <section> <h>vor <h>vor dem dem Tor</h> Tor</h> </section> </section> </section> </section>...... M. Jeckle XML und die dritte Generation des Internet 2002-10-07 97

Die nächste Hypertextgeneration XHTML v2 Nutzt XLinks nicht! (Namensraumloses) href-attribut wird dem neuen Attributmodul Hypertext Attribute Collection hinzugefügt, die als Bestandteil der Common Attribute Collection nahezu für jedes XHTML-Element verfügbar ist. ==> Hyperlinks sind auf nahezu allen XHTML-Elementen definierbar <p <p href= http://spiegel.gutenberg.de/faust > <line>habe <line>habe nun, nun, ach! ach! <span <spanhref= http://www.philosophie.de >Philosophie</span>,</line> <line><acronym <line><acronym title= Juristerei title= Juristerei xml:lang= de-au xml:lang= de-au href= http://www.austria.at >Jus</acronym> <abbr <abbrtitle= und href= http://www... >u.</abbr> href= http://www... >u.</abbr> Medizin,</line> Medizin,</line> <line <line href= http://www.was-hat-goethe-gegen-theologie.de >Und leider leider auch auch Theologie!</line> Theologie!</line> </p> </p> M. Jeckle XML und die dritte Generation des Internet 2002-10-07 98

Die nächste Hypertextgeneration XHTML v2 Nutzt XLinks nicht! (Namensraumloses) href-attribut wird dem neuen Attributmodul Hypertext Attribute Collection hinzugefügt, die als Bestandteil der Common Attribute Collection nahezu für jedes XHTML-Element verfügbar ist. ==> Hyperlinks sind auf nahezu allen XHTML-Elementen definierbar Diese allgemeine Verweismöglichkeit ist durchaus wünschenswert Warum wird hierfür jedoch nicht der exisiterende W3C-Standard der XLinks genutzt und die Gelegenheit versäumt XHTML besser in die XML-Sprachfamilie zu integrieren?! M. Jeckle XML und die dritte Generation des Internet 2002-10-07 99

Die nächste Hypertextgeneration Das sichtbare Web wird zum semantischen Heute vorherrschend: Mensch-Mensch-Kommunikation auf (X)HTML-Basis Kennzeichen: Vergleichsweise leichte Erstellung Leichte Konsumption Viele Anbieter Noch mehr Konsumenten M. Jeckle XML und die dritte Generation des Internet 2002-10-07 100

Die nächste Hypertextgeneration Das sichtbare Web wird zum semantischen Zukunft: Maschine-Maschine-Kommunikation auf XML-Basis Kennzeichen: Vergleichsweise komplexere Erstellung Konsumption durch präsentationserzeugenden Interpreter Weniger Anbieter, die mehr Inhalte anbieten Viele maschinelle Konsumenten, die Inhalte präsentieren M. Jeckle XML und die dritte Generation des Internet 2002-10-07 101

XML und die dritte Generation des Internet XML in der Softwareentwicklung Design Time (UML, XMI, SVG) Build Time (Code Generierung, Dokumentation) Run Time (XML-Schnittstellen und APIs) M. Jeckle XML und die dritte Generation des Internet 2002-10-07 102

XML in der Softwareentwicklung I. Design Time Einsatz von XML im Bereich der Analyse und des Designs objektorientierter Anwendungen II. Build Time Einsatz der XML im Bereich der Realisierung objektorientierter Anwendungen III. Run Time Einsatz der XML im Bereich der Ausführung objektorientierter Anwendungen M. Jeckle XML und die dritte Generation des Internet 2002-10-07 103

XML in der Softwareentwicklung Design Time Build Time Code Generierung Dokumentation (Web-Publishing) Run Time XML-Schnittstellen und APIs DOM SAX XML Data Binding (JSR-31, Castor, JAXB) UML/XMI SVG (UML2 Diagram Interchange) XML Schema M. Jeckle XML und die dritte Generation des Internet 2002-10-07 104

XML in der Softwareentwicklung Unified Modeling Language (UML) in 10 Punkten Graphische Notation Vereinigt einige Vorgängeransätze (u.a. OMT, OOSE, Use Cases,...) Standard der Object Management Group (OMG) Abbildung eines (technischen) Systems und seiner Umwelt Bietet verschiedene Sichten auf das System (u.a. statisch, dynamisch,...) Durch den Anwender erweiterbare Notation (Profiles) Konsistenzgarantierende Einschränkungen können mit formaler Sprache (Object Constraint Language (OCL)) beschreiben werden Definiert keinen Entwicklungsprozeß Definiert ein eigenes Metamodell und ist basierend auf diesem in die Model Driven Architecture der OMG eingebettet... inzwischen weit verbreitet M. Jeckle XML und die dritte Generation des Internet 2002-10-07 105

XML in der Softwareentwicklung XML Metadata Interchange (XMI) in 10 Punkten Format zur Darstellung von UML- und MOF-Modellen (Damit eine Möglichkeit UML in XML zu speichern!) XML-basiert (Version 1.x: DTD, Version 2: W3Cs XML Schema) Prozeß zur Erzeugung neuer XMI-Vokabulare aus MOF-basierten Metamodellen Standard der Object Management Group (OMG) Bestandteil der Model Driven Architecture Modellaustausch zwischen CASE-Werkzeugen Möglichkeit zur Online-Kopplung heterogener Werkzeuge Langzeitspeicherung von Modellen Weiterverarbeitung der XML-basierten Darstellung... inzwischen durch fast jedes UML-Werkzeug angeboten M. Jeckle XML und die dritte Generation des Internet 2002-10-07 106

XML in der Softwareentwicklung -- Design Time UML-Modellaustausch mit XMI <?xml version = '1.0' encoding = 'ISO-8859-1'?> <!-- <?xml <!DOCTYPE version XMI = '1.0' SYSTEM encoding 'UML13.dtd' = 'ISO-8859-1' > -->?> <XMI <!-- <!DOCTYPE xmi.version XMI = '1.0' SYSTEM timestamp 'UML13.dtd' = 'Fri Oct > 05 --> 22:47:10 2001' > <XMI.header> xmi.version = '1.0' timestamp = 'Fri Oct 05 22:47:10 2001' > <XMI.documentation> <XMI.header> <XMI.exporter>Unisys.JCR.1</XMI.exporter> <XMI.documentation> <XMI.exporterVersion>1.3.2</XMI.exporterVersion> <XMI.exporter>Unisys.JCR.1</XMI.exporter> </XMI.documentation> <XMI.exporterVersion>1.3.2</XMI.exporterVersion> <XMI.metamodel </XMI.documentation> xmi.name = 'UML' xmi.version = '1.3'/> </XMI.header> <XMI.metamodel xmi.name = 'UML' xmi.version = '1.3'/> <XMI.content> </XMI.header> <!-- <XMI.content> ==================== example [Model] ==================== --> <Model_Management.Model <!-- ==================== xmi.id example = 'G.0'[Model] > ==================== --> <Foundation.Core.ModelElement.name>example</Foundation.Core.ModelElement.name> <Model_Management.Model xmi.id = 'G.0' > <Foundation.Core.ModelElement.visibility <Foundation.Core.ModelElement.name>example</Foundation.Core.ModelElement.name> xmi.value = "public"/> <Foundation.Core.ModelElement.isSpecification <Foundation.Core.ModelElement.visibility xmi.value xmi.value = "public"/> = "false"/> <Foundation.Core.GeneralizableElement.isRoot <Foundation.Core.ModelElement.isSpecification xmi.value xmi.value = "false"/> = "false"/> <Foundation.Core.GeneralizableElement.isLeaf <Foundation.Core.GeneralizableElement.isRoot xmi.value xmi.value = "false"/> = "false"/>,,, <Foundation.Core.GeneralizableElement.isLeaf xmi.value = "false"/>,,, <?xml version = '1.0' encoding = 'ISO-8859-1'?> <!DOCTYPE <?xml version XMI = SYSTEM '1.0' encoding 'UMLX13.dtd' = 'ISO-8859-1' >?> <XMI <!DOCTYPE xmi.version XMI = SYSTEM '1.0'> 'UMLX13.dtd' > <XMI.header> xmi.version = '1.0'> <XMI.documentation> <XMI.header> <XMI.exporter>Together</XMI.exporter> <XMI.documentation> <XMI.exporterVersion>5.0</XMI.exporterVersion> <XMI.exporter>Together</XMI.exporter> </XMI.documentation> <XMI.exporterVersion>5.0</XMI.exporterVersion> <XMI.metamodel </XMI.documentation> xmi.name = 'UML' xmi.version = '1.3'/> </XMI.header> <XMI.metamodel xmi.name = 'UML' xmi.version = '1.3'/> <XMI.content> </XMI.header> <Model_Management.Model <XMI.content> xmi.id = 'txmiid1' > <Foundation.Core.ModelElement.name>example</Foundation.Core.ModelElement.name> <Model_Management.Model xmi.id = 'txmiid1' > <Foundation.Core.ModelElement.visibility <Foundation.Core.ModelElement.name>example</Foundation.Core.ModelElement.name> xmi.value = 'private'/> <Foundation.Core.ModelElement.isSpecification <Foundation.Core.ModelElement.visibility xmi.value xmi.value = 'private'/> = "false"/> <Foundation.Core.GeneralizableElement.isRoot <Foundation.Core.ModelElement.isSpecification xmi.value xmi.value = 'false'/> = "false"/> <Foundation.Core.GeneralizableElement.isLeaf <Foundation.Core.GeneralizableElement.isRoot xmi.value xmi.value = 'false'/> = 'false'/> <Foundation.Core.GeneralizableElement.isAbstract <Foundation.Core.GeneralizableElement.isLeaf xmi.value xmi.value = 'false'/> = 'false'/> <Foundation.Core.Namespace.ownedElement> <Foundation.Core.GeneralizableElement.isAbstract xmi.value = 'false'/> <Foundation.Core.Namespace.ownedElement> M. Jeckle XML und die dritte Generation des Internet 2002-10-07 107