Gliederung. Service Oriented Architecture - XML Technologies. 1 von 11



Ähnliche Dokumente
Einführung in XML. Seminarunterlage. Version 3.05 vom

XML 1. Einführung, oxygen. Ulrike Henny. IDE Summer School 2013, Chemnitz

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester Fachbereich MNI Technische Hochschule Mittelhessen

XML Schema vs. Relax NG

Datenaustauschformate. Datenaustauschformate - FLV

XSL Templates. Mit Templates arbeiten. XSL Templates

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester Fachbereich MNI Technische Hochschule Mittelhessen

XML-Schema Datentypen

IT-Zertifikat: Daten- und Metadatenstandards

DTD: Syntax-Zusammenfassung

FileMaker Konferenz 2010 XML / XSLT. Ein Workshop mit [x] cross solution Armin Egginger

Namespaces. Namensräume...

XML DTD und Schema von Thomas Mangold

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

... MathML XHTML RDF

Deklaration standalone="yes" Quelle:

Index. Index CDATA 113, 183. Achse 430. child 425. all 191. choice 187, 191, 197, 393. ancestor 428. choose 272. Anwendung 351; Beispiel 302

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

XML Grundlagen Teil I

2. Einführung in Datenbanken und XML

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

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

XML exemplarisch. nach: André Bergholz, Extending Your Markup: An XML Tutorial IEEE Internet Computing, Jul./Aug. 2000, 74 79

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

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

Document Type Definition (DTD)

XML-Technologien. Tutorium im Sommersemester Mai 2014

Web-Programmierung (WPR)

Seminar: XML und intelligente Systeme

XML Schema Kurzreferenz

Projektseminar Texttechnologische Informationsmodellierung

Zusammenfassung XML. Metasprache um Dokumenttypen zu definieren

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

XML und SOAP Einführung und Grundlagen

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Klaus Schild, XML Clearinghouse Transformation von XML-Dokumenten

5. Programmierschnittstellen für XML

CARL HANSER VERLAG. Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis

Ruhr.pm XML-Daten verarbeiten mit XML::LibXML Autor: Datum:

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

Präsentation zum Thema XML Datenaustausch und Integration

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

5. Programmierschnittstellen für XML

XML-Verarbeitung. XPath XSL die extensible Stylesheet Language. Torsten Schaßan SCRIPTO Modul 4: EDV Wolfenbüttel

Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis HANSER

Strukturierung von Inhalten

Erhöhung der Datenqualität in XML-Dokumenten von Desktop Applikationen. Alexander Hilliger von Thile - REI/ID

Mario Jeckle. XML Schema

Interaktive Medien Richtlinien für das Codieren Version vom 18. Juni 2014

Ferhat Ayaz. XML mit C++

Daten- und Metadatenstandards Wintersemester 2011 / November 2011 XML II: DTD

Institut für Dokumentologie und Editorik. XML-Datenbanken und XQuery

Multimedia Technologie II

XSLT für SAP NetWeaver Process Integration. Transformationssprache für XML Dokumente

DTDs und XML-Schema. Robert Tolksdorf Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme

Das Einsteigerseminar

Tutorial zu Kapitel WT:III

Document Type Definitions (DTDs)

XML-Übersicht. Von HTML zu XML

XML-Übersicht. Von HTML zu XML. Nutzen von XML. Geschichte von XML. Eigenschaften von XML. Nutzen von XML (extensible Markup Language)

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

X-Technologien. XML and Friends. Jörn Clausen 9. Juli 2001

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

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

XML Path Language (XPath)

1 Einleitung Extensible Markup Language (XML) Konzept Beispieldokument Dokumentstrukturen

Java und XML 2. Java und XML

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

Gruppe A Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis

Hauptseminar Informatik. Die Strukturierung von XML-Dokumenten mit Hilfe von DTDs und XML Schema

Musterlösung des Übungsblattes 1

Errata-Liste zum Kurs: Einführung in XML (2. Auflage)

Programmiersprachen und Übersetzer

XML Werkzeug XML Spy. Frank Heininger Axel Labuschke

1 Software Engineering 1

Klaus Schild, XML Clearinghouse Namensräume

Vorkurs C++ Programmierung

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname


Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Übungsaufgaben zu XML:

Predictive Modeling Markup Language. Thomas Morandell

DTDs und XML- Schemata

Einführung in XML Extensible Markup Language

XML-basierte Standards für den Datenaustausch in der Logistikkette

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

WEBSEITEN ENTWICKELN MIT ASP.NET

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Klausur zur Vorlesung Einführung in XML

Übungen Programmieren 1 Felix Rohrer. Übungen

IN A NUTSHELL. Elliotte Rusty Harold & W, Scott Means. Deutsche Übersetzung von Kathrin Lichtenberg & Jochen Wiedmann O'REILLY*

