Javanische API für die XML-Verarbeitung

Die javanische API für die XML-Verarbeitung oder JAXP , ist eines Javas XML, der APIs programmiert. Es stellt die Fähigkeit zur Bestätigung und Syntaxanalyse XML Dokumente zur Verfügung. Die drei grundlegenden Syntaxanalyse-Schnittstellen sind:

  • das Dokumentengegenstand-Modell, das Schnittstelle oder DOM grammatisch analysiert, verbindet
  • die Einfache API für XML, der Schnittstelle oder SAXOFON grammatisch analysiert, verbindet
  • die Strömende API für XML oder Schnittstelle von StAX (ein Teil von JDK 6; getrenntes Glas, das für JDK 5) verfügbar
ist

Zusätzlich zu den Syntaxanalyse-Schnittstellen stellt die API eine XSLT-Schnittstelle zur Verfügung, um Daten und Strukturtransformationen auf einem XML Dokument zur Verfügung zu stellen. JAXP wurde unter dem javanischen Gemeinschaftsprozess als JSR 5 (JAXP 1.0) und JSR 63 (JAXP 1.1 und 1.2) entwickelt.

JAXP Version 1.4.4 wurde am 3. September 2010 veröffentlicht. JAXP 1.3 war end-of-lifed am 12. Februar 2008.

DOM Schnittstelle

Die DOM-Schnittstelle ist vielleicht am leichtesten zu verstehen. Es analysiert ein komplettes XML Dokument grammatisch und baut eine ganze Darstellung im Gedächtnis des Dokumentes mit den Klassen, die in der Kernspezifizierung des Niveaus 2 von Document Object Model (DOM) gefundenen Konzepte modellierend.

Der DOM parser wird a genannt, weil es eine Darstellung im Gedächtnis baut. Geschaffen durch zu sein. Das Schaffen eines Beispiels, das eine Baumstruktur ist, die Knoten im XML Dokument enthält. Jeder Baumknoten in der Struktur führt die Schnittstelle durch. Es gibt viele verschiedene Typen von Baumknoten, den Typ von in einem XML Dokument gefundenen Daten vertretend. Die wichtigsten Knotentypen sind:

  • Element-Knoten, die Attribute haben können
  • Textknoten, die den Text vertreten, der zwischen dem Anfang und den Endanhängseln eines Dokumentenelements gefunden ist.

Beziehen Sie sich auf die Dokumentation von Javadoc des javanischen Pakets für eine ganze Liste von Knotentypen.

SAXOFON-Schnittstelle

Das SAXOFON parser wird genannt und wird durch geschaffen. Verschieden vom DOM parser schafft das SAXOFON parser keine Darstellung im Gedächtnis des XML Dokumentes und ist so schneller und verwendet weniger Gedächtnis. Statt dessen informiert das SAXOFON parser Kunden der XML Dokumentenstruktur durch das Hervorrufen von Rückrufaktionen, d. h. durch das Hervorrufen von Methoden auf einem dem parser zur Verfügung gestellten Beispiel. Diese Weise, auf Dokument zuzugreifen, wird genannt, XML Verströmend.

Die Klasse führt, und die Schnittstellen durch. Die meisten Kunden werden sich für in der Schnittstelle definierte Methoden interessieren, die genannt werden, wenn das SAXOFON parser auf die entsprechenden Elemente im XML Dokument stößt. Die wichtigsten Methoden in dieser Schnittstelle sind:

  • und Methoden, die am Anfang und Ende eines XML Dokumentes genannt werden.
  • und Methoden, die am Anfang und Ende eines Dokumentenelements genannt werden.
  • Methode, die mit dem Textdateninhalt genannt wird, der zwischen dem Anfang und den Endanhängseln eines XML Dokumentenelements enthalten ist.

Kunden stellen eine Unterklasse zur Verfügung, der diese Methoden überreitet und die Daten bearbeitet. Das kann Speicherung der Daten in eine Datenbank einschließen oder es zu einem Strom ausschreibend.

Während der Syntaxanalyse muss der parser eventuell auf Außendokumente zugreifen. Es ist möglich, ein lokales geheimes Lager für oft verwendete Dokumente mit einem XML Katalog zu versorgen.

Das wurde mit Java 1.3 im Mai 2000 eingeführt.

Schnittstelle von StAX

