2016-06-21 27 views
7

non riesco a trovare alcuna informazione su org.w3c.dom.ls.LSParser. So che è un'interfaccia, ma c'è un solo modo per ottenere un oggetto concreto afaik.Java: Qual è la differenza tra LSParser e DocumentBuilder

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

Come è diverso da LSParser javax.xml.parsers.DocumentBuilder (o SAXParser)

risposta

2

In primo luogo, un SAXParser è diverso dal javax.xml.parsers.DocumentBuilder e LSParser, in quanto i flussi attraverso l'XML, invece di costruire un Document Object Model (DOM).

Questo ci lascia con spiegando javax.xml.parsers.DocumentBuilder e LSParser. Le specifiche DOM hanno livelli per definire la struttura e il comportamento del DOM. Ci sono tre livelli. (1, 2 e 3). LSParser sta per "Load and Save Parser". Questo Parser fornisce il supporto per DOM Level 3. Esso implementa il comportamento definito qui - https://www.w3.org/TR/DOM-Level-3-LS/load-save.html. Poiché LSParser supporta lo standard DOM Level 3, consente la gestione degli eventi (quando il DOM è caricato), il salvataggio e il filtraggio. Nota che questa è una specifica, quindi può essere implementata in qualsiasi lingua.

Al contrario, javax.xml.parsers.DocumentBuilder è una base API Java (JAXP). È un progetto, non una spec.

LSParser spec è stata influenzata sia dal JAXP e progetti SAX. Ha semplicemente standardizzato l'analisi di XML e l'utilizzo del DOM.

Riferimenti: https://www.amazon.com/Processing-XML-documents-Oracle-JDeveloper/dp/1847196667 (consultare il capitolo 7 - relativo a questo argomento).

https://www.w3.org/TR/DOM-Level-3-LS/load-save.html (questa è la specifica completa).

Problemi correlati