fbpx
维基百科

StAX

XML流APIStreaming API for XML,缩写StAX)是用于读写XML文档的应用程序接口,起源于Java社群,JSR 173定义了这个API。

传统上来说,XML的API无外乎是以下两种:

  • 基于树的API- 整个文档以树的形式被读入内存,可以被调用程序随机访问。
  • 基于事件的API - 应用注册接收事件,当原XML文档遇到事体时就会产生这些事件。

两者皆有优点,前者(例如DOM)允许对文档进行随机访问,而后者(例如SAX)需要较小的内存开销,并却通常更快。

这两个方法可以认为是正好相反。基于树的API允许无限制的,随机的访问和操纵,而基于事件的API是一次性地遍历源文档。

StAX被设计为这两者的一个折中。在StAX中,程序的切入点是表示XML文档中一个位置的光标。应用程序在需要时向前移动光标,从解析器拉出信息。与基于事件的API(如SAX)将“数据推送”给应用程序不同的是,SAX需要应用程序维持时间间的状态,以保持文档内的位置信息。

起源 编辑

StAX起源于一些“拉”XML的API,最著名的是XMLPULL, 其作者(Stefan Haustein和Aleksander Ominski)与BEA Systems, 甲骨文公司, Sun, Breeze Factor(页面存档备份,存于互联网档案馆)及James Clark合作编写了这个规范。

例子 编辑

从JSR-173 Specification• Final, V1.0中摘取的例子(以合理使用方式使用)

引用:

下面的Java API显示了以光标方式读取XML的主要方法。
// Java  public interface XMLStreamReader {   public int next() throws XMLStreamException;   public boolean hasNext() throws XMLStreamException;   public String getText();   public String getLocalName();   public String getNamespaceURI();   // ...其他方法隐去 } 
写入的API与读取API的元素开始和元素结束相对应。
// Java  public interface XMLStreamWriter {   public void writeStartElement(String localName) throws XMLStreamException;  public void writeEndElement() throws XMLStreamException;   public void writeCharacters(String text) throws XMLStreamException;   // ...其他方法隐去 } 
5.3.1 XMLStreamReader
本例子说明初始化一个输入工厂,创建阅读器,并迭代XML文档中的元素。
XMLInputFactory f = XMLInputFactory.newInstance();  XMLStreamReader r = f.createXMLStreamReader(... );  while (r.hasNext()) {   r.next();  } 

实现 编辑

参见 编辑

  • 文档对象模型,基于树的XML的API
  • JDOM
  • Dom4j
  • SAX,基于事件的XML的API。
  • JAXB,基于XML解析器(通常是StAX)将XML数据绑定到Java对象上。
  • Apache Axiom,基于StAX的轻量级的XML对象模型,支持滞后构建。
  • XMLPull API
  • kXML 使用XMLPull API的J2ME上的XML解析器

外部链接 编辑

  • JSR 173 规范(页面存档备份,存于互联网档案馆
  • StAX介绍(页面存档备份,存于互联网档案馆) XML.com, Harold, Elliotte Rusty
  • 关于XML Pull(以及StAX)的设计模式,Aleksander Slominski.
  • XMLPull.org(页面存档备份,存于互联网档案馆
  • StAX和Sax的比较(页面存档备份,存于互联网档案馆
  • 提供工具类,便于开发者将StAX集成到现有的XML处理应用中。

stax, xml流api, streaming, 缩写, 是用于读写xml文档的应用程序接口, 起源于java社群, 173定义了这个api, 传统上来说, xml的api无外乎是以下两种, 基于树的api, 整个文档以树的形式被读入内存, 可以被调用程序随机访问, 基于事件的api, 应用注册接收事件, 当原xml文档遇到事体时就会产生这些事件, 两者皆有优点, 前者, 例如dom, 允许对文档进行随机访问, 而后者, 例如sax, 需要较小的内存开销, 并却通常更快, 这两个方法可以认为是正好相反, 基于树的. XML流API Streaming API for XML 缩写StAX 是用于读写XML文档的应用程序接口 起源于Java社群 JSR 173定义了这个API 传统上来说 XML的API无外乎是以下两种 基于树的API 整个文档以树的形式被读入内存 可以被调用程序随机访问 基于事件的API 应用注册接收事件 当原XML文档遇到事体时就会产生这些事件 两者皆有优点 前者 例如DOM 允许对文档进行随机访问 而后者 例如SAX 需要较小的内存开销 并却通常更快 这两个方法可以认为是正好相反 基于树的API允许无限制的 随机的访问和操纵 而基于事件的API是一次性地遍历源文档 StAX被设计为这两者的一个折中 在StAX中 程序的切入点是表示XML文档中一个位置的光标 应用程序在需要时向前移动光标 从解析器拉出信息 与基于事件的API 如SAX 将 数据推送 给应用程序不同的是 SAX需要应用程序维持时间间的状态 以保持文档内的位置信息 目录 1 起源 2 例子 3 实现 4 参见 5 外部链接起源 编辑StAX起源于一些 拉 XML的API 最著名的是XMLPULL 其作者 Stefan Haustein和Aleksander Ominski 与BEA Systems 甲骨文公司 Sun Breeze Factor 页面存档备份 存于互联网档案馆 及James Clark合作编写了这个规范 例子 编辑从JSR 173 Specification Final V1 0中摘取的例子 以合理使用方式使用 引用 下面的Java API显示了以光标方式读取XML的主要方法 Java public interface XMLStreamReader public int next throws XMLStreamException public boolean hasNext throws XMLStreamException public String getText public String getLocalName public String getNamespaceURI 其他方法隐去 写入的API与读取API的元素开始和元素结束相对应 Java public interface XMLStreamWriter public void writeStartElement String localName throws XMLStreamException public void writeEndElement throws XMLStreamException public void writeCharacters String text throws XMLStreamException 其他方法隐去 5 3 1 XMLStreamReader 本例子说明初始化一个输入工厂 创建阅读器 并迭代XML文档中的元素 XMLInputFactory f XMLInputFactory newInstance XMLStreamReader r f createXMLStreamReader while r hasNext r next 实现 编辑Sun Java Streaming XML Parser 永久失效連結 开源 作为J2SE 6的一部分发布 JSR 173的参考实现 1 Woodstox 2 开源StAX实现 以LGPL或Apache许可证发布 Aalto 3 超高性能的解析器 GPL或商业许可证 libxml2 4 页面存档备份 存于互联网档案馆 XML的C解析器和工具 MIT許可證 Expat 5 页面存档备份 存于互联网档案馆 用C写的XML解析器函数库参见 编辑文档对象模型 基于树的XML的API JDOM Dom4j SAX 基于事件的XML的API JAXB 基于XML解析器 通常是StAX 将XML数据绑定到Java对象上 Apache Axiom 基于StAX的轻量级的XML对象模型 支持滞后构建 XMLPull API kXML 使用XMLPull API的J2ME上的XML解析器外部链接 编辑JSR 173 规范 页面存档备份 存于互联网档案馆 StAX介绍 页面存档备份 存于互联网档案馆 XML com Harold Elliotte Rusty StAX教程 XMLPull模式关于XML Pull 以及StAX 的设计模式 Aleksander Slominski XMLPull org 页面存档备份 存于互联网档案馆 StAX和Sax的比较 页面存档备份 存于互联网档案馆 StAX Utils提供工具类 便于开发者将StAX集成到现有的XML处理应用中 取自 https zh wikipedia org w index php title StAX amp oldid 77009411, 维基百科,wiki,书籍,书籍,图书馆,

文章

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