1 / 21

XML und Datenbanken - XML-Prozessoren, XPath, XQuery -

XML und Datenbanken - XML-Prozessoren, XPath, XQuery -. Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de www.xml-und-datenbanken.de. Inhalt. „Techniken, um XML herum“ – Möglichkeiten zur Verarbeitung von XML-Dokumenten

preston
Download Presentation

XML und Datenbanken - XML-Prozessoren, XPath, XQuery -

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XML und Datenbanken - XML-Prozessoren, XPath, XQuery - Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik.uni-rostock.de www.xml-und-datenbanken.de

  2. Inhalt „Techniken, um XML herum“ – Möglichkeiten zur Verarbeitung von XML-Dokumenten • XML-Prozessoren • Einführung • SAX (Simple API for XML) - ereignisorientierte Verarbeitung • DOM (Document Object Model) - Manipulation von Baumstrukturen • Einsatz von DOM und SAX • JDOM, … • Weiterführende Literatur

  3. XML-Prozessoren • machen den Inhalt eines XML-Dokumentes für eine Anwendung verfügbar • Standardisierte Schnittstellen für zahlreiche Programmiersprachen (Java, Phyton, C, C++, ...) • Einbindung von Bibliotheken • Auflösen von Entities • nichtvalidierend / validierend in Bezug auf DTD oder XML Schema - Einleitung - SAX - DOM - Verwendung - JDOM - Literatur

  4. SAX – ereignisorientierte Abarbeitung • David Megginson • durch Bestandteile des Dokumentes werden Aktionen ausgelöst • sequentielle Abarbeitung • im Anwendungspro-gramm müssen die Methoden definiert • werden, die durch Auftreten von Dokumentbestandteilen • ausgelöst werden • zustandslos startDocument() <?xml version="1.0"?> startElement("hotel", AttributeList( <hotel id= length=1, - Einleitung - SAX - DOM - Verwendung - JDOM - Literatur {name= value= <hotelname> startElement("hotelname", null) Strand Hotel Hübner </hotelname> endElement("hotelname") <adresse> startElement("adresse", null) <ort> startElement("ort", null) Warnemünde characters(char[], start, length) </ort> endElement("ort") <telefon> . . . 0381/548230 </telefon> </adresse> endElement("adresse") endElement("hotel") </hotel> endDocument()

  5. SAX – verfügbare Methoden • startDocument() • endDocument() • startElement(String, AttributeList) • Zugriff auf Elemente der AttributeList mit den Methoden getName(position), getType(position), getValue(position) • endElement(String) • characters(char[], int, int) • processingInstruction(string, string) • ignorableWhitespace(char[], int, int) • setDocumentLocator(Locator) • (Bestimmen der Stelle des Auftretens des jeweiligen Ereignisses, verwendbar z.B. für Nachbearbeitung des Dokumentes) - Einleitung - SAX - DOM - Verwendung - JDOM - Literatur

  6. DOMImplementation Node NodeList NamedNodeMap Attr CharacterData Comment Text CDataSection Document DocumentFragment DocumentType Element Entity EntityReference Notation ProcessingInstruction DOM - Manipulation von Baumstrukturen Empfehlung des W3C beschreibt Schnittstellen zum Zugriff auf XML-Dokumente und zur Veränderung von Struktur und Inhalten die zugrundeliegende Implementierung und Speicherung der XML-Dokumente wird nicht definiert ! - Einleitung - SAX - DOM - Verwendung - JDOM - Literatur

  7. Methoden der Klasse: Node • Fast alle Dokumentbestandteile basieren auf dieser Klasse • Die Klasse Node enthält • Methoden zur Identifikation des Knotentypes • Methoden zur Navigation durch die Dokumentstruktur • Methoden zur Manipulation der Dokumentstruktur - Einleitung - SAX - DOM - Verwendung - JDOM - Literatur

  8. DOM (Document Object Model) –Navigation durch das Dokument • XML-Dokument als Baum dargestellt, • Zugriff kann durch Navigation erfolgen • Manipulation des Dokumentstruktur • ebenfalls möglich - Einleitung - SAX - DOM - Verwendung - JDOM - Literatur 1 Ausgehend vom Knoten 5 6 liefern folgende Methoden der Klasse Node die Knoten bzw. Knotenlisten als Ergebnis: 4 1 - getParentNode() 2 3 2 - getFirstChild() 3 - getLastChild() 4 - getChildren() 5 - getPreviousSibling() 6 - getNextSibling()

  9. insertBefore (newChild, refChild) refChild newChild refChild appendChild (newChild) newChild replaceChild (newChild, oldChild) newChild oldChild removeChild (oldChild) oldChild DOM – Manipulation der Struktur Löschen, Ergänzen, Verschieben, Verändern von Dokumentanteilen Bestandteile der Schnittstelle Node - Einleitung - SAX - DOM - Verwendung - JDOM - Literatur

  10. Interface NodeList • Zur Verarbeitung von Knotenlisten steht die Klasse NodeList bereit. • NodeList speichert eine Liste von Knoten, das Ordnungskriterium der Liste ist dabei die Dokumentordnung. • Methoden der Schnittstelle NodeList sind: • item(index) zum Zugriff auf die einzelnen Knoten, dabei beginnt der Index mit 0. • getLength() liefert die Anzahl der Knoten in der Liste - Einleitung - SAX - DOM - Verwendung - JDOM - Literatur

  11. Interface NamedNodeMap • Neben der NodeList steht auch das Interface NamedNodeMap zur Verfügung. • Methoden dieser Klasse sind: • getLength() - liefert die Anzahl der Knoten in der Liste • item(index) - dient zum Zugriff auf die einzelnen Knoten der Liste • getNamedItem(name) und • removeNamedItem(name) werden zum gezielten Auslesen beziehungsweise Löschen eines Elementes Node eingesetzt. - Einleitung - SAX - DOM - Verwendung - JDOM - Literatur

  12. Die Klasse: Element • Die Informationen von Elementen können über folgende spezialisierte Methoden erfragt und manipuliert werden. • getTagName() liefert den Tagnamen eines Elementes • getAttribute(name) liefert das angegebene Attribut • setAttribute(name, value) ermöglicht das Verändern und Ergänzen von Attributen • removeAttribute(name) löscht das spezifizierte Attribut • getElementsByTagName(tagname) liefert alle Elemente des Dokumentes, die den angegebenen Elementnamen haben, bei Angabe von • getElementsByTagName(*) werden alle Elemente zurückgegeben. - Einleitung - SAX - DOM - Verwendung - JDOM - Literatur

  13. Methoden der Klasse Attribute • Attributinformationen können über die folgenden Methoden erfragt werden: • getName() gibt den Attributnamen zurück • getValue() liefert den Attributwert und • setValue(value) setzt den Attributwert. - Einleitung - SAX - DOM - Verwendung - JDOM - Literatur

  14. Methoden der Klasse Character Data • Zum Auslesen, Verändern und Setzen von Textanteilen • Methoden der Klasse Character Data: • getLength() liefert die Länge des Textanteils • getData() liefert den vollständigen Text • substringData(start,count) liefert einen Teilstring des Textes, der bei start beginnt und soviele Zeichen enthält, wie bei count angegeben ist • appendData(text) hängt den angegebenen Text an der Originaltext an • replaceData(offset,count,text) ersetzt den durch offset und count definierten Textanteil durch den angegebenen Text • insertData(offset,text) fügt an der durch offset angegebenen Stelle den Text ein • deleteData(offset,count) löscht den durch offset und count spezifizierten Textanteil - Einleitung - SAX - DOM - Verwendung - JDOM - Literatur

  15. Weitere Schnittstellen In ähnlicher Form wie für Elemente, Attribute und Character Data stehen für die anderen Knotenarten (z.B. • Processing Instructions, • Kommentare und • Entities) Schnittstellen und Methoden zur Abfragen von allen Informationen des XML-Dokumentes zur Verfügung. - Einleitung - SAX - DOM - Verwendung - JDOM - Literatur

  16. Genereller Vergleich DOM - SAX XML- DTD/ XML Schema Dokument - Einleitung - SAX - DOM - Verwendung - JDOM - Literatur Parser DOM SAX startDocument startElement Anwendung, startElement implemen- tiert endElement Document ... Handler endDocument nach Roland Böndgen

  17. SAX einfacher Zugriff einfach strukturierte oder gleichartig strukturierte Dokumente auch geeignet für sehr große XML-Dokumente geeignet, wenn Zugriff nur auf geringe Anteile eines Dokumentes erfolgt DOM Navigation durch Dokumentstruktur dadurch kontextabhängige Zugriffe Manipulation der Struktur Für sehr große XML-Dokumente problematisch auch Speicherungsstruktur Zum Einsatz von SAX und DOM - Einleitung - SAX - DOM - Verwendung - JDOM - Literatur

  18. JDOM • JDOM : einfaches und effizientes Lesen, Verändern und Erzeugen von XML-Dokumenten • “Java-optimiert” • Basiert (trotz Namensähnlichkeit) nicht auf DOM • JDOM versteckt die Komplexität von XML soweit möglich, z.B.: • Elemente haben Inhalte, nicht Nachfolger-Textknoten • Auf diese kann durch die API direkt zugegriffen werden • Informationen, API, Publikationen usw. unter: www.jdom.org - Einleitung - SAX - DOM - Verwendung - JDOM - Literatur

  19. Zusammenfassung • SAX: • sequentielle Verarbeitung von XML-Dokumenten • nicht kontextabhängig • nur lesende Zugriffe • DOM/ JDOM • Verwendung einer internen Struktur (Beschreibung dieser aber nur über Schnittstellen) • Navigation durch die Informationen des XML-Dokumenten, kontextabhängige Zugriffe möglich • Manipulation möglich • zahlreiche XML-Prozessoren existieren

  20. Literatur XML-Prozessoren: • Informationen über SAX: • www.saxproject.org • DOM: • www.w3.org/DOM-Level-1/ • www.w3.org/DOM-Level-2/ • www.w3.org/DOM-Level-3/ XPath, XQuery: • Schöning, Lehner: XQuery, dpunkt.verlag, 2004 • www.w3.org/TR/xpath • www.w3.org/XML/Query

  21. Verfügbare Parser • An dieser Stelle sollen keine SAX- oder DOM-Prozessoren aufgezählt werden, da die Aussagen, was sie jeweils unterstützen, schnell veralten • viel verwendet wird: Xerces • (kommentierte) Softwaresammlungen unter: • xml.coverpages.org • www.xmlsoftware.com

More Related