Java:LSParser和DocumentBuilder有什么区别
Java: What is the difference between LSParser and DocumentBuilder
我找不到关于 org.w3c.dom.ls.LSParser
的任何信息。我知道它是一个接口,但只有一种方法可以获取具体对象 afaik。
DOMImplementationLS factory = (DOMImplementationLS) myXMLDocument.getImplementation();
LSParser parser = factory.createLSParser(DOMImplementationLS.MODE_ASYNCHRONOUS, null);
LSParser 与 javax.xml.parsers.DocumentBuilder
(或 SAXParser)有何不同
首先,SAXParser 不同于 javax.xml.parsers.DocumentBuilder 和 LSParser,因为它流经 XML,而不是构建文档对象模型 (DOM)。
剩下的就是解释 javax.xml.parsers.DocumentBuilder 和 LSParser。
DOM 规范具有定义 DOM 的结构和行为的级别。分为三个级别。 (1、2 和 3)。
LSParser 代表 "Load and Save Parser"。此解析器提供对 DOM 级别 3 的支持。它实现了此处定义的行为 - https://www.w3.org/TR/DOM-Level-3-LS/load-save.html。由于 LSParser 支持 DOM Level 3 标准,它允许事件处理(当 DOM 被加载时)、保存和过滤。请注意,这是一个规范,因此可以用任何语言实现。
相比之下,javax.xml.parsers.DocumentBuilder 是基于 Java 的 API (JAXP)。这是一个项目,而不是规范。
LSParser 规范受到了 JAXP 和 SAX 项目的影响。它只是标准化了 XML 的解析并使用了 DOM。
参考资料:
https://www.amazon.com/Processing-XML-documents-Oracle-JDeveloper/dp/1847196667(参考第 7 章 - 与此主题相关)。
https://www.w3.org/TR/DOM-Level-3-LS/load-save.html(这是完整规范)。
我找不到关于 org.w3c.dom.ls.LSParser
的任何信息。我知道它是一个接口,但只有一种方法可以获取具体对象 afaik。
DOMImplementationLS factory = (DOMImplementationLS) myXMLDocument.getImplementation();
LSParser parser = factory.createLSParser(DOMImplementationLS.MODE_ASYNCHRONOUS, null);
LSParser 与 javax.xml.parsers.DocumentBuilder
(或 SAXParser)有何不同
首先,SAXParser 不同于 javax.xml.parsers.DocumentBuilder 和 LSParser,因为它流经 XML,而不是构建文档对象模型 (DOM)。
剩下的就是解释 javax.xml.parsers.DocumentBuilder 和 LSParser。 DOM 规范具有定义 DOM 的结构和行为的级别。分为三个级别。 (1、2 和 3)。 LSParser 代表 "Load and Save Parser"。此解析器提供对 DOM 级别 3 的支持。它实现了此处定义的行为 - https://www.w3.org/TR/DOM-Level-3-LS/load-save.html。由于 LSParser 支持 DOM Level 3 标准,它允许事件处理(当 DOM 被加载时)、保存和过滤。请注意,这是一个规范,因此可以用任何语言实现。
相比之下,javax.xml.parsers.DocumentBuilder 是基于 Java 的 API (JAXP)。这是一个项目,而不是规范。
LSParser 规范受到了 JAXP 和 SAX 项目的影响。它只是标准化了 XML 的解析并使用了 DOM。
参考资料: https://www.amazon.com/Processing-XML-documents-Oracle-JDeveloper/dp/1847196667(参考第 7 章 - 与此主题相关)。
https://www.w3.org/TR/DOM-Level-3-LS/load-save.html(这是完整规范)。