JavaTM Platform
Standard Ed. 6

パッケージ org.xml.sax

このパッケージはコア SAX API を提供します。

参照先:
          説明

インタフェースの概要
AttributeList 推奨されていません。 このインタフェースは、名前空間をサポートする SAX2 の Attributes インタフェースで置き換えられています。
Attributes XML 属性のリストのためのインタフェースです。
ContentHandler 文書の論理コンテンツの通知を受け取ります。
DocumentHandler 推奨されていません。 このインタフェースは、名前空間をサポートする SAX2 の ContentHandler インタフェースで置き換えられています。
DTDHandler 標準 DTD 関連イベントの通知を受け取ります。
EntityResolver エンティティーを解決するための基本インタフェースです。
ErrorHandler SAX エラーハンドラの基本インタフェースです。
Locator SAX イベントと文書の位置を関連付けるためのインタフェースです。
Parser 推奨されていません。 このインタフェースは、名前空間をサポートする SAX2 の XMLReader インタフェースで置き換えられています。
XMLFilter XML フィルタのインタフェースです。
XMLReader コールバックを使って XML 文書を読み取るためのインタフェースです。
 

クラスの概要
HandlerBase 推奨されていません。 このクラスは非推奨の DocumentHandler インタフェースで動作します。
InputSource XML エンティティーの単一の入力ソースです。
 

例外の概要
SAXException SAX の一般的なエラーまたは警告をカプセル化します。
SAXNotRecognizedException 認識されない識別子のための例外クラスです。
SAXNotSupportedException サポート対象外の操作のための例外クラスです。
SAXParseException XML 構文解析エラーまたは警告をカプセル化します。
 

パッケージ org.xml.sax の説明

このパッケージはコア SAX API を提供します。コア SAX API には、名前空間に対応した新しいアプリケーションの設計や既存のインフラストラクチャーのメンテナンスに統合するように推奨されているものもあります。

SAX についての詳細は、http://www.saxproject.org を参照してください。

SAX2 標準機能フラグ

SAX2 の必須の特性の 1 つに、検証に使用できる機能フラグや変更パーサーモード (特に検証などのモード) が追加されていることがあります。機能は (絶対) URI によって識別されるため、だれにでも定義できます。 現在定義されている標準機能の URI には、validation などの識別子の前にある接頭辞 http://xml.org/sax/features/ があります。「setFeature」を使用して機能をオンまたはオフにします。標準の識別子は次のとおりです。

機能 ID アクセス デフォルト 説明
external-general-entities 読み取り/書き込み 指定なし このパーサーが一般的な外部エンティティーを処理するかどうかを報告する。検証する場合は常に true
external-parameter-entities 読み取り/書き込み 指定なし このパーサーが外部パラメータエンティティーを処理するかどうかを報告する。検証する場合は常に true
is-standalone (構文解析する) 読み取り専用、(構文解析しない) なし 適用外 startDocument() コールバックが終了したあと、構文解析中のみ検証される。 読み取り専用。文書が XML 宣言内の standalone="yes" を指定した場合、値は true。そうでない場合は false
lexical-handler/parameter-entities 読み取り/書き込み 指定なし 「true」の値は LexicalHandler がパラメータエンティティーの開始と終了を報告することを示す
namespaces 読み取り/書き込み true 「true」の値は、使用可能な要素名および属性名の名前空間 URI と接頭辞を持たないローカル名を示す
namespace-prefixes 読み取り/書き込み false 「true」の値は接頭辞付きの XML 修飾名と「xmlns*」属性を含む属性が使用できることを示す
resolve-dtd-uris 読み取り/書き込み true 「true」の値は、宣言のシステム ID が基底 URI を基準にして報告前に絶対化されることを示す (デフォルトによるすべての SAX2 XML パーサーの動作)。「false」の値は、ID が絶対化されないことを示す。パーサーは「Locator.getSystemId()」の基底 URI を提供する。これは渡されたシステム ID に適用される
  • DTDHandler.notationDecl()
  • DTDHandler.unparsedEntityDecl()
  • DeclHandler.externalEntityDecl()
