JavaTM 2 Platform
Standard Ed. 5.0

パッケージ 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 2 Platform
Standard Ed. 5.0

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

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