StAX wurde als eine Mittellinie zwischen dem DOM und der SAXOFON-Schnittstelle entworfen. In seiner Metapher ist der programmatic Zugang-Punkt ein Cursor, der einen Punkt innerhalb des Dokumentes vertritt. Die Anwendung treibt den Cursor - 'das Ziehen' der Information vom parser vorwärts, weil es braucht. Das ist von der gestützten API eines Ereignisses - wie SAXOFON verschieden - der Daten zur Anwendung - das Verlangen die Anwendung 'stößt', Staat zwischen Ereignissen als notwendig aufrechtzuerhalten, um die Position innerhalb des Dokumentes nachzugehen.

XSLT Schnittstelle

Der XML Stylesheet Sprache für Transformationen oder XSLT, berücksichtigt Konvertierung eines XML Dokumentes in andere Formen von Daten. JAXP stellt Schnittstellen in Paket-Erlauben-Anwendungen zur Verfügung, um eine XSLT Transformation anzurufen. Diese Schnittstelle wurde TrAX (Transformations-API für XML) ursprünglich genannt, und wurde durch eine informelle Kollaboration zwischen den Entwicklern von mehreren Java XSLT Verarbeiter entwickelt.

Haupteigenschaften der Schnittstelle sind

  • eine Fabrikklasse, die die Anwendung erlaubt, dynamisch auszuwählen, welchen XSLT Verarbeiter es verwenden
möchte
  • Methoden auf der Fabrikklasse, um einen Schablone-Gegenstand zu schaffen, die kompilierte Form eines stylesheet vertretend. Das ist ein vor dem Faden sicherer Gegenstand, der wiederholt der Reihe nach oder in der Parallele verwendet werden kann, um denselben stylesheet auf vielfache Quelldokumente (oder auf dasselbe Quelldokument mit verschiedenen Rahmen) (TransformerFactory.newTemplates anzuwenden (javax.xml.transform. Quelle), auch,)
  • eine Methode auf den Schablonen protestiert, um einen Transformator zu schaffen, die rechtskräftige Form eines stylesheet vertretend. Das kann über Fäden nicht geteilt werden, obwohl es serienmäßig wiederverwendbar ist. Der Transformator stellt Methoden zur Verfügung, stylesheet Parameter und Anordnungsoptionen aufzustellen (zum Beispiel, ob Produktion eingedrückt werden sollte), und eine Methode, wirklich die Transformation zu führen.

Zwei Auszug verbindet Quelle, und Ergebnis werden definiert, um den Eingang und die Produktion der Transformation zu vertreten. Das ist ein etwas unkonventioneller Gebrauch von javanischen Schnittstellen, da es keine Erwartung gibt, dass ein Verarbeiter jede Klasse akzeptieren wird, die die Schnittstelle durchführt - kann jeder Verarbeiter wählen, welche Arten der Quelle oder des Ergebnisses es bereit ist zu behandeln. In der Praxis unterstützen alle JAXP Verarbeiter die drei Standardarten , und die drei Standardarten , und vielleicht andere Durchführungen ihres eigenen.

Beispiel

Das primitivste, aber ganze Beispiel des xslt Transformationsstapellaufs kann wie das aussehen:

/* Datei src/examples/xslt/XsltDemo.java * /

Paket examples.xslt;

Import java.io. StringReader;

Import java.io. StringWriter;

Import javax.xml.transform. Transformator;

Import

javax.xml.transform.TransformerException;

Import

javax.xml.transform.TransformerFactory;

Import

javax.xml.transform.TransformerFactoryConfigurationError;

Import

javax.xml.transform.stream.StreamResult;

Import

javax.xml.transform.stream.StreamSource;

öffentliche Klasse XsltDemo {\

öffentliche statische leere Hauptsache (Schnur [] args) wirft TransformerFactoryConfigurationError, TransformerException {\

Spannen Sie xsltResource =

"

"

"\n" +

"

"\n" +

"</xsl:template> \n" +

" </xsl:stylesheet>";

Spannen Sie xmlSourceResource =

"

"";

StringWriter xmlResultResorce = neuer StringWriter ;

Transformator xmlTransformer = TransformerFactory.newInstance .newTransformer (

neuer StreamSource (neuer StringReader (xsltResource))

);

xmlTransformer.transform (

neuer StreamSource (neuer StringReader (xmlSourceResource)), neuer StreamResult (xmlResultResorce)

);

System.out.println (xmlResultResorce.getBuffer .toString );

}\

}\

</Quelle>

Es wendet im Anschluss an hardcoded xslt Transformation an

</xsl:template>

</xsl:stylesheet>

</Quelle>

Zum folgenden hardcoded xml Dokument:

</Quelle>

Das Ergebnis der Ausführung wird sein

</Quelle>

Außenverbindungen


Philip Larkin / Billy Joel
Impressum & Datenschutz