JAXP
読み方:じゃっくすぴー
JAXPとは、JAVAでXMLを扱うためのAPIの一つである。
JAXPには、Document Object Modelによる構文解析インタフェースである「DOMインタフェース」、Simple API for XMLによる構文解析インタフェースである「SAXインタフェース」の他に、JAXP 1.4からは、Streaming API for XMLによる構文解析インタフェースである「StAXインタフェース」がある。
Java API for XML Processing
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2009/09/16 02:19 UTC 版)
Java API for XML Processing(JAXP)は、JavaでXMLを扱うためのAPIのひとつ。XML文書の妥当性検証や構文解析のためのインタフェースを提供する。次の2つの基本的な構文解析インタフェースを備える。
- Document Object Modelによる構文解析インタフェース (DOMインタフェース)
- Simple API for XMLによる構文解析インタフェース(SAXインタフェース)
JAXP 1.4からは、3番目のインタフェースが追加されている。
- Streaming API for XMLによる構文解析インタフェース(StAXインタフェース、JSR 173)
JAXPは、構文解析インタフェースに加え、XML文書のデータや構造の変換を行うためのXSLTインタフェースも提供している。JAXPは、Java Community Processの下でJSR 5(JAXP 1.0)、JSR 63(JAXP 1.1と1.2)、JSR 206(JAXP 1.3と1.4)として開発された。2007年現在の最新バージョンは1.4。J2SE 1.4以降はJAXPの実装を含むようになり、J2SE 5.0はJAXP 1.3の実装を、Java SE 6はJAXP1.4の実装を含んでいる。
DOMインタフェース
おそらく最も理解しやすいのがDOMインタフェースであろう。XML文書全体を構文解析し、文書内のすべての要素に相当するメモリ内表現を、Document Object Model(DOM) Level 2 Core Specificationで規定されたモデルに基づくクラスで構築する。
DOMパーサー(構文解析機)は、メモリ上にDocument
表現を構築 (build) するので、DocumentBuilder
と呼ばれる。javax.xml.parsers.DocumentBuilder
は、javax.xml.parsers.DocumentBuilderFactory
により生成される。DocumentBuilder
は、XML文書内の全ノードを含んだ木構造のorg.w3c.dom.Document
インスタンスを生成する。木構造内の各ノードは、org.w3c.dom.Node
インタフェースを実装している。ノードには、XML文書内のデータ型を表すいろいろなノードタイプがある。最も重要なノードタイプとして、次のようなものがある。
- 要素(element)ノード。属性(attribute)を持つ場合がある。
- テキスト(text)ノード。要素の開始タグと終了タグの間に記述されたテキストを表す。
全ノードタイプの一覧は、Javaパッケージorg.w3c.dom
のJavadocを参照のこと。
SAXインタフェース
SAXパーサーはSAXParser
と呼ばれ、javax.xml.parsers.SAXParserFactory
によって生成される。DOMパーサーと違い、SAXパーサーはメモリ内にXML文書の表現を作らないので、より高速でメモリ使用量が少ない。その代わりに、SAXパーサーは、コールバックを呼び出す、すなわち、あらかじめパーサーに渡しておいたorg.xml.sax.helpers.DefaultHandler
インスタンスのメソッドを呼び出すことで、XML文書の構造をクライアントに通知する。
DefaultHandler
クラスはContentHandler
、ErrorHandler
、DTDHandler
、EntityResolver
の各インタフェースを実装している。ほとんどのクライアントは、ContentHandler
インタフェースで定義されたメソッドを使うことになる。これらのメソッドは、XML文書内の対応する要素をSAXパーサーが見つけたときに呼び出される。SAXインタフェースの中でもっとも重要なメソッドとして、次のようなものがある。
startDocument()
とendDocument()
メソッド。XML文書の先頭と末尾で呼び出される。startElement()
andendElement()
メソッド。要素の開始地点と終了地点で呼び出される。characters()
メソッド。要素の開始タグと終了タグの間にあるテキストデータで呼び出される。
クライアントは、DefaultHandler
のサブクラスでこれらのメソッドをオーバーライドしてデータを処理する。処理の中でデータをデータベースに保存したり、ストリームに書き出したりすることもある。
XSLTインタフェース
XSLTは、XML文書を別の形式のデータに変換できる。
「Java API for XML Processing」の例文・使い方・用例・文例
- Javaにおける説明的プログラミング
- 私のJavaのセッティングを調整してくれましたか?
- 私のJava設定を調整していただけたのですか?
- Javaアプリケーション
- PAPIという,航空機用の経路誘導装置
- 5 月15 日の午前8 時30 分から午後3 時まで、Oceanview公園で開催される、毎年恒例のWalk for Petsについてのお知らせです。
- イベントによる収益金の半分は、捨てられたペットのための保護施設であるHome for Petsに使われ、残りはさまざまな動物福祉団体に分配されます。
- 年次監査を行うために、Bradford and Partnersの会計士たちが10 月10 日の午前10 時に当社を訪ねてくる予定です。
- Bradfordの新人会計士2 名が今年の監査を担当すると連絡がありました。
- こんにちは、Bradfordさん。
- 昨日Bradfordさんが受け取られたデスクランプについてお電話を差し上げています。
- 取り違えてしまって申し訳ありませんが、あのランプは別のお客様に送られるはずのもので、誤ってBradfordさんに配送されました。
- Bradfordさんが受け取るはずだった商品は、Anne Keeganさんからの贈り物のご注文でした。
- タックマンモデルとは、チームビルディングにおける5段階、すなわち形成(Forming)、混乱(Storming)、統一(Norming)、機能(Performing)、散会(Adjourning)を示すモデルである。
- 着手する; 〔…の〕端緒を開く 〔for〕.
- 紺 《Oxford 大学およびその選手の色標》.
- 〔音楽会などへの〕優待券, 招待券 〔to, for〕.
- 等位接続詞 《and, but, or, for など; ⇔subordinate conjunction》.
- 【文法】 相関語 《either と or, the former と the latter など》.
- [for a] holiday to [in] France last year. 昨年は休暇をとってフランスへ旅行した.
- Java API for XML Processingのページへのリンク