これは、宣言の報告に使用しない「EntityResolver.resolveEntity()」や絶対化されていない URI をすでに提供している「LexicalHandler.startDTD()」には適用されない
string-interning 読み取り/書き込み 指定なし 要素、接頭辞、属性、エンティティー、表記法、およびローカル名のすべての XML 名と名前空間 URI が「java.lang.String.intern」を使用して保持される場合は「true」の値を持つ。これによって、「String.equals()」に対して強制的に呼び出しを遅らせるのではなく、文字の定数に対して等しいかどうかの判定をすばやくするようにサポートする
unicode-normalization-checking 読み取り/書き込み false XML 1.1 勧告のセクション 2.13 と付録 B で説明されているような Unicode 正規化エラーをパーサーが報告するかどうかを制御する。true の場合、Unicode 正規化エラーは ErrorHandler.error() を使用して報告される。このようなエラーは、ほかの Unicode 関連のエンコーディングエラーとは違い、それ自体が致命的なエラーではない
use-attributes2 読み取り専用 適用外 「ContentHandler.startElement()」でこのパーサーによって渡される「Attributes」オブジェクトが 「org.xml.sax.ext.Attributes2」インタフェースを実装している場合は「true」を返す。このインタフェースは、属性がデフォルトで設定されたかどうかではなく、ソーステキストで指定されたかどうかなどの DTD 関連の追加情報を公開する
use-locator2 読み取り専用 適用外 「ContentHandler.setDocumentLocator()」でこのパーサーによって渡された「Locator」オブジェクトが 「org.xml.sax.ext.Locator2」インタフェースを実装している場合は「true」を返す。このインタフェースは使用されている文字エンコーディングや XML のバージョンなどのエンティティーの追加情報を公開する 
use-entity-resolver2 読み取り/書き込み true 「setEntityResolver」に 「org.xml.sax.ext.EntityResolver2」インタフェースを実装しているオブジェクトが提供される場合にそれらの新しいメソッドが使用されるときは「true」を返す。新しいメソッドが使用されないことを示す場合は「false」を返す
validation 読み取り/書き込み 指定なし パーサーがすべての妥当性エラーを報告しているかどうかを制御する。true の場合、すべての外部エンティティーが読み取られる
xmlns-uris 読み取り/書き込み false 「namespace-prefixes」機能が設定されたとき、パーサーが名前空間宣言の属性を「http://www.w3.org/2000/xmlns/」名前空間に存在するものとして処理するかどうかを制御する。デフォルトでは、SAX2 はこのような属性がどの名前空間にも存在しないということを明示している元の「Namespaces in XML」勧告に従う。このオプションのフラグを true に設定することによって、SAX2 イベントを下位互換できない元の勧告の今後の改訂版に従わせ、それらの属性を名前空間に置く
xml-1.1 読み取り専用 適用外 パーサーが XML 1.1 と XML 1.0 の両方をサポートする場合は「true」を返し、XML 1.0 だけをサポートする場合は「false」を返す

「namespaces」プロパティーと「namespace-prefixes」プロパティーのデフォルト値をサポートする必要があります。それ以外の機能フラグのサポートは完全にオプションです。

SAX2 で指定されていないデフォルト値の場合、それぞれの XMLReader 実装によってそのデフォルトを指定しますが、機能フラグを公開しないように選択することもできます。 ここで指定されないかぎり、実装によってこれらの標準機能フラグの現在の値を変更できますが、構文解析中は変更できません。

SAX2 標準ハンドラおよびプロパティー ID

パーサーインタフェースの特性をオブジェクトとして説明する場合、別の名前空間が定義されます。この名前空間のオブジェクトは URI によって再度識別されます。標準のプロパティー URI には、lexical-handlerdom-node などの識別子の前に接頭辞 http://xml.org/sax/properties/ が付きます。それらのプロパティーは「setProperty()」を使用して管理します。識別子は次のとおりです。

プロパティー ID 説明
declaration-handler 字句構文規則 (「文書の要素名は ...」) として扱われるものやすべての SAX パーサーに対して必須であるものを除いて (「DTDHandler」) ほとんどの DTD 宣言を見るために使用する。オブジェクトは org.xml.sax.ext.DeclHandler を実装している必要がある
document-xml-version startDocument() コールバックが終了したあと、構文解析中のみ検証される。 読み取り専用。このプロパティーは XML 1.0 や XML 1.1 など、文書の実際のXML バージョンを説明するリテラル文字列
dom-node DOM Walker 型パーサーが「parser.parse()」パラメータを無視する場合、これはパーサーによって移動される DOM (サブ) ツリーの指定に使用する。オブジェクトには「org.w3c.dom.Node」インタフェースを実装する必要がある
lexical-handler コメント、CDATA 区切り文字、選択された一般のエンティティーの取り込み、DTD の最初と最後 (および文書要素名の宣言) といった一部のアプリケーションで必須の構文イベントを見るために使用する。オブジェクトには 「org.xml.sax.ext.LexicalHandler」を実装する必要がある
xml-string パーサーのコールバック中は読み取り専用。 これによって、現在のイベントを扱う文字列の TBS チャンクを公開する

これらの標準プロパティーはすべてオプションです。 XMLReader 実装の場合、これらをサポートする必要はありません。


JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。