Java™ Platform
Standard Edition 7

パッケージ org.xml.sax

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

参照: 説明

パッケージ 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 setEntityResolverorg.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 parser.parse() パラメータを無視する DOM Walker 型パーサーの場合、これはパーサーが移動する DOM (サブ) ツリーを指定するために使用される。オブジェクトは org.w3c.dom.Node インタフェースを実装している必要がある。
lexical-handler コメント、CDATA 区切り文字、選択された一般のエンティティーの取り込み、DTD の最初と最後 (および文書要素名の宣言) といった一部のアプリケーションで必須の構文イベントを見るために使用する。オブジェクトは org.xml.sax.ext.LexicalHandler を実装している必要がある。
xml-string パーサーのコールバック中のみ読み取り可能。これによって、現在のイベントを扱う TBS 文字チャンクを公開する。

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

Java™ Platform
Standard Edition 7

バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.