Java API for XML ProcessingJAXP)は、JavaXMLを扱うためのAPIのひとつ。XML文書の妥当性検証や構文解析のためのインタフェースを提供する。次の2つの基本的な構文解析インタフェースを備える。

JAXP 1.4からは、3番目のインタフェースが追加されている。

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.domJavadocを参照のこと。

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文書を別の形式のデータに変換できる。

📚 Artikel Terkait di Wikipedia

XML

の技法を提供する実装としては次のものがある。 Streaming API for XML (StAX) - Java SimpleXML - PHP System.Xml.XmlReader - .NET Framework 例えば、JavaのStAXフレームワークでは、本質的な「反復子」 (イテレータ)

Java Community Process

API仕様を確かめるための技術互換キットを提供する。 JCP自身はJSRによって記述されている。最新バージョンはJSR 355に記述された2.9である。 300以上のJSRsがある。 ^ 英: Java specification requests Javaコミュニティ・プロセス

Java Development Kit

xjc – Java API for XML Binding (JAXB) APIの一部。XMLスキーマを受けてJavaクラスを生成する。 実験用ツールはJDKの将来のバージョンで利用不可能になるかもしれない。 Java 10までは、JDKには、通常プライベートランタイムと呼ばれる完全なJava Runtime

Javaバージョン履歴

I/O(非遮断ストリーム入出力、バッファストリームAPI) Image I/O(JPEGとPNGを使えるAPI) Preferences(ツリー型のJava式セーブデータ収納庫API) Java API for XML Processing(XMLパーサ&マニュピレータAPI、XSLTフォーマットAPI) Java Cryptography

Document Object Model

WG以前はW3Cが仕様を策定しており、Level 1からLevel 4まで勧告している。 XMLを読み込むAPIであるSAXと異なり、XMLデータをツリー構造として扱う事ができる。ただし、通常の場合対象のXML文書を全て読み込んでからの扱いを前提とするため、動作速度が遅かったり、メモリーの使用量が大きくなるといった欠点もある。

WebRTC

クロソフト、Mozilla、Operaがサポートしている。 WebRTC は 1 つのプロトコル仕様(プロトコルスイート)と 1 つの JavaScript API 仕様からなる。これら仕様は W3C および IETF の複数の規格書に跨って定義されている。 WebRTCの目的は、「ブラウザ、モバイ

Java Web Services Development Pack

Java SE 6 ("Mustang") に取り込まれた。ソースコードは Open Source Initiative が認める CDDL ライセンスで入手可能。 JWSDP 1.6 に含まれていたコンポーネントとAPIを以下に示す。 Java API for XML Processing (JAXP)

Mobile 3D Graphics API

Java Platform, Micro Edition > Mobile 3D Graphics API Mobile 3D Graphics API (M3G) は、3次元コンピュータグラフィックスを生成するJavaを記述するためのAPIを定義した仕様である。M3Gは携帯電話やPDAのような組