<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Java_API_for_XML_Processing</id>
	<title>Java API for XML Processing - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Java_API_for_XML_Processing"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Java_API_for_XML_Processing&amp;action=history"/>
	<updated>2026-05-14T16:05:46Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Java_API_for_XML_Processing&amp;diff=521288&amp;oldid=prev</id>
		<title>imported&gt;SchlurcherBot: Bot: http → https</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Java_API_for_XML_Processing&amp;diff=521288&amp;oldid=prev"/>
		<updated>2026-02-14T12:57:06Z</updated>

		<summary type="html">&lt;p&gt;Bot: http → https&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Das &amp;#039;&amp;#039;&amp;#039;Java API for XML Processing&amp;#039;&amp;#039;&amp;#039;, oder &amp;#039;&amp;#039;&amp;#039;JAXP&amp;#039;&amp;#039;&amp;#039;, ist eines der [[Java (Programmiersprache)|Java]]-[[Extensible Markup Language|XML]]-[[Programmierschnittstelle|APIs]]. Es handelt sich um ein leichtgewichtiges standardisiertes API zum [[Validator|Validieren]], [[Parser|Parsen]], Generieren und Transformieren von XML-Dokumenten. Die jeweilige (nicht standardisierte) Implementierung des APIs ist austauschbar (pluggable). Die vier grundlegenden [[Schnittstelle]]n sind:&lt;br /&gt;
