2016-06-21 10 views
7

Ich kann keine Informationen zu org.w3c.dom.ls.LSParser finden. Ich weiß, dass es eine Schnittstelle ist, aber es gibt nur einen Weg, ein konkretes Objekt zu erhalten.Java: Was ist der Unterschied zwischen LSParser und DocumentBuilder

DOMImplementationLS factory = (DOMImplementationLS) myXMLDocument.getImplementation(); 
LSParser parser = factory.createLSParser(DOMImplementationLS.MODE_ASYNCHRONOUS, null); 

Wie ist LSParser unterscheidet sich von javax.xml.parsers.DocumentBuilder (oder SAXParser)

Antwort

2

Zuerst wird ein SAXParser vom javax.xml.parsers.DocumentBuilder und LSParser anders ist, dass es durch die XML-Streams, statt Gebäude ein Document Object Model (DOM).

Das erklärt uns javax.xml.parsers.DocumentBuilder und LSParser. Die DOM-Spezifikation verfügt über Ebenen, um die Struktur und das Verhalten des DOM zu definieren. Es gibt drei Ebenen. (1, 2 und 3). LSParser steht für "Load and Save Parser". Dieser Parser bietet Unterstützung für DOM Level 3. Er implementiert das hier definierte Verhalten - https://www.w3.org/TR/DOM-Level-3-LS/load-save.html. Da LSParser den DOM Level 3-Standard unterstützt, ermöglicht es die Ereignisbehandlung (wenn DOM geladen wird), das Speichern und Filtern. Beachten Sie, dass dies eine Spezifikation ist, so dass sie in jeder Sprache implementiert werden kann.

Im Gegensatz dazu ist javax.xml.parsers.DocumentBuilder eine Java-basierte API (JAXP). Es ist ein Projekt, keine Spezifikation.

Die LSParser-Spezifikation wurde sowohl von den JAXP- als auch den SAX-Projekten beeinflusst. Es standardisierte lediglich das Parsen von XML und das Verwenden des DOM.

Referenzen: https://www.amazon.com/Processing-XML-documents-Oracle-JDeveloper/dp/1847196667 (siehe Kapitel 7 - relevant für dieses Thema).

https://www.w3.org/TR/DOM-Level-3-LS/load-save.html (dies ist die vollständige Spezifikation).

Verwandte Themen