Containerformat Spezifikation

Snippets - das Erstellen von "Code- Fragmenten" - 1

XSL Transformation. Eine praxisorientierte Einführung Philip Heck

1. Einführung 2. DTD 3. XML Schema 4. XPath 5. XSLT 6. XSL-FO 7. XQuery 8. Web Services 9. XML und Datenbanken

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Implementierung der XPath-Anfragesprache für XML-Daten in RDBMS unter Ausnutzung des Nummerierungsschemas DLN

Transkript:

1 von 11 Gliederung Extensible Markup Language (XML) Wofür steht XML? Wie sieht XML aus? Dokumentgliederung Elemente Attribute Entity-Referenzen Vordefinierte Entities Verarbeitungsanweisungen (processing instructions) Kommentare DocumentType Definitions (DTD) Syntax Operatoren einfache Elemente komplexe Elemente Attribute Vorgabewerte Attributypen ENTITY XML-Schema Definition Language (XSD) Kennzeichen von Schema Schema-Deklaration Elementdeklaration vordefinierte Elemente (Auswahl) simpletype Datentypen (Auswahl) complextype Extensible-Stylesheet Language Transformation Syntax XSL-Elemente (Auswahl) XMLQuery Language (XQuery) Anforderungen an W3C XML-Query Group Ausdrucksformen in XQuery FLWOR-Beispiel XML-Path Language (XPath) Achse Abkürzende Schreibweisen: Knoten-Tests Prädikate Beispiele

2 von 11 Extensible Markup Language (XML) Wofür steht XML? XML = extensible Markup Language (erweiterbare Auszeichnungssprache) plattformunabhängiger Austausch von Daten selbsterklärende Daten Wie sieht XML aus? <?xml version="1.0"?> <!--Kommentar und Verarbeitungsanweisungen sind hier erlaubt--> <!DOCTYPE books SYSTEM "http://myserver.com/books.dtd"> <!-- weitere Kommentare und Verarbeitungsanweisungen erlaubt --> <books> <book category="reference"> <author>nigel Rees</author> <title>sayings of the Century</title> <price>8.95</price> </book> <book category="fiction"> <author>evelyn Waugh</author> <title>sword of Honour</title> <price>12.99</price> </book> </books> <!--Kommentare und Verarbeitungsanweisungen sind hier erlaubt --> Dokumentgliederung Prolog Rumpf Epilog Elemente Markup-Zeichen (&, <) im Text verboten Namen müssen mit Buchstaben, Unterstrich oder Doppelpunkt anfangen. Zeichenfolge "xml" (in beliebiger Reihenfolge oder Groß-/Kleinschreibung) verboten Nutzung des Doppelpunktes vom W3C nicht empfohlen (Trennung zwischen Namensraum und lokalem Namen) Attribute Name-Wert-Paare pro Element ein Attribut nur einmal erlaubt Spezialattribute xml:lang xml:space Entity-Referenzen Einbinden von Textbausteinen an beliebigen Stellen Syntax: "&" + Entity-Name + ";" Definition von Entities im Abschnitt über DTDs Vordefinierte Entities Entity Zeichen & & &apos; ' > > < <

3 von 11 " " Verarbeitungsanweisungen (processing instructions) einzige Festlegung des W3C: syntaktischer Aufbau "<?" Anweisung "?>" Verhalten von Parsern nicht vorgeschrieben Kommentare syntaktischer Aufbau: "<!--" viel wichtiger Kommentar "-->" Kommentartext nicht geparst -> kein Escaping nötig nicht erlaubt: Kommentare innerhalb eines Tags zwei Bindestriche innerhalb eines Kommentars

4 von 11 DocumentType Definition (DTD) Syntax Vereinheitlichung und Verdeutlichung von Dokumentstrukturen Überprüfung der syntaktischen Gültigkeit Reduzierung des Validierungsaufwands in der Zielanwendung implizite Dokumentation Problemstellung für spez. Dokument festgelegt eigene Syntax (nicht in XML-Notation) Schwächen bei komplexen Zusammenhängen gut geeignet, um einfache Dokumentstrukturen festzulegen Operatoren Operator Bedeutung, Sequenz Auswahl? Optionalität eines Elements * Beliebig häufiges Auftreten + Mindestens ein Vorkommen einfache Elemente <!ELEMENT foo EMPTY> <!ELEMENT foo ANY> <!ELEMENT foo #PCDATA> komplexe Elemente <!ELEMENT foo (bar)*> <!ELEMENT foo (A, (B C)+, D?)> <!ELEMENT foo (A*, B?, (C+ (D, E)) F)> Attribute <!ATTLIST foo bar CDATA "value" ent ENTITY #IMPLIED> <!ATTLIST foo (value1 value2 value3) #REQUIRED> Vorgabewerte #IMPLIED #REQUIRED #FIXED #FIXED + Vorgabewert Vorgabewert Attributypen ID IDREF IDREFS CDATA ENTITY ENTITIES NMTOKEN NMTOKENS NOTATION Wert aus einer Aufzählung

