JAXP: 두 판 사이의 차이
내용 삭제됨 내용 추가됨
장기간 방치된 미번역 주석 제거 |
|||
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개의 기본 분석 인터페이스를 제공한다.
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 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 |
바깥 고리
이 글은 소프트웨어에 관한 토막글입니다. 여러분의 지식으로 알차게 문서를 완성해 갑시다. |