`

Java XML -JAXP 为XML处理的Java API

 
阅读更多
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的三种基本接口为
[b]DOM接口 [/b]
解析器解析整个XML文档并构造出该文档的一个完整的内存表示
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中引入的。

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

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)以及处理器自己的实现。
分享到:
评论

相关推荐

    XML_JAVA指南.rar_WORKING_java Tutorial_java xml_jaxp_xml

    Working with XML The Java API for Xml Parsing (JAXP) Tutorial

    Java and XML, 3rd Edition

    《Java与XML》(第三版)的内容涵盖了所有主要的Java XML处理库程序,全面讲解了SAX、DOM、StAX、JDOM以及dom4j的应用程序编程接口,同时还囊括了最新版本的用于XML处理的Java应用程序编程接口(JAXP)和用于XML绑定...

    xalanjava源码-sxml-jaxp:用于在JAXP中使用SXML启发的XML表示的Clojure库

    java源码sxml-jaxp sxml-jaxp是一个工具库,用于将 SXML 启发的 XML 表示与 Java XML 基础结构一起使用。 它在内部使用 JAXP,因此它不依赖于任何特定的 XML 库,尽管作者已使用 OpenJDK 默认的 Xerces/Xalan 和 ...

    JSR 206 Java API for XML Processing (JAXP) 1.3

    JSR 206 Java API for XML Processing (JAXP) 1.3

    XML和JSP交互技术

    一个很实用的技术就是如何将XML和JSP结合起来,所幸的是我们不用去写底支持层东西了,因为很多厂商如SUN、IBM等都发布了自己的支持XML的API,其中SUN公司提供了一个支持在Java下使用XML的API-JAXP(JAVATM API for ...

    JAXP 专述――Sun 的 Java API for XML 语法分析

    供学习java xml参考

    Java and XML(英文第三版)

    including full coverage of the SAX, DOM, StAX, JDOM, and dom4j APIs as well as the latest version of the Java API for XML Processing (JAXP) and Java Architecture for XML Binding (JAXB). The chapters ...

    JAVA与XML.rar

    《Java与XML》(第三版)的内容涵盖了所有主要的Java XML处理库程序,全面讲解了SAX、DOM、StAX、JDOM以及dom4j的应用程序编程接口,同时还囊括了最新版本的用于XML处理的Java应用程序编程接口(JAXP)和用于XML绑定...

    Java中关于XML的API

    1、JAXP(Java API for XML Parsing) 2、JAXB(Java API for XML Binding) 3、JAXM(Java API for XML Messaging) 4、JAX-RPC(Java API for XML-RPC) 1、JAXP定义了在Java中使用DOM, SAX, XSLT的通用的接口。...

    The Java API for XML Parsing Tutorial

    Sun - The Java API for XML Parsing Tutorial (JAXP) - 2001 - (By Laxxuss).chm

    使用JAXP处理XML文件.pdf

    JAXP是JAVA API for XML Processing的缩写。本教程属于清晰版

    High-Performance XML Processing

    (eBook) - Computers - JAVA+XML - ts2599 - High-Performance XML Processing - Techniques & Tips With the Java API for XML Processing (JAXP) 1.3.pdf

    Sun 的 Java API for XML 语法分析

    这是篇细探 JAXP,Sun 的 Java API for XML 的文章,帮助解除了有关 JAXP 本质和服务目的的疑惑。本文讲解了 JAXP 的基本概念,演示 XML 语法分析为什么需要 JAXP,并显示如何轻易更改 JAXP 使用的语法分析器。本文...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    全书一共被压缩为5个rar,这是第二个!!!! 其他的请看ID:ljtt123(本人分享) 本博客提供的所有教程的资源原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播。同时,转载时不要移除本申明。如产生任何...

    Java中四种XML解析技术

    DOM 将 XML 文档表示为一个层次结构的节点或信息片断的集合,允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。DOM 的优点是可以修改树以便应用程序能对数据和...

    jing-jaxp-test

    喝杯咖啡,然后进行mvn test 。 使用Jing通过JAXP API验证带有名称空间的XML文件。 展位有效和无效的xml文件都经过测试。 与相关

    java-xmlbuilder:XML Builder是一种实用程序,它允许使用相对稀疏的Java代码来构造简单的XML文档

    在内部,XML Builder使用JAXP构建标准的W3C文档模型(DOM),您可以轻松地将其导出为字符串,或者在有特殊要求时直接访问以进行进一步操作。 执照 XMLBuilder与XMLBuilder2 从1.1版开始,此库提供了两个构建器实现...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    全书一共被压缩为5个rar,这是第三个!!!! 其他的请看ID:ljtt123(本人分享) 本博客提供的所有教程的资源原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播。同时,转载时不要移除本申明。如产生任何...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    全书一共被压缩为5个rar,这是第四个!!!! 其他的请看ID:ljtt123(本人分享) 本博客提供的所有教程的资源原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播。同时,转载时不要移除本申明。如产生任何...

Global site tag (gtag.js) - Google Analytics