www.wikidata.de-de.nina.az
Das Java API for XML Processing oder JAXP ist eines der Java XML APIs Es handelt sich um ein leichtgewichtiges standardisiertes API zum Validieren Parsen Generieren und Transformieren von XML Dokumenten Die jeweilige nicht standardisierte Implementierung des APIs ist austauschbar pluggable Die vier grundlegenden Schnittstellen sind das Document Object Model Parser Schnittstelle oder DOM Schnittstelle das Simple API for XML Parser Schnittstelle oder SAX Schnittstelle das Streaming API for XML oder StAX Schnittstelle hinzugefugt in JDK 6 separat als Jar verfugbar fur JDK 5 die XSLT Schnittstelle um Transformationen an Daten und Strukturen eines XML Dokuments zu ermoglichen Das J2SE 1 4 JDK war die erste JDK Version die mit einer Implementierung der JAXP 1 1 veroffentlicht wurde die aktuelle JSE wird mit Apache Xerces und einer angepassten Variante von Xalan fur XSLT ausgeliefert Inhaltsverzeichnis 1 Versionierung 2 DOM Schnittstelle 3 SAX Schnittstelle 4 XMLPULL Schnittstelle 5 XSLT Schnittstelle 6 XSD Validierung 7 Einzelnachweise 8 WeblinksVersionierung BearbeitenJava SE Version beinhaltete JAXP Version1 4 1 11 5 1 31 6 1 41 7 0 1 4 51 7 40 1 51 8 1 6 1 DOM Schnittstelle BearbeitenDie DOM Schnittstelle ist sehr einfach aufgebaut Sie parst ein ganzes XML Dokument und erstellt eine vollstandige in memory Darstellung des Dokuments Dabei benutzt es die Klassen und Konzepte der Spezifikation die unter Document Object Model DOM Level 2 Core Specification 2 einsehbar ist Der DOM Parser wird DocumentBuilder genannt da er eine in memory Dokumentendarstellung liefert Eine Instanz der Klasse javax xml parsers DocumentBuilder wird durch die Factory Klasse javax xml parsers DocumentBuilderFactory erzeugt Der DocumentBuilder erstellt zunachst eine org w3c dom Document Instanz in Form einer Baumstruktur die die Knoten im XML Dokument enthalt Jeder Baumknoten in dieser Struktur implementiert die org w3c dom Node Schnittstelle Es gibt viele verschiedene Typen von Baum Knoten die die jeweiligen Datentypen aus dem XML Dokument reprasentieren Die wichtigsten Knoten sind Elementknoten eventuell mit Attributen Textknoten die den gefundenen Text zwischen Start und End Tag eines Dokumentelementes widerspiegelnFur eine komplette Liste der Knotentypen wird auf die javadoc Documentation des Paketes org w3c dom verwiesen Mit dem DOM API kann man in beide Richtungen arbeiten also vom XML zum in memory DOM als auch vom DOM zum XML Es eignet sich also nicht nur zum parsen von XML sondern auch zum Generieren von XML Streams oder Files SAX Schnittstelle BearbeitenDer SAX Parser auch SAXParser genannt wird durch javax xml parsers SAXParserFactory erstellt Im Gegensatz zum DOM Parser erstellt der SAXParser keine in memory Darstellung eines XML Dokumentes was ihn folglich schneller und weniger anspruchsvoll im Speicherverbrauch macht Hingegen informiert der SAXParser den Client der XML Dokumenten Struktur durch Ruckruffunktionen Callbacks d h es werden Methoden der DefaultHandler Instanz die dem Parser zur Verfugung stehen ausgefuhrt Die DefaultHandler Klasse befindet sich im Paket org xml sax helpers Diese implementiert den ContentHandler den ErrorHandler den DTDHandler und die EntityResolver Schnittstelle Die meisten Clients interessieren sich fur die Methoden aus der ContentHandler Schnittstelle Die ContentHandler Methoden implementiert durch den DefaultHandler werden aufgerufen sobald der SAX Parser auf die entsprechenden Elemente des XML Dokumentes trifft Die wichtigsten Methoden in dieser Schnittstelle sind die startDocument und endDocument Methode die am start und am end tag eines XML Dokumentes aufgerufen werden die startElement und endElement Methode die am start und am end tag eines Dokumentelementes aufgerufen werden die characters Methode Diese wird mit dem Inhalt der sich zwischen start und end tag des jeweiligen XML Dokumentelements befindet aufgerufen Der Client bietet eine Unterklasse des DefaultHandlers an der diese Methoden uberschreibt und die Daten verarbeitet Dies kann auch das Ablegen der Daten in eine Datenbank oder das Schreiben in einen stream beinhalten Mit dem SAX API kann man nur in eine Richtung arbeiten und zwar vom XML hinein in Java Es eignet sich also ausschliesslich zum parsen von XML Mit SAX kann man also kein XML Streams oder Files erzeugen XMLPULL Schnittstelle BearbeitenSeit JAXP 1 2 und somit JSE 6 und J2EE 1 4 ist die Streaming API for XML StAX Bestandteil von JAXP Diese dient dazu mittels sogenannter XMLPULL Parser XML Daten zu lesen XMLPULL ist ahnlich wie SAX nur dass der Parser nicht wie bei SAX Informationen an die Applikation uber einen Event Mechanismus schickt PUSH sondern die Anwendung holt sich die nachsten Informationen selbst wenn sie sie benotigt PULL XMLPULL Parser sind ublicherweise performanter als SAX Parser XSLT Schnittstelle BearbeitenDie Extensible Stylesheet Language for Transformations abgekurzt XSLT erlaubt die Konvertierung eines XML Dokumentes in andere Formen von Daten XSD Validierung BearbeitenValidierung von XSD Dateien wird ab JAXP 1 2 unterstutzt JAXP 1 2 ist ab JSE 6 0 und J2EE 1 4 Teil der Java Plattform Einzelnachweise Bearbeiten https www jcp org en jsr detail id 206 http www w3 org TR 2000 REC DOM Level 2 Core 20001113Weblinks BearbeitenOracles JAXP Produktbeschreibung Beispielprogramm das den DOM Parser und den SAX Parser benutzt Tutorial XML with Xerces for Java Abgerufen von https de wikipedia org w index php title Java API for XML Processing amp oldid 237536207