5 von 11 ENTITY Platzhalter für sich wiederholende Inhalte General-Entities und Parameter-Entities keine Leerzeichen (Whitespace) innerhalb einer Entityreferenz keine Zirkelbezüge zwischen Entities erlaubt

6 von 11 XML-Schema Definition Language (XSD) Kennzeichen von Schema erweiterte Funktionalität im Vergleich mit DTD vollständig getypt eigene Datentypen durch Vererbung (Daten-)Integrität von Dokument wird sichergestellt Schema-Deklaration <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> Elementdeklaration <xsd:element name="foo" type="xsd:string"> vordefinierte Elemente (Auswahl) Elementname all any attribute choice complexcontent complextype* element enumeration extension list maxinclusive maxlength mininclusive minlength pattern restriction schema simplecontent* simpletype Beschreibung alle Kindelemente genau einmal oder keinmal in beliebiger Reihenfolge beliebiger wohlgeformter Inhalt Deklaration eines Attributs Auswahl unter den Kindelementen. Es darf genau eins davon pro Knoten auftreten kein reiner Text als Kind erlaubt leitet einen complextype-deklaration ein leitet eine Element-Deklaration ein Aufzählungselement für Vorgabewerte Erweiterung eines Basistyps (Kind: restriction) Kind von simpletype: Liste von Elementen Kind von restriction: maximal zulässiger Wert am Element / Attribut Kind von restriction: maximale Länge einer Liste Kind von restriction: minmal zulässiger Wert am Element / Attribut Kind von restriction: minimale Länge einer Liste Kind von restriction: regulärer Ausdruck für erlaubte Element-/Attributwerte Kind von simpletype: Beschränkung eines Basistyps auf zulässige Werte Einleitung des Schemas; Festlegung von Namensräumen nur simplecontent erlaubt (keine Attribute oder Elemente) Einleitung einer simpletype-deklaration simpletype beinhalten alle eingebauten Datentypen Grundlage für abgeleitete einfache Datentypen <xsd:simpletype name="myinteger"> <xsd:restriction base="xsd:integer"> <xsd:mininclusive value="10000"/> <xsd:maxinclusive value="99999"/> </xsd:restriction> </xsd:simpletype> <xsd:simpletype name="xsd:sku"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{3}-[a-z]{2}"/> </xsd:restriction> </xsd:simpletype> <xsd:simpletype name="listofmyinttype"> <xsd:list itemtype="myinteger"/>

7 von 11 </xsd:simpletype> Datentypen (Auswahl) Datentyp Wertebereich / Beispiel string, normalizedstring, token Confirm this is electric integer..., -1, 0, 1,... positiveinteger 1, 2,... nonnegativeinteger 0, 1, 2,... unsignedlong 0, 1,..., 18446744073709551615 byte -128,..., 0,..., 127 boolean true, false, 1, 0 datetime 2005-11-16T19:30:00.000+2:00 complextype zusammengesetzter Datentyp aus: Elementen Attributen Referenzen <xsd:complextype name="usaddress"> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="street" type="xsd:string"/> <xsd:element name="city" type="xsd:string"/> <xsd:element name="state" type="xsd:string"/> <xsd:element name="zip" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="country" type="xsd:nmtoken" fixed="us"/> </xsd:complextype>

8 von 11 Extensible Stylesheet Language: Transformation (XSLT) Syntax Umwandlung eines Ausgangsdokuments in ein Zieldokument unter Verwendung eines XML-Stylesheets Struktur des Eingangsdokuments wird bearbeitet (nicht die Daten) Arbeit wird durch XSL-Prozessor erbracht Daten werden Prozessor mittels API bereitgestellt bekannte APIs: Document Object Model (DOM) Simple API for XML (SAX) Selektion der Knoten mittels XPath identisch zu XML spezieller Namensraum für XSL-Elemente: xmlns:xsl="http://www.w3.org/1999/xsl/transform" Anweisungen (Templates) zwischen <stylesheet>-tags Auftrittsformen: in XML-Dokument eingebettet als separate Datei XSL-Elemente (Auswahl) Element apply-templates attribute call-template choose copy copy-of element for-each if import include otherwise output param sort stylesheet template value-of variable when with-param Beschreibung Prozessor sucht nach passenden Templates Attribut zu Element spezielles Template nach seinem Namen aufrufen Einleitung einer Verarbeitungsauswahl (Kinder: when, otherwise) aktuellen Knoten in die Ausgabe kopieren einen Knoten (mit Kindern) in die Ausgabe kopieren beliebiges Element in der Ausgabe erzeugen Iteration über best. Elemente bedingte Verarbeitung (kein else) Einbinden eines externen Stylesheets (veränderter Baum) Einbinden eines externen Stylesheets (reine Ersetzung) default-fall bei choose Festlegen des Ausgabeformats (XML, HTML, Text) Parameter bei Templates oder Stylesheet Sortierung einer Iteration (for-each) oder apply-templates Einleitung des Stylesheets und Festlegung der Namensräume Quasi Funktion in XSL. Sammlung von Verarbeitungsanweisungen für best. Elemente Ausgabe eines Attribut- oder Elementtextes eine Variable Option im choose (entspricht if, mehrere "when" möglich) Parameterübergabe

