490 likes | 579 Views
XML - verwandte Standards. 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,
E N D
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
XML - verwandte Standards XLink Übersicht DOM SAX XPath XPointer XLink Sonstiges XPointer XSL DOM XPath SAX
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 • http://rdbm.com/sql.cgi?query="select * from foo" • urn:ISBN:0-395-36341-6 • urn:uuid:C4ED1820-6207-11d1-A29F-00AA00C14882 • URI kann optionale ‚trailing Query‘ enthalten, leading ‚?‘, gefolgt von ‚#‘ plus Fragment Identifier • uuid - Universal Unique Identifier (fuer Objekte; DCE = distributed computing environment)
Schnittstelle XML-Processor - Anwendung • Document Object Model (DOM) • Ereignisorientierte Verarbeitung Übersicht DOM SAX XPath XPointer XLink Sonstiges
... MM-Tool 1 MM-Tool 2 XML Processor, Application Application Übersicht DOM SAX XPath XPointer XLink Sonstiges Aufruf fürXML-Dok. Callback-Methoden XML-Processor(XML-Engine) DOM-Methoden
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
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 childNodesund der Methoden selectNodesund getElementsByTagName. • NamedNodeMap - Attribute eines Elements. Übersicht DOM SAX XPath XPointer XLink Sonstiges
Attribute und Methoden von Node ... attributes parentNode ownerDocument Übersicht DOM SAX XPath XPointer XLink Sonstiges (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 ... ... ...
Manipulationsmethoden von Node Übersicht DOM SAX XPath XPointer XLink Sonstiges insertBefore replaceChild appendChild removeChild ... ... ...
Mögliche strukturelle Beziehungen zw. Objekten unterschiedlichen Typs Kinder-Beziehung • Document -- Element (maximal eins), ProcessingInstruction, Comment, DocumentType • DocumentFragment -- Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReferencewenn 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
Weitere DOM-Methoden • Methoden von Document:(da Kontext, d.h. Dokument, zu dem Objekte gehoeren, fuer neue Objekte erforderlich) • createAttribute • createCDATASection • createComment • createDocumentFragmenthat 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
Weitere Methoden für Node • Methoden: • namespaceURI * - gibt URI des Namespaces zurück • nodeTypeString * • parsed- liefert TRUE gdw. Knoten und Nachfolger bereits geparst wurden; sinnvoll z.B. vortransform. • 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
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
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
Anwendungs- programm Handler #1 Handler #2 ... Parser Dispatcher Handler #n Ereignis- strom Callback, mit dem Ereignis als Parameter Auslösende Muster ("Trigger") Anmeldung der Handler Ereignisorientierte Architektur Übersicht DOM SAX XPath XPointer XLink Sonstiges
Traversierung ESIS Ausgabe ?xml version="1.0" encoding="ISO-8859-1" (wetter (plz -87724 )plz (datum -981009 )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 Dokument <?xml version="1.0" encoding="ISO-8859-1"?> <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> Übersicht DOM SAX XPath XPointer XLink Sonstiges 87724 ... ... ... ... heiter... "Document Order"-Traversierung
ESIS - Element Structure Information Set • Strukturinformation zu einem Dokument, • Information, die z.B. durch Abfolge von Eventsexplizit 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.http://www.oasis-open.org/cover/WG8-n931a.html Übersicht DOM SAX XPath XPointer XLink Sonstiges
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
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
Ereignisorientiertes API Vor- und Nachteile: • Minimaler Speicherbedarf, • Geschwindigkeit, • ‚Gedächtnislosigkeit‘, • nicht deklarativ. Übersicht DOM SAX XPath XPointer XLink Sonstiges
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
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
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
Location Path Expression 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. Übersicht DOM SAX XPath XPointer XLink Sonstiges
1 absoluteLokator-Terme ID="foo" 2 3 4 5 6 7 8 9 10 11 12 13 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 Übersicht DOM SAX XPath XPointer XLink Sonstiges Lokator-Term - spezif. Position, meist relativ zum vorangegangenen Lok. Term origin - von dort beginnt Traversierung Bsp. ‘next chapter’
XPath - Einbettung in URL Beispiel: href=‘doc.xml#xpointer(book/chapter[position() <= 5])’ Übersicht DOM SAX XPath XPointer XLink Sonstiges
Beispiele für Ausdrücke (1/3) • titel bzw. ./titelAlle Titel im aktuellen Element. • //titelAlle Titel im Dokument. • buch/* Andere Bedeutung von *, verglichen mit DTD - WildcardAlle Kinder des Elements "buch“. • buch/@*Alle Attribute des Buchs, d.h. Attributnamen zusammen mit Werten. • preis/@währungAlle 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
Beispiele für Ausdrücke (2/3) • buch[zusammenfassung]/titelDie 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" • //buch[./buchladen/@spezialität = @gattung]Alle Bücher, deren Literaturgattung gleich der Spezialität des Buchladens isterlaeutern ./ kann man weglassen Übersicht DOM SAX XPath XPointer XLink Sonstiges
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 • book/@genre • book[@genre="novel"]/title • book[@genre=./author/@pipapo]/title Übersicht DOM SAX XPath XPointer XLink Sonstiges
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
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
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
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
Hyperlinks • Motivation, • Begriffsbildung, • Standardisierung durch XLink. Übersicht DOM SAX XPath XPointer XLink Sonstiges
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
LocatorsDaten, die Teil des Links sind, die Ressource identifizieren Semantik der ‘remote resource’ ‘Link-Semantik’ Bestandteile eines Links - Beispiel Konstruktions-unterlagenModell XY500‘Fahrzeugelektrik’Bild 28 TÜV-Vorschrift xyz,Abschnitt 28 Schluss-folgerung Übersicht DOM SAX XPath XPointer XLink - Motivation - Begriffe - Standardis. Sonstiges input ProtokollEntwickler-Meeting03.05.1999Punkt 18 result input Konstruktions-unterlagenModell XY500‘Hydraulik’drittes Bild result input AuswertungKundenbeschwerden‘Fahrzeugelektrik’vorletzter Absatz Beispiel ‘Design Rationale Management’
Simple Linknur ein Locator;(Locator - Daten im Link, die eine Ressource identifizieren)ein Element f. Linking Element u. Locator Link Group Links in XML Übersicht DOM SAX XPath XPointer XLink - Motivation - Begriffe - Standardis. Sonstiges Extended Link XPointer
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
beschreibt remote resource Semantik der lokalen Ressource Locator - Daten im Link, die eine Ressource identifizieren Beispiel für inline-Link <mylink xml:link="simple" title="Citation” href="http://www.xyz.com/xml/foo.xml" show="new" content-role="Reference">as discussed in Smith(1997)</mylink> Übersicht DOM SAX XPath XPointer XLink - Motivation - Begriffe - Standardis. Sonstiges Attribut xml:link enthaelt Information darueber, um was fuer einen link-Typ es sich handelt, z.B. ‘simple’ oder 'extended' oder 'group'. ‘Citation’ - Zitat
Beispiel: Extended Link <?xmlversion="1.0"?> <productxml:link="extended" inline= "false“ indicates inline status title= "Das FooBar Produkt" id= "id12345"> <locatorhref= "desc.xml" role= "Beschreibung"/> <locatorhref= "img.gif" role= "Bild"/> <locatorhref= "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.
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
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-titlekeine Aussage darueber, wie diese Information verwendet werden kann/soll; optionales Attr. Übersicht DOM SAX XPath XPointer XLink - Motivation - Begriffe - Standardis. Sonstiges
Attribute der Link-Elemente (2) • Entfernte Ressource: • role • title ‘displayable caption’ • showembed, replace, newwie wird Ressource angezeigt, zu der navigiert wird? • actuateauto, userwann 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
Das Link-Element • <link>-Element Attribute • role • inline (true, false) • lokalen Ressource (falls inline) • content-role • content-title • entfernte Ressource • role • 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
XML Architektur des W3C CSS Cascading Style Sheets (Level 1 und 2) Recommendation, 12.05.1998 DOM Document Object Model (DOM) Level 1 Recommendation, 01.10.1998 RDF/RDFS Resource Description Framework 4. Working Draft, 08.10.1998 XLink Extensible Linking Language 2. Working Draft, 03.03.1998 XML Extensible Markup Language Recommendation, 10.02.1998 XMLNS Namespaces in XML 4. Working Draft, 16.09.1998 XPointer XML Pointer Language 2. Working Draft, 03.03.1998 XSL Extensible Stylesheet Language 2. Working Draft, 18.08.1998 Übersicht DOM SAX XPath XPointer XLink Sonstiges
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
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
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 10646-1:1993 DSSSL Document Style Semantics and Specification Language ISO/IEC 10179:1996 Übersicht DOM SAX XPath XPointer XLink Sonstiges