fbpx
维基百科

JAXP

JAXPJava API for XML Processing,意为XML处理的Java API)是Java XML程序设计应用程序接口之一,它提供解析和验证XML文档的能力。JAXP是在Java社区进程下开发的,包括JSR 5 (JAXP 1.0)和 JSR 63 (JAXP 1.1和1.2)两个规范。

JAXP解析XML的三种基本接口为:

除了解析接口,JAXP还提供了XSLT接口用来对XML文档进行数据和结构的转换。

DOM接口

DOM接口可能最容易理解。解析器解析整个XML文档并构造出该文档的一个完整的内存表示,使用类对文档对象模型(DOM)级别2核心规范[1]中的概念进行建模。

DOM解析器被称作DocumentBuilder,因为它构建一个内存中的Document表示。javax.xml.parsers.DocumentBuilder是由javax.xml.parsers.DocumentBuilderFactory创建的。DocumentBuilder创建org.w3c.dom.Document的实例,Document是一个包含XML文档中的所有节点的树。结构中的每一个树节点实现org.w3c.dom.Node接口。树节点有许多不同类型的,表示XML文档中不同的数据类型。最重要的节点类型有:

  • 元素节点,具有许多属性
  • 文本节点,代表文档元素开始和结束标签之间的文字。

节点类型的完整列表,请参见org.w3c.dom包中的Javadoc文档。

SAX接口

SAX解析器被称作SAXParser,SAXParser是由javax.xml.parsers.SAXParserFactory创建的。与DOM解析器不同,SAX解析器并不创建XML文档的内存表示,因此要更快使用更少的内存。而是,SAX解析器通过调用回调方法将XML文档结构告知客户端,也就是说,通过调用提供给解析器的org.xml.sax.helpers.DefaultHandler实例上的方法。

DefaultHandler类实现了ContentHandlerErrorHandlerDTDHandler以及EntityResolver等接口。大多数客户端甘心ContentHandler接口中定义的方法,当SAX解析器在XML文档中遇到元素时,相应的方法将被调用。接口中最重要的方法有:

  • startDocument()endDocument()方法,当XML文档的开始和结束时被调用。
  • startElement()endElement()方法,当一个文档元素开始和结束时被调用。
  • characters()方法,调用处理XML文档元素的开始标签和结束标签之间的文本数据。

客户端提供一个DefaultHandler的子类,实现这些方法,并在方法中对数据进行处理,可能会将数据存入数据库,或写出到流中。

在解析过程中,解析器可能需要访问外部文档。因此可能会使用XML Catalog将经常使用的XML文档存储在本地的缓存中。

SAX接口是在2000年5月发布的Java 1.3中引入的。[2]

StAX接口

StAX的设计介于DOM和SAX接口之间,在它的隐喻中,程序的入口点是一个代表文档中一个位置的光标。应用程序可以按需向前移动光标 – 从解析器中“拉”出信息。这与基于事件的API(如SAX)不同,SAX将数据“推”给应用程序,要求应用程序维护事件间的状态,如果应用需要知道在文档中的位置信息。

XSLT接口

XSLT(可扩展样式表转换语言)允许将XML文档转换为数据其他形式。应用程序使用javax.xml.transform包中的接口可以进行XSLT转换。接口最初被称为TrAX (Transformation API for XML),是由许多Java XSLT处理器的开发人员通过非正式协作开发的。

接口的主要特性包括:

  • 工厂类javax.xml.transform.TransformerFactory可以使应用动态地选择使用哪一个XSLT处理器。
  • TransformerFactory上的方法用来创建javax.xml.transform.Templates对象, 表示样式表的编译后的形式。这是一个线程安全的对象,可以重复使用,顺序或并发,在多个源文档上应用同一个样式表(或用用一个源文档,不同的参数)
  • Templates上的方法可以创建javax.xml.transform.Transformer,表示样式表的可执行形式。Transformer不可以在线程间共享,虽然也是可重用的。Transformer提供方法设置样式表参数和序列化选项(例如,输出是否缩进),以及一个实际运行转换的方法。

JAXP定义了javax.xml.transform.Sourcejavax.xml.transform.Result两个抽象接口来表示转换的输入和输出。某种程度上,这是非常规使用Java接口,这是因为并不期待一个处理器会接受任何实现该接口的类,每一个处理器可以选择支持那些SourceResult的处理。实际上所有JAXP处理器支持三种标准类型的SourceDOMSourceSAXSourceStreamSource)以及三种标准类型的ResultDOMResultSAXResultStreamResult)以及处理器自己的实现。

版本

J2SE版本 其中的JAX版本
1.4 1.1
1.5 1.3
1.6 1.4

JAXP 1.4.4于2010年9月3日发布。JAXP 1.3已经于2008年2月12日产品终结。[3]

参见

外部链接

参考文献

  1. ^ Document Object Model(DOM) Level 2 Core Specification. [2011-04-01]. (原始内容于2020-12-19). 
  2. ^ Compare the Java 1.2.1 API index (页面存档备份,存于互联网档案馆) with the 1.3 index (页面存档备份,存于互联网档案馆). The Java Specification Request (JSR) 5, XML Parsing Specification, was finalised on 21 March, 2000 (页面存档备份,存于互联网档案馆).
  3. ^ [1][永久失效連結]


jaxp, java, processing, 意为xml处理的java, 是java, xml程序设计的应用程序接口之一, 它提供解析和验证xml文档的能力, 是在java社区进程下开发的, 包括jsr, 1和1, 两个规范, 解析xml的三种基本接口为, 文档对象模型解析接口或dom接口, xml简单api解析接口或sax接口, xml流api或stax接口, 是jdk, 6的一部分, 为jdk, 5提供单独的包, 除了解析接口, 还提供了xslt接口用来对xml文档进行数据和结构的转换, 目录, dom接口,. JAXP Java API for XML Processing 意为XML处理的Java API 是Java XML程序设计的应用程序接口之一 它提供解析和验证XML文档的能力 JAXP是在Java社区进程下开发的 包括JSR 5 JAXP 1 0 和 JSR 63 JAXP 1 1和1 2 两个规范 JAXP解析XML的三种基本接口为 文档对象模型解析接口或DOM接口 XML简单API解析接口或SAX接口 XML流API或StAX接口 是JDK 6的一部分 为JDK 5提供单独的包 除了解析接口 JAXP还提供了XSLT接口用来对XML文档进行数据和结构的转换 目录 1 DOM接口 2 SAX接口 3 StAX接口 4 XSLT接口 5 版本 6 参见 7 外部链接 8 参考文献DOM接口 编辑DOM接口可能最容易理解 解析器解析整个XML文档并构造出该文档的一个完整的内存表示 使用类对文档对象模型 DOM 级别2核心规范 1 中的概念进行建模 DOM解析器被称作DocumentBuilder 因为它构建一个内存中的Document表示 javax xml parsers DocumentBuilder是由javax xml parsers DocumentBuilderFactory创建的 DocumentBuilder创建org w3c dom Document的实例 Document是一个包含XML文档中的所有节点的树 结构中的每一个树节点实现org w3c dom Node接口 树节点有许多不同类型的 表示XML文档中不同的数据类型 最重要的节点类型有 元素节点 具有许多属性 文本节点 代表文档元素开始和结束标签之间的文字 节点类型的完整列表 请参见org w3c dom包中的Javadoc文档 SAX接口 编辑SAX解析器被称作SAXParser SAXParser是由javax xml parsers SAXParserFactory创建的 与DOM解析器不同 SAX解析器并不创建XML文档的内存表示 因此要更快使用更少的内存 而是 SAX解析器通过调用回调方法将XML文档结构告知客户端 也就是说 通过调用提供给解析器的org xml sax helpers DefaultHandler实例上的方法 DefaultHandler类实现了ContentHandler ErrorHandler DTDHandler以及EntityResolver等接口 大多数客户端甘心ContentHandler接口中定义的方法 当SAX解析器在XML文档中遇到元素时 相应的方法将被调用 接口中最重要的方法有 startDocument 和endDocument 方法 当XML文档的开始和结束时被调用 startElement 和endElement 方法 当一个文档元素开始和结束时被调用 characters 方法 调用处理XML文档元素的开始标签和结束标签之间的文本数据 客户端提供一个DefaultHandler的子类 实现这些方法 并在方法中对数据进行处理 可能会将数据存入数据库 或写出到流中 在解析过程中 解析器可能需要访问外部文档 因此可能会使用XML Catalog将经常使用的XML文档存储在本地的缓存中 SAX接口是在2000年5月发布的Java 1 3中引入的 2 StAX接口 编辑StAX的设计介于DOM和SAX接口之间 在它的隐喻中 程序的入口点是一个代表文档中一个位置的光标 应用程序可以按需向前移动光标 从解析器中 拉 出信息 这与基于事件的API 如SAX 不同 SAX将数据 推 给应用程序 要求应用程序维护事件间的状态 如果应用需要知道在文档中的位置信息 XSLT接口 编辑XSLT 可扩展样式表转换语言 允许将XML文档转换为数据其他形式 应用程序使用javax xml transform包中的接口可以进行XSLT转换 接口最初被称为TrAX Transformation API for XML 是由许多Java XSLT处理器的开发人员通过非正式协作开发的 接口的主要特性包括 工厂类javax xml transform TransformerFactory可以使应用动态地选择使用哪一个XSLT处理器 TransformerFactory上的方法用来创建javax xml transform Templates对象 表示样式表的编译后的形式 这是一个线程安全的对象 可以重复使用 顺序或并发 在多个源文档上应用同一个样式表 或用用一个源文档 不同的参数 Templates上的方法可以创建javax xml transform Transformer 表示样式表的可执行形式 Transformer不可以在线程间共享 虽然也是可重用的 Transformer提供方法设置样式表参数和序列化选项 例如 输出是否缩进 以及一个实际运行转换的方法 JAXP定义了javax xml transform Source和javax xml transform Result两个抽象接口来表示转换的输入和输出 某种程度上 这是非常规使用Java接口 这是因为并不期待一个处理器会接受任何实现该接口的类 每一个处理器可以选择支持那些Source和Result的处理 实际上所有JAXP处理器支持三种标准类型的Source DOMSource SAXSource StreamSource 以及三种标准类型的Result DOMResult SAXResult StreamResult 以及处理器自己的实现 版本 编辑J2SE版本 其中的JAX版本1 4 1 11 5 1 31 6 1 4JAXP 1 4 4于2010年9月3日发布 JAXP 1 3已经于2008年2月12日产品终结 3 参见 编辑SAX DOM StAX XSLT JAXB Dom4j JDOM Saxon XALAN外部链接 编辑JAXP 产品描述 页面存档备份 存于互联网档案馆 JSR 63 页面存档备份 存于互联网档案馆 JAXP 1 1和1 2 JSR 5 页面存档备份 存于互联网档案馆 JAXP 1 0 参考文献 编辑 Document Object Model DOM Level 2 Core Specification 2011 04 01 原始内容存档于2020 12 19 Compare the Java 1 2 1 API index 页面存档备份 存于互联网档案馆 with the 1 3 index 页面存档备份 存于互联网档案馆 The Java Specification Request JSR 5 XML Parsing Specification was finalised on 21 March 2000 页面存档备份 存于互联网档案馆 1 永久失效連結 取自 https zh wikipedia org w index php title JAXP amp oldid 64155195, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。