9 von 11 XML-Query Language (XQuery) XQuery noch keine W3C-Empfehlung XQuery ist keine XML-Sprache. XQueryX eine in XML-Syntax verfasste XQuery-Sprache Verarbeitungsmöglichkeit für verschiedenste Dokumentarten: Dokumente für menschliche Leser (Indizierung, Suche) datenorientierte Dokumente Dokumente mit gemischtem Inhalt (Text + eingebette Daten) basiert auf XPath und XML-Schema-Datentypen liest / liefert ein Dokument-Fragment oder atomaren Wert Anforderungen an W3C XML-Query Group Syntaxanforderungen: MUSS leicht von Menschen lesbar sein KANN mehr als eine Syntax haben eine Abfragesprache MUSS in XML-Syntax verfasst werden Protokollunabhängigkeit MUSS gewahrt bleiben definierte Fehlerzustände MÜSSEN erzeugt werden können Aktualisierbarkeit MUSS gewahrt bleiben Ausdrucksformen in XQuery Pfad-Ausdrücke FLWOR ("flower") Ausdrücke (For - Let - Where - Order - Return) Listenausdrücke bedingte Ausdrücke quantifizierte Ausdrücke Datentyp-Asudrücke FLWOR-Beispiel <beispiel> <bsp1> { for $d in doc("vortrag.xml")/präsentation/inhalt//kapitel where count($d/absatz) >= 5 order by $d/@nummer descending return <kapitel überschrift="{$d/@titel}"> { for $absatz in $d//absatz where $absatz/überschrift!= '' return <thema>{$absatz/überschrift/text()}</thema> } </kapitel> } </bsp1> <bsp2> { for $i in (1 to 5) return <wert i="{$i}"/> } </bsp2> </beispiel>

10 von 11 XML-Path Language (XPath) Achse gezielte Navigation durch XML-Dokument Selektion von Knoten Verwendung von location steps ausgehend von Kontext-Knoten Zusammensetzung eines Knotens aus: Achse Knotentest Prädikat(e) unterteilt Dokument bezüglich Kontext-Knoten Start-Umgebung für Knotentest Achse Child Descendant Parent Ancestor Following-sibling Preceding-sibling Following Preceding Attribute Namespace Self Descendant-or-self Preceding-or-self Beschreibung alle Kindelemente alle Nachfahren Elternelement alle Vorfahren alle folgenden Geschwister alle vorangegangenen Geschwister alle nachfolgenden Knoten (keine Nachfahren, Attribute, Namensräume) alle vorangegangenen Knoten (keine Nachfahren, Attribute, Namensräume) alle Attribute alle Namesräume der Knoten selbst Vereinigungsmenge: Knoten plus alle Nachfahren Vereinigungsmenge: Knoten plus alle Vorfahren Abkürzende Schreibweisen: Achse Abkürzung Beispiel (lang) Beispiel (kurz) Child (keine Angabe) /child::book Book Attribute @ Book/attribute::title Book/@title Descendant-or-self // Book/descendant-or-self::author Book//author self. self::node()//author.//author Parent.. parent::node()/book../book Knoten-Tests erlaubt spezifische Auswahl der Elementtypen innerhalb der Achsen verschiedene Arten von Knoten-Test: Angabe des Elementnamens Angabe eines "*": findet alle Elemente node(): findet alle Knoten (auch z.b. Text) text(): findet nur Textknoten comments(): findet nur Kommentare processing-instruction(): findet alle Verarbeitungsanweisungen Prädikate Verfeinerung der Knoten-Tests boolescher Ausdruck; für jeden Knoten der Ergebnismenge ausgewertet Beispiele /Book//author alle Autoren des (ersten) Buchs unterhalb der Wurzel

11 von 11 /Book[3]//author (/Book[position() = 3]//author) alle Autoren des dritten Buchs unterhalb der Wurzel / die Dokument-Wurzel //Book[./author = 'John Smith'] alle Bücher mit dem Autor 'John Smith' //Book[@price < 50][@curr = 'euro'] alle Bücher, deren Preis weniger als 50 Euro ist