* das [[Document Object Model]] Parser-Schnittstelle oder &amp;#039;&amp;#039;&amp;#039;DOM&amp;#039;&amp;#039;&amp;#039;-Schnittstelle&lt;br /&gt;
* das [[Simple API for XML]] Parser-Schnittstelle oder &amp;#039;&amp;#039;&amp;#039;SAX&amp;#039;&amp;#039;&amp;#039;-Schnittstelle&lt;br /&gt;
* das [[StAX | Streaming API for XML]] oder &amp;#039;&amp;#039;&amp;#039;StAX&amp;#039;&amp;#039;&amp;#039;-Schnittstelle (hinzugefügt in JDK 6; separat als Jar verfügbar für JDK 5)&lt;br /&gt;
* die [[XSL Transformation|XSLT]]-Schnittstelle, um Transformationen an Daten und Strukturen eines XML-Dokuments zu ermöglichen.&lt;br /&gt;
&lt;br /&gt;
Das J2SE 1.4 JDK war die erste [[Java Development Kit|JDK]]-Version, die mit einer Implementierung der JAXP 1.1 veröffentlicht wurde, die aktuelle JSE wird mit [[Apache Software Foundation|Apache]] [[Xerces]] und einer angepassten Variante von [[Xalan]] (für XSLT) ausgeliefert.&lt;br /&gt;
&lt;br /&gt;
== Versionierung ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! [[Java Platform, Standard Edition|Java SE]] Version !! beinhaltete JAXP Version&lt;br /&gt;
|-&lt;br /&gt;
| 1.4 || 1.1&lt;br /&gt;
|-&lt;br /&gt;
| 1.5 || 1.3&lt;br /&gt;
|-&lt;br /&gt;
| 1.6 || 1.4&lt;br /&gt;
|-&lt;br /&gt;
| 1.7.0 || 1.4.5&lt;br /&gt;
|-&lt;br /&gt;
| 1.7.40 || 1.5&lt;br /&gt;
|-&lt;br /&gt;
| 1.8 || 1.6&amp;lt;ref&amp;gt;https://www.jcp.org/en/jsr/detail?id=206&amp;lt;/ref&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== DOM-Schnittstelle ==&lt;br /&gt;
Die DOM-Schnittstelle ist sehr einfach aufgebaut. Sie parst ein ganzes XML-Dokument und erstellt eine vollständige „in memory“-Darstellung des Dokuments. Dabei benutzt es die Klassen und Konzepte der Spezifikation, die unter [[Document Object Model]] (DOM) Level 2 Core Specification&amp;lt;ref&amp;gt;https://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113&amp;lt;/ref&amp;gt; einsehbar ist.&lt;br /&gt;
&lt;br /&gt;
Der DOM-Parser wird DocumentBuilder genannt, da er eine in-memory-Dokumentendarstellung liefert. Eine Instanz der Klasse &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;javax.xml.parsers.DocumentBuilder&amp;lt;/span&amp;gt; wird durch die [[Abstrakte Fabrik|Factory]]-Klasse &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;javax.xml.parsers.DocumentBuilderFactory&amp;lt;/span&amp;gt; erzeugt. Der DocumentBuilder erstellt zunächst eine &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;org.w3c.dom.Document&amp;lt;/span&amp;gt;-Instanz in Form einer Baumstruktur, die die Knoten im XML-Dokument enthält.&lt;br /&gt;
Jeder Baumknoten in dieser Struktur implementiert die &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;org.w3c.dom.Node&amp;lt;/span&amp;gt;-Schnittstelle. Es gibt viele verschiedene Typen von Baum-Knoten, die die jeweiligen Datentypen aus dem XML-Dokument repräsentieren.&lt;br /&gt;
&lt;br /&gt;
Die wichtigsten Knoten sind:&lt;br /&gt;
* Elementknoten, eventuell mit Attributen&lt;br /&gt;
* Textknoten, die den gefundenen Text zwischen Start- und End-Tag eines Dokumentelementes widerspiegeln&lt;br /&gt;
&lt;br /&gt;
Für eine komplette Liste der Knotentypen wird auf die [[javadoc]] Documentation des Paketes &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;org.w3c.dom&amp;lt;/span&amp;gt; verwiesen.&lt;br /&gt;
&lt;br /&gt;
Mit dem DOM-API kann man &amp;#039;in beide Richtungen&amp;#039; arbeiten, also vom XML zum &amp;quot;in memory&amp;quot; DOM als auch vom DOM zum XML. Es eignet sich also nicht nur zum &amp;quot;parsen&amp;quot; von XML, sondern auch zum Generieren von XML (-Streams oder -Files).&lt;br /&gt;
&lt;br /&gt;
== SAX-Schnittstelle ==&lt;br /&gt;
Der SAX-Parser, auch SAXParser genannt, wird durch &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;javax.xml.parsers.SAXParserFactory&amp;lt;/span&amp;gt; erstellt. Im Gegensatz zum DOM-Parser erstellt der SAXParser keine &amp;quot;in-memory&amp;quot;-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 [[Rückruffunktion]]en (Callbacks), d.&amp;amp;nbsp;h., es werden Methoden der DefaultHandler-Instanz, die dem Parser zur Verfügung stehen, ausgeführt.&lt;br /&gt;
&lt;br /&gt;
Die DefaultHandler-Klasse befindet sich im Paket &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;org.xml.sax.helpers&amp;lt;/span&amp;gt;. Diese implementiert den ContentHandler, den ErrorHandler, den DTDHandler und die EntityResolver-Schnittstelle. Die meisten Clients interessieren sich für die Methoden aus der ContentHandler-Schnittstelle.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
* die &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;startDocument()&amp;lt;/span&amp;gt; und &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;endDocument()&amp;lt;/span&amp;gt;-Methode, die am start- und am end-tag eines XML-Dokumentes aufgerufen werden.&lt;br /&gt;
* die &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;startElement()&amp;lt;/span&amp;gt; und &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;endElement()&amp;lt;/span&amp;gt;-Methode, die am start- und am end-tag eines Dokumentelementes aufgerufen werden.&lt;br /&gt;
* die &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;characters()&amp;lt;/span&amp;gt;-Methode. Diese wird mit dem Inhalt, der sich zwischen start- und end-tag des jeweiligen XML-Dokumentelements befindet, aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Der Client bietet eine Unterklasse des &amp;lt;span style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;DefaultHandlers&amp;lt;/span&amp;gt; an, der diese Methoden überschreibt und die Daten verarbeitet. Dies kann auch das Ablegen der Daten in eine Datenbank oder das Schreiben in einen [[Datenstrom|stream]] beinhalten.&lt;br /&gt;
&lt;br /&gt;
Mit dem SAX-API kann man &amp;#039;nur in eine Richtung&amp;#039; arbeiten, und zwar vom XML &amp;#039;hinein&amp;#039; in Java. Es eignet sich also ausschließlich zum &amp;quot;parsen&amp;quot; von XML. Mit SAX kann man also kein XML (-Streams oder -Files) erzeugen.&lt;br /&gt;
&lt;br /&gt;
== XMLPULL-Schnittstelle ==&lt;br /&gt;
Seit 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 ähnlich wie SAX, nur dass der Parser nicht wie bei SAX Informationen an die Applikation über einen Event-Mechanismus schickt ([[Push-Model|&amp;quot;PUSH&amp;quot;]]), sondern die Anwendung holt sich die nächsten Informationen selbst, wenn sie sie benötigt (&amp;quot;[[Pull-Model|PULL]]&amp;quot;). XMLPULL Parser sind üblicherweise performanter als SAX Parser.&lt;br /&gt;
&lt;br /&gt;
== XSLT-Schnittstelle ==&lt;br /&gt;
Die E&amp;#039;&amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;#039;tensible &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039;tylesheet &amp;#039;&amp;#039;&amp;#039;L&amp;#039;&amp;#039;&amp;#039;anguage for &amp;#039;&amp;#039;&amp;#039;T&amp;#039;&amp;#039;&amp;#039;ransformations, abgekürzt &amp;#039;&amp;#039;&amp;#039;[[XSL Transformation|XSLT]]&amp;#039;&amp;#039;&amp;#039;, erlaubt die Konvertierung eines XML-Dokumentes in andere Formen von Daten.&lt;br /&gt;
&lt;br /&gt;
== XSD-Validierung ==&lt;br /&gt;
Validierung von [[XML Schema|XSD]]-Dateien wird ab JAXP 1.2 unterstützt. JAXP 1.2 ist ab JSE 6.0 und J2EE 1.4 Teil der Java-Plattform.&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://jaxp.java.net/ Oracles JAXP Produktbeschreibung]&lt;br /&gt;
* Beispielprogramm, das den DOM Parser und den SAX Parser benutzt [http://totheriver.com/learn/xml/xmltutorial.html Tutorial: XML with Xerces for Java]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:XML]]&lt;br /&gt;
[[Kategorie:Java-Programmierschnittstelle]]&lt;/div&gt;</summary>
		<author><name>imported&gt;SchlurcherBot</name></author>
	</entry>
</feed>