[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

STAXとは? わかりやすく解説

Streaming API for XML

(STAX から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2009/09/17 01:30 UTC 版)

Streaming API for XMLStAX)は、JavaXML文書を読み書きするためのAPIである。

従来のXML APIは、次のどちらかである。

  • ツリーベース - 文書全体がツリー構造でメモリに読み込まれ、呼び出し元アプリケーションはランダムアクセスできる。
  • イベントベース - 文書内に出現したエンティティごとに、登録されたアプリケーションがイベントを受け取る。

これらはそれぞれに利点がある。前者(例えばDOM)は文書へのランダムアクセスが可能であり、後者(例えばSAX)は使用メモリが少なくより高速に動作する場合が多い。

この2つは対極に位置するアクセス手法であると言える。ツリーベースのAPIは制約のないランダムアクセスとデータの操作が可能である一方、イベントベースのAPIは文書を1回スキャンするだけである。

StAXは、その中間の手法として設計された。StAXの考え方では、プログラムの操作点は文書内のある地点を指すカーソルである。アプリケーションがカーソルを進めるということは、必要に応じて自分がパーサーから情報を取り出すことになる(pull型)。これはSAXのようなイベントベースのAPIとは異なる。SAXではパーサーがアプリケーションにデータを送りつけるので(push型)、アプリケーション側が文書内の位置を追跡しなければならない場合は必要に応じてイベントとイベントの間で状態を保持しておく必要がある。

目次

起源

StAXは、互換性のない多数のpull型XML APIにその起源を持つ。これらAPIのうち最も有名なXMLPULLの作者(Stefan HausteinとAleksandr Slominski)と、その他のAPIの作者であるBEAシステムズオラクルサンBreeze Factorジェームズ・クラークの協働により誕生した。

JSR-173の最終仕様、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における“StartElement”と“EndElement”に対応するメソッドを持っている。
// 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
この例では、InputFactoryをどのようにインスタンス化し、Readerを生成してXML文書中の要素を繰り返し処理するかを示す。
XMLInputFactory f = XMLInputFactory.newInstance(); 
XMLStreamReader r = f.createXMLStreamReader(... ); 
while (r.hasNext()) { 
    r.next(); 
}

実装

関連項目

JavaでXMLを構文解析するための他の方法としては、以下のものがある。

  • VTD-XML ランダムアクセスとXPathをサポートする新しい非抽出型XML処理モデル
  • DOM Document Object Model
  • JAXB Java XML Binding API
  • SAX push方式のXML API
  • Javolution は、StAXに似たリアルタイムの実装を提供する。(Stringといった)オブジェクトを生成せずに済み、メモリ使用量やガベージコレクションにも悪影響がない(注: 普通のStAX実装でオブジェクトの生成を減らすためには、ルックアップテーブルを用意して頻繁に使用されるStringオブジェクトを取り出し、再利用する必要がある)。

スタックス

(STAX から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2018/12/23 06:25 UTC 版)

ナビゲーションに移動 検索に移動

スタックス(Stax)


STAX (#2)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/10 16:50 UTC 版)

三宅裕司のいかすバンド天国に出場したバンド」の記事における「STAX (#2)」の解説

詳細不明

※この「STAX (#2)」の解説は、「三宅裕司のいかすバンド天国に出場したバンド」の解説の一部です。
「STAX (#2)」を含む「三宅裕司のいかすバンド天国に出場したバンド」の記事については、「三宅裕司のいかすバンド天国に出場したバンド」の概要を参照ください。

ウィキペディア小見出し辞書の「STAX」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

「STAX」の関連用語

STAXのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



STAXのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのStreaming API for XML (改訂履歴)、スタックス (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの三宅裕司のいかすバンド天国に出場したバンド (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS