Java API for XML ProcessingJAXP)は、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クラスはContentHandlerErrorHandlerDTDHandlerEntityResolverの各インタフェースを実装している。ほとんどのクライアントは、ContentHandlerインタフェースで定義されたメソッドを使うことになる。これらのメソッドは、XML文書内の対応する要素をSAXパーサーが見つけたときに呼び出される。SAXインタフェースの中でもっとも重要なメソッドとして、次のようなものがある。

  • startDocument()endDocument()メソッド。XML文書の先頭と末尾で呼び出される。
  • startElement() and endElement()メソッド。要素の開始地点と終了地点で呼び出される。
  • characters()メソッド。要素の開始タグと終了タグの間にあるテキストデータで呼び出される。

クライアントは、DefaultHandlerのサブクラスでこれらのメソッドをオーバーライドしてデータを処理する。処理の中でデータをデータベースに保存したり、ストリームに書き出したりすることもある。

XSLTインタフェース

XSLTは、XML文書を別の形式のデータに変換できる。


Java Api for Xml Processing (JAXP) Introduction JAXP (Java Api for

PPT XML Processing in Java PowerPoint Presentation, free download

Java Api for Xml Processing (JAXP) JAXP Java Api for Xml Processing

PPT 3.3 JAXP Java API for XML Processing PowerPoint Presentation

PPT Java API for XML Processing PowerPoint Presentation, free