Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

XML - verwandte Standards

Ähnliche Präsentationen


Präsentation zum Thema: "XML - verwandte Standards"—  Präsentation transkript:

1 XML - verwandte Standards

2 XML - verwandte Standards
XPath - Sprache, mit der logische Bestandteile eines XML-Dokuments referenziert werden, XPointer - verallgemeinert XPath, man kann jetzt z.B. auch Worte im Dokument referenzieren, XLink - einheitliche Darstellung von Hyperlinks (verwendet XPointer), XSL - Transformationssprache (insbesondere geeignet für XML), DOM - Methoden für Zugriff und Manipulation von Dokumentbestandteilen, SAX - Callback-Interface der XML-Engine. Übersicht DOM SAX XPath XPointer XLink Sonstiges

3 XML - verwandte Standards
XLink Übersicht DOM SAX XPath XPointer XLink Sonstiges XSL XPointer XPath DOM SAX

4 URN: Namen und Lokatoren
Adressierung von Ressourcen im WWW URL := Uniform Resource Locator URN := Uniform Resource Name URI := URN oder URL Uniform Resource Identifier Ressource := durch URI adressierbares Objekt URN Definition urn:namespace identifier:namespace specific string Übersicht DOM SAX XPath XPointer XLink Sonstiges Beispiele für URI * from foo" urn:ISBN: urn:uuid:C4ED d1-A29F-00AA00C14882 URI kann optionale ‚trailing Query‘ enthalten, leading ‚?‘, gefolgt von ‚#‘ plus Fragment Identifier uuid - Universal Unique Identifier (fuer Objekte; DCE = distributed computing environment)

5 Schnittstelle XML-Processor - Anwendung
Document Object Model (DOM) Ereignisorientierte Verarbeitung Übersicht DOM SAX XPath XPointer XLink Sonstiges

6 XML Processor, Application
Übersicht DOM SAX XPath XPointer XLink Sonstiges Aufruf für XML-Dok. Callback- Methoden XML-Processor (XML-Engine) DOM- Methoden MM-Tool 1 MM-Tool 2 ...

7 DOM: Document Object Model
Objektorientierte Sicht auf XML-Dokumente, Baumstruktur. Unterschied zur Baumstruktur, wie bisher beschrieben, erlaeutern Methoden erlauben das Navigieren im Baum und das Manipulieren des Baums. Keine Aussagen über die konkrete Implementation der Objekte, nur API wird IDL-mässig beschrieben, (Nicht alle Konzepte sind berücksichtigt, DTDs, Entitäten fehlen,) Hilfsklassen: Node, NodeList, NamedNodeList, etc., Normung erreicht am 1. Oktober 1998 Übersicht DOM SAX XPath XPointer XLink Sonstiges

8 DOM: Document Object Model
Abstrakte Objekttypen: Node, NodeList, NamedNodeMap (bzw. XMLDOMNode, XMLDOMNodeList, XMLDOMNamedNodeMap bei MS) Node ist Superklasse für alle Bestandteile des Dokuments, z.B. Elemente, Attribute, Processing Instructions. NodeList - Typ des Properties childNodes und der Methoden selectNodes und getElementsByTagName. NamedNodeMap - Attribute eines Elements. Übersicht DOM SAX XPath XPointer XLink Sonstiges

9 Attribute und Methoden von Node
... attributes parentNode Übersicht DOM SAX XPath XPointer XLink Sonstiges ownerDocument (NULL, wenn der aktuelle Knoten Document ist) nodeName nodeType nodeValue ... ... previousSibling nextSibling 1 = element, 2 = attribute, … Aufzaehlungstyp fuerElemente, Attribute u. Entity Referenzen qualif. Name, sonst fester String Abhaengig vom Typ, z.B. Text bei Textknoten oder Attributwert hasChildNodes childNodes firstChild childNodes.item(0) lastChild ... ... ...

10 Manipulationsmethoden von Node
Übersicht DOM SAX XPath XPointer XLink Sonstiges insertBefore replaceChild appendChild removeChild ... ... ...

11 Mögliche strukturelle Beziehungen zw. Objekten unterschiedlichen Typs
Kinder-Beziehung Document -- Element (maximal eins), ProcessingInstruction, Comment, DocumentType DocumentFragment -- Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference wenn es eingefuegt wird, werden die Kinder an der Stelle eingefuegt DocumentType -- keine Kinder Properties vom Typ NameNodeMap: entities, notations EntityReference -- Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference EntityReference wird u.U. nicht sofort aufgeloest, sondern ‘lazy’. Die Kinder sind die Knoten, die in der Entity enthalten sind. Element -- Element, Text, Comment, ProcessingInstruction, CDATASection, EntityReference Attr -- Text, EntityReference ProcessingInstruction -- keine Kinder Comment -- keine Kinder Text -- keine Kinder CDATASection -- keine Kinder Entity -- Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference Notation -- keine Kinder Übersicht DOM SAX XPath XPointer XLink Sonstiges

12 Weitere DOM-Methoden Methoden von Document: (da Kontext, d.h. Dokument, zu dem Objekte gehoeren, fuer neue Objekte erforderlich) createAttribute createCDATASection createComment createDocumentFragment hat keine Parameter, erlaubt Erzeugung der DOM-Repraes. nur eines Fragments createElement createEntityReference createProcessingInstruction createTextNode Beispiel: newAttNode = XMLDoc.createAttribute("newAtt") Warum nicht fuer XMLDOMNode? newAttNode.nodeValue = "hello world" Übersicht DOM SAX XPath XPointer XLink Sonstiges

13 Weitere Methoden für Node
namespaceURI * - gibt URI des Namespaces zurück nodeTypeString * parsed liefert TRUE gdw. Knoten und Nachfolger bereits geparst wurden; sinnvoll z.B. vor transform. specified * - explizit spezifiziert oder von Default-Wert abgeleitet? (Eigentlich nur für Attribute) xml * enthält die XML-Repräs. des Teilbaums * - nicht in der W3C-Recommendation, MS-spezifisch Beispiele (JavaScript-Codefragmente): if (xmlNode.nodeTypeString == "element") XMLDoc.loadXML(xmlNode.xml) if (elem1.hasChildNodes == true && elem1.firstChild.nodeTypeString == "element") elem1.firstChild.text = "I'm the first child of elem1" Übersicht DOM SAX XPath XPointer XLink Sonstiges

14 Methoden und Properties anderer Objekttypen
Methoden von XMLDOMDocument: XMLDoc.loadXML("<customer><first_name>Joe </first_name><last_name>Smith</last_name> </customer>") docRoot = XMLDoc.documentElement nodeFromID getElementsByTagName transformNode Parameter: Stylesheet Methoden von XMLDOMNodeList: length, item, z.B. item(0), nextNode Übersicht DOM SAX XPath XPointer XLink Sonstiges

15 DOM-Beispiel: Transformation von XML Data Islands
<HTML> <HEAD><TITLE>...</TITLE></HEAD> <XML id="source" src="simple.xml"></XML> <XML id="style" src="simple.xsl"></XML> <SCRIPT FOR="window" EVENT="onload"> xslTarget.innerHTML = source.transformNode(style.XMLDocument); </SCRIPT> <BODY> <P STYLE="font-size:10pt; color:gray"> <B>This demo shows the use of data islands for loading XML source and XSL style sheets and inserting the transformed result into the Web page.</B> </P> <DIV id="xslTarget"></DIV> </BODY> </HTML> Übersicht DOM SAX XPath XPointer XLink Sonstiges Einbettung von DOM Methoden transformNode - DOM Methode Stylesheet applied to root innerHTML - sets or retrieves the HTML between the start and end tags of the object XMLDocument -> DOM Knoten ‘source.XMLDocument.transform’ transformNodeToObject Albis Windows/temp/Samples/Samples

16 Ereignisorientierte Architektur
Anwendungs- programm Dispatcher Handler #1 Handler #2 Handler #n Parser Ereignis- strom ... Auslösende Muster ("Trigger") Callback, mit dem Ereignis als Parameter Anmeldung der Handler Übersicht DOM SAX XPath XPointer XLink Sonstiges

17 Traversierung Dokument ESIS Ausgabe "Document Order"-Traversierung
<?xml version="1.0" encoding="ISO "?> <wetter> <plz>87724</plz> <datum>981009</datum> <temperatur einheit="°C">13</temperatur> <regen> 30 </regen> <wind einheit="km/h">7</wind> <prognose> heiter bis wolkig </prognose> </wetter> ESIS Ausgabe ?xml version="1.0" encoding="ISO " (wetter (plz -87724 )plz (datum )datum Aeinheit CDATA °C (temperatur -13 )temperatur (regen - 30 )regen Aeinheit CDATA km/h (wind -7 )wind (prognose -\n\012\011\011heiter bis wolkig\n\012\011 )prognose )wetter Übersicht DOM SAX XPath XPointer XLink Sonstiges 87724 ... ... ... ... heiter... "Document Order"-Traversierung

18 ESIS - Element Structure Information Set
Strukturinformation zu einem Dokument, Information, die z.B. durch Abfolge von Events explizit gemacht wird, z.B. Start des Elements, Attributinformation, ESIS ist implizit Teil von ISO 8879 (SGML), ist aber nicht explizit definiert, Definition ist eher kontemplativer Natur, konkrete Definition einer Callback-Schnittstelle ist wohl hilfreicher. Übersicht DOM SAX XPath XPointer XLink Sonstiges

19 Ereignisorientiertes API
SAX - Simple API for XML, Callback-Interface, spezielle Beziehung zwischen Java und SAX: Schnittstelle in Java (nicht z.B. IDL), Implementierung in Java (andere Implementierungen von Callback-Interfaces nicht identisch) Übersicht DOM SAX XPath XPointer XLink Sonstiges

20 Beispiele für SAX-Methoden
characters(char[], int, int) Benachrichtigung bezüglich character data. endDocument() Benachrichtigung, dass Dokumentende. endElement(String) Benachrichtigung, dass Elementende. setDocumentLocator(Locator) übermittelt Objekt, dem Methoden geschickt werden können zum Abfragen von Eigenschaften der Events getLineNumber() retourniert Nummer der Zeile, wo das aktuelle Event endet getSystemId() retourniert system identifier des aktuellen Elements, wenn verfügbar, z.B. URL. Übersicht DOM SAX XPath XPointer XLink Sonstiges

21 Ereignisorientiertes API
Vor- und Nachteile: Minimaler Speicherbedarf, Geschwindigkeit, ‚Gedächtnislosigkeit‘, nicht deklarativ. Übersicht DOM SAX XPath XPointer XLink Sonstiges

22 Eigenschaften von XPath
Motivation: Adressierung beliebiger logischer Dokumentbestandteile, Non-XML Syntax, Verwendung in URIs und Attributwerten, XPath operiert auf der logischen Dokumentstruktur. Übersicht DOM SAX XPath XPointer XLink Sonstiges

23 XPath - Location Paths Ausdruck (in XPath) - liefert ein Objekt, z.B. node-set oder string-Objekt, Location Path - wichtige Art von Ausdrücken. Location Path selektiert Menge von Knoten relativ zu einem Kontext-Knoten (im folgenden Beispiel die Wurzel des Dokuments). Beispiel für Location Path: /doc/chapter[5]/section[2] (‘/’ ist Abkürzung für ‘child::’) ‘Nach unten zum Kind’ ist nur eine mögliche Richtung (“Achse”). Übersicht DOM SAX XPath XPointer XLink Sonstiges

24 XPath - Location Paths (2)
Absoluter Location Path vs. relativer Location Path, Location Path besteht aus Location Steps, Location Step besteht aus Achse, ‘Node Test’, Prädikaten. Beispiel: /descendant::figure[position() = 42] selektiert das 42. Bild im Dokument Übersicht DOM SAX XPath XPointer XLink Sonstiges

25 XPath - Ausdrücke Beispiel: string(/descendant::figure[position() = 42]) = “bla” weitere Funktionen mit Location Path als Argument, z.B. ‘name’, Funktion id - Beispiel: id(“foo”) Die üblichen arithmetrischen Operationen und String-Funktionen sind erlaubt. Expression Location Path Übersicht DOM SAX XPath XPointer XLink Sonstiges

26 XPath - absolute und relative Lokator-Terme
Kandidatenmengen, relativ zu Knoten #6: root() 1 id("foo“) 4 child(…) 10, 11 descendant(…) 10, 11, 13 ancestor(…) 2, 1 preceding(…) 5, 2, 1 following(…) 10, 11, 13, 7, 3, 4, 8, 9, 12 psibling(…) 5 fsibling(…) 7 7 2 6 5 4 8 9 3 1 10 11 13 12 ID="foo" Übersicht DOM SAX XPath XPointer XLink Sonstiges absolute Lokator- Terme Lokator-Term - spezif. Position, meist relativ zum vorangegangenen Lok. Term origin - von dort beginnt Traversierung Bsp. ‘next chapter’

27 XPath - Einbettung in URL
Beispiel: href=‘doc.xml#xpointer(book/chapter [position() <= 5])’ Übersicht DOM SAX XPath XPointer XLink Sonstiges

28 Beispiele für Ausdrücke (1/3)
titel bzw. ./titel Alle Titel im aktuellen Element. //titel Alle Titel im Dokument. buch/* Andere Bedeutung von *, verglichen mit DTD - Wildcard Alle Kinder des Elements "buch“. Alle Attribute des Buchs, d.h. Attributnamen zusammen mit Werten. Alle Währungen von Preisen. buch[zusammenfassung] Alle Bücher, die eine Zusammenfassung enthalten. Albis: Windows/temp/xml/xsl_pattern_builder Übersicht DOM SAX XPath XPointer XLink Sonstiges

29 Beispiele für Ausdrücke (2/3)
buch[zusammenfassung]/titel Die Titel aller Bücher, die eine Zusammenfassung enthalten autor[vorname!text() = "Hans"] autor[vorname $ieq$ "Hans"] Alle Autoren mit Vornamen "Hans" autor[(titel $or$ auszeichnung)] Alle Autoren mit einen Titel oder einer Auszeichnung $ und Klammern koennen weggelassen werden mein_namensraum:* Alle Elemente in "mein_namensraum" Alle Bücher, deren Literaturgattung gleich der Spezialität des Buchladens ist erlaeutern ./ kann man weglassen Übersicht DOM SAX XPath XPointer XLink Sonstiges

30 Beispiele für Ausdrücke (3/3)
book[price<10]//title book[price<10]/*/name book[title $ile$ "The B"]/title book/author[first-name and last-name] Was wird ausgegeben? book[author/first-name and author/last-name]/title book[author[first-name and last-name]]/title book[.//name $ieq$ „Plato“]/title Übersicht DOM SAX XPath XPointer XLink Sonstiges

31 Operatoren in Ausdrücken
/ Kind-Operator Direkte Nachfolger, Dokumentelement // Rekursiver Abstieg Indirekte Nachfolger, . Aktueller Kontext * Wildcard Jeder Elementtyp @ Attribut Unterscheidet Attribut- von Elementnamen : Namensraumtrenner Trennt Namensraum- und Namensteil ! Methodenaufruf Wendet eine Methode auf das referenzierte Element an ( ) Gruppierung [ ] Filter Subquery Übersicht DOM SAX XPath XPointer XLink Sonstiges

32 XPointer XPath erlaubt nur die Referenzierung von logischen Dokumentbestandteilen, insbesondere Elementen, XPointer erlaubt Referenzierung beliebiger Stellen (“Points” bzw. “Ranges”) im Dokument (bzw. in Elementen, die mit XPath identifiziert wurden), Identifizierung von Points und Ranges mit String-Matching Mechanismen. Übersicht DOM SAX XPath XPointer XLink Sonstiges

33 point und range Location Types
Container Node und Index definieren Location vom Typ point, z.B. start-point(//title, “pipapo”)[17] Ausdruck identifiziert Start-Punkt des 17. Vorkommens des Strings ‘pipapo’ in einem title-Element, range-Location ist definiert durch zwei Punkte, z.B. Xpointer(id(“sec2.1”)/descendant:P[last()] to id(“sec2.2”)/descendant::P[last()]) Ausdruck identifiziert Bereich vom letzten P-Element in sec2.1 bis zum letzten P-Element von sec2.2. Übersicht DOM SAX XPath XPointer XLink Sonstiges

34 String Matching Mechanismen
XPpointer bietet Konstrukt, das den range von Vorkommen eines Strings zurückliefert. Beispiel: string-range(//title, “Klemens Boehm”)[17] Übersicht DOM SAX XPath XPointer XLink Sonstiges

35 Hyperlinks Motivation, Begriffsbildung, Standardisierung durch XLink.
Übersicht DOM SAX XPath XPointer XLink Sonstiges

36 Links - Motivation Ziel: Positionen in einem Dokument referenzieren und diese mit einer Query beschreiben; Standard-HTML-Mechanismus ist zu unflexibel und erfordert Marke im Zieldokument; man will Links definieren aus Dokumenten, die man nicht modifizieren kann; Beispiel auf folgender Folie; Unterschied zw. Definieren von Links und Darstellen von Links Links können i.a. mehrere ‘Zielobjekte’ referenzieren; gleiche Differenzierung man will getypte Links und Links mit Attributen; Ressource kann Teil mehr als eines Links sein (mit HTML und herkömmlichen Browsern nicht ohne weiteres darstellbar). Übersicht DOM SAX XPath XPointer XLink - Motivation - Begriffe - Standardis. Sonstiges

37 Bestandteile eines Links - Beispiel
Konstruktions- unterlagen Modell XY500 ‘Fahrzeugelektrik’ Bild 28 Locators Daten, die Teil des Links sind, die Ressource identifizieren TÜV-Vorschrift xyz, Abschnitt 28 ‘Link-Semantik’ Schluss- folgerung Übersicht DOM SAX XPath XPointer XLink - Motivation - Begriffe - Standardis. Sonstiges input Semantik der ‘remote resource’ result Protokoll Entwickler-Meeting Punkt 18 input Konstruktions- unterlagen Modell XY500 ‘Hydraulik’ drittes Bild result input Auswertung Kundenbeschwerden ‘Fahrzeugelektrik’ vorletzter Absatz Beispiel ‘Design Rationale Management’

38 Links in XML Simple Link nur ein Locator; (Locator - Daten im Link, die eine Ressource identifizieren) ein Element f. Linking Element u. Locator Übersicht DOM SAX XPath XPointer XLink - Motivation - Begriffe - Standardis. Sonstiges Extended Link Link Group XPointer

39 Inline-Links und out-of-line Links
Differenzierung zwischen inline-Links und out-of-line Links: inline-Link: Inhalt des Link-Elements ist eine Ressource, z.B. A in HTML. out-of-line Link - Gegenteil. Inhalt des Links ist keine Ressource. out-of-line simple link sind moeglich, “one-ended”, bringen Properties mit Locations in Verbindung Es gibt keine Alternative zu out-of-line Links bei Read-Only Ressourcen und ‘multi-dimensional Traversal’. nicht dasselbe: Interne Links - externe Links. Übersicht DOM SAX XPath XPointer XLink - Motivation - Begriffe - Standardis. Sonstiges

40 Beispiel für inline-Link
<mylink xml:link="simple" title="Citation” href=" show="new" content-role="Reference">as discussed in Smith(1997)</mylink> beschreibt remote resource Übersicht DOM SAX XPath XPointer XLink - Motivation - Begriffe - Standardis. Sonstiges Locator - Daten im Link, die eine Ressource identifizieren Semantik der lokalen Ressource Attribut xml:link enthaelt Information darueber, um was fuer einen link-Typ es sich handelt, z.B. ‘simple’ oder 'extended' oder 'group'. ‘Citation’ - Zitat

41 Beispiel: Extended Link
<?xml version="1.0"?> <product xml:link="extended" inline= "false“ indicates inline status title= "Das FooBar Produkt" id= "id12345"> <locator href= "desc.xml" role= "Beschreibung"/> <locator href= "img.gif" role= "Bild"/> <locator href= "urn:rdbm: select price from products where id="id12345" role= "Preis"/> </product> product Übersicht DOM SAX XPath XPointer XLink - Motivation - Begriffe - Standardis. Sonstiges locator locator locator XLinks sind vollwertige Objekte. role kann auch Attribut fuer Link-Element sein.

42 Was wird durch XLink standardisiert?
Locators, die die ‘remote resources’ identifizieren Übersicht DOM SAX XPath XPointer XLink - Motivation - Begriffe - Standardis. Sonstiges ... Beschreibung (‘Semantik’) der remote resources Beschrei- bung des Links (‘Link- Semantik’) Beschreibung (‘Semantik’) der local resource, falls inline-Link

43 Attribute der Link-Elemente
<link>-Element Attribute role Rolle des Links Text, der von Anwendungen interpretiert wird, z.B. PRIMARY, criticism, summary. Attribute für lokale Ressource, falls inline: content-role Rolle des anchors content-title keine Aussage darueber, wie diese Information verwendet werden kann/soll; optionales Attr. Übersicht DOM SAX XPath XPointer XLink - Motivation - Begriffe - Standardis. Sonstiges

44 Attribute der Link-Elemente (2)
Entfernte Ressource: role title ‘displayable caption’ show embed, replace, new wie wird Ressource angezeigt, zu der navigiert wird? actuate auto, user wann soll Traversierung des Links erfolgen? Auto - Anzeigen der Ressource, sobald and. Ressource des Links angetroffen wurde (falls Reihenfolge der Ressourcen erforderlich, die aus dem Link) Übersicht DOM SAX XPath XPointer XLink - Motivation - Begriffe - Standardis. Sonstiges

45 Das Link-Element ... <link>-Element Attribute role
inline (true, false) lokalen Ressource (falls inline) content-role content-title entfernte Ressource title show (embed, replace, new) actuate (auto, user) behaviour ‚traversal behavior‘, keine Constraints fuer Attributwert <locator>-Element Attribute href Übersicht DOM SAX XPath XPointer XLink - Motivation - Begriffe - Standardis. Sonstiges link element locator locator ... lokale Ressource entfernte Ressource

46 XML Architektur des W3C CSS Cascading Style Sheets (Level 1 und 2)
Recommendation, DOM Document Object Model (DOM) Level 1 Recommendation, RDF/RDFS Resource Description Framework 4. Working Draft, XLink Extensible Linking Language 2. Working Draft, XML Extensible Markup Language Recommendation, XMLNS Namespaces in XML 4. Working Draft, XPointer XML Pointer Language XSL Extensible Stylesheet Language 2. Working Draft, Übersicht DOM SAX XPath XPointer XLink Sonstiges

47 Standard-DTDs (1/2) Offizielle W3C-DTDs
MathML: Mathematical Markup Language SMIL: Synchronized Multimedia Integration Language Appel: A Privacy Preference Exchange Language RDF: Resource Description Framework RDFS: Resource Description Framework Schemas SVG: Scaleable Vector Graphics HTML: Hypertext Markup Language E-Commerce OFX: Open Financial Exchange XMLEDI: Electronic Data Interchange Übersicht DOM SAX XPath XPointer XLink Sonstiges

48 Standard-DTDs (2/2) Wissenschaft CML: Chemical Markup Language
Computer, Kommunikation CDF: Channel Definition Format OSD: Open Software Distribution WIDL: Web Interface Definition Language JSML: Java Speech Markup Language DocBook Über hundert weitere von verschiedenen Gruppen angekündigte DTDs: Immobilien, Logfiles, Genealogie etc. Übersicht DOM SAX XPath XPointer XLink Sonstiges

49 Mit XML zusammenhängende Standards
SGML Standard Generalized Markup Language ISO/IEC 8879:1986 HyTime Hypermedia/Time-based Structuring Language ISO/IEC 10744:1992 UCS Universal Multiple-Octet Coded Character Set (UCS) ISO/IEC :1993 DSSSL Document Style Semantics and Specification Language ISO/IEC 10179:1996 Übersicht DOM SAX XPath XPointer XLink Sonstiges


Herunterladen ppt "XML - verwandte Standards"

Ähnliche Präsentationen


Google-Anzeigen