JAXP: 두 판 사이의 차이

위키백과, 우리 모두의 백과사전.
내용 삭제됨 내용 추가됨
Addbot (토론 | 기여)
잔글 봇: 인터위키 링크 11 개가 위키데이터d:q691350 항목으로 옮겨짐
장기간 방치된 미번역 주석 제거
25번째 줄: 25번째 줄:
| JAXP 1.0 || || || [[JSR]] 5
| JAXP 1.0 || || || [[JSR]] 5
|}
|}
<!--
'''Java API for XML Processing'''('''JAXP''')は、[[Java]]で[[Extensible Markup Language|XML]]を扱うための[[Application Programming Interface|API]]のひとつ。XML文書の妥当性検証や[[構文解析]]のための[[インタフェース (情報技術)|インタフェース]]を提供する。次の2つの基本的な構文解析インタフェースを備える。
* [[Document Object Model]]による構文解析インタフェース ('''DOM'''インタフェース)
* [[Simple API for XML]]による構文解析インタフェース('''SAX'''インタフェース)


== 바깥 고리 ==
JAXP 1.4からは、3番目のインタフェースが追加されている。
* {{언어고리|en}} [http://docs.oracle.com/javase/tutorial/jaxp/index.html Oracle's JAXP product description]
* [[Streaming API for XML]]による構文解析インタフェース('''StAX'''インタフェース、JSR 173)


{{토막글|소프트웨어}}
JAXPは、構文解析インタフェースに加え、XML文書のデータや構造の変換を行うための[[XSL Transformations|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。[[Java Platform, Standard Edition|J2SE]] 1.4以降はJAXPの実装を含むようになり、J2SE 5.0はJAXP 1.3の実装を、Java SE 6はJAXP1.4の実装を含んでいる。

== DOMインタフェース ==
おそらく最も理解しやすいのがDOMインタフェースであろう。XML文書全体を構文解析し、文書内のすべての要素に相当するメモリ内表現を、[http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113 Document Object Model(DOM) Level 2 Core Specification]で規定されたモデルに基づく[[クラス (コンピュータ)|クラス]]で構築する。

DOMパーサー(構文解析機)は、メモリ上に<code>Document</code>表現を構築 (build) するので、<code>DocumentBuilder</code>と呼ばれる。{{Javadoc:SE|package=javax.xml.parsers|javax/xml/parsers|DocumentBuilder}}は、{{Javadoc:SE|package=javax.xml.parsers|javax/xml/parsers|DocumentBuilderFactory}}により生成される。<code>DocumentBuilder</code>は、XML文書内の全ノードを含んだ[[木構造 (データ構造)|木構造]]の{{Javadoc:SE|package=org.w3c.dom|org/w3c/dom|Document}}[[インスタンス]]を生成する。木構造内の各ノードは、{{Javadoc:SE|package=org.w3c.dom|org/w3c/dom|Node}}インタフェースを実装している。ノードには、XML文書内のデータ型を表すいろいろなノードタイプがある。最も重要なノードタイプとして、次のようなものがある。
* 要素(element)ノード。属性(attribute)を持つ場合がある。
* テキスト(text)ノード。要素の開始タグと終了タグの間に記述されたテキストを表す。

全ノードタイプの一覧は、[[パッケージ (Java)|Javaパッケージ]]{{Javadoc:SE|package=org.w3c.dom|org/w3c/dom}}の[[Javadoc]]を参照のこと。

== SAXインタフェース ==
SAXパーサーは{{Javadoc:SE|javax/xml/parsers|SAXParser}}と呼ばれ、{{Javadoc:SE|package=javax.xml.parsers|javax/xml/parsers|SAXParserFactory}}によって生成される。DOMパーサーと違い、SAXパーサーはメモリ内にXML文書の表現を作らないので、より高速でメモリ使用量が少ない。その代わりに、SAXパーサーは、[[コールバック (情報工学)|コールバック]]を呼び出す、すなわち、あらかじめパーサーに渡しておいた{{Javadoc:SE|package=org.xml.sax.helpers|org/xml/sax/helpers|DefaultHandler}}[[インスタンス]]の[[メソッド (計算機科学)|メソッド]]を呼び出すことで、XML文書の構造を[[クライアントサイド|クライアント]]に通知する。

<code>DefaultHandler</code>クラスは{{Javadoc:SE|org/xml/sax|ContentHandler}}、{{Javadoc:SE|org/xml/sax|ErrorHandler}}、{{Javadoc:SE|org/xml/sax|DTDHandler}}、{{Javadoc:SE|org/xml/sax|EntityResolver}}の各インタフェースを実装している。ほとんどのクライアントは、<code>ContentHandler</code>インタフェースで定義されたメソッドを使うことになる。これらのメソッドは、XML文書内の対応する要素をSAXパーサーが見つけたときに呼び出される。SAXインタフェースの中でもっとも重要なメソッドとして、次のようなものがある。
* <code>startDocument()</code>と<code>endDocument()</code>メソッド。XML文書の先頭と末尾で呼び出される。
* <code>startElement()</code> and <code>endElement()</code>メソッド。要素の開始地点と終了地点で呼び出される。
* <code>characters()</code>メソッド。要素の開始タグと終了タグの間にあるテキストデータで呼び出される。

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

== XSLTインタフェース ==
[[XSL Transformations|XSLT]]は、XML文書を別の形式のデータに変換できる。

[[Category:Javaプラットフォーム]]
[[Category:Java specification requests]]
[[Category:Application Programming Interface]]
-->
{{토막글|컴퓨터}}


[[분류:자바 플랫폼, 엔터프라이즈 에디션]]
[[분류:자바 플랫폼, 엔터프라이즈 에디션]]

2014년 4월 20일 (일) 19:57 판

JAXP(Java API for XML Processing)는 XML을 처리하는 자바 API 중 하나이다. 주로 XML 문서의 유효성 검증과 분석을 위한 인터페이스를 제공한다. 주로 다음 2개의 기본 분석 인터페이스를 제공한다.

  • DOM 인터페이스
  • SAX 인터페이스

JAXP 1.4부터는 3번째 인터페이스를 추가하였다.

  • StAX 인터페이스 (JSR 173)

JAXP는 3가지의 파싱 인터페이스 이외에도 XML 문선의 데이터 및 구조를 변환할 수 있는 XSLT 인터페이스도 제공한다. JAXP는 자바 커뮤니터 프로세스의 JSR 5 (JAXP 1.0), JSR 63 (JAXP 1.1 & 1.2), JSR 206 (JAXP 1.3 & 1.4)에 의해 개발되었다. J2SE 1.4 이상에서는 JAXP를 포함하고 있어서 J2SE 5.0에서는 JAXP 1.3을, Java SE 6에서는 JAXP 1.4를 포함하고 있다.

버전 역사

JAXP API 역사
JAXP version 발표 자바 플랫폼 중요한 변화
JAXP 1.4 Java SE 6 JSR 206
JAXP 1.3 J2SE 5.0, Java EE 5 JSR 206
JAXP 1.2 JSR 63
JAXP 1.1 JSR 63
JAXP 1.0 JSR 5

바깥 고리