JavaTM 2
Platform
Std. Ed. v1.4.0

org.xml.sax.ext
インタフェース LexicalHandler

既知のサブインタフェースの一覧:
TransformerHandler

public interface LexicalHandler

字句イベントのための SAX2 拡張ハンドラです。

このモジュールは、ソースコード、文書ともに公開ドメインに置かれています。したがって、内容に関する保証は一切提供されません

コメントや CDATA セクションの境界といった XML 文書に関する字句上の情報を提供する、SAX2 用のオプション拡張ハンドラです。このハンドラをサポートするために、XML リーダは不要です。また、このハンドラは、SAX2 のコアディストリビューションには含まれていません。

字句ハンドラ内のイベントは、文書内の個々の要素だけでなく文書全体に適用されます。すべての字句ハンドライベントは、コンテンツハンドラの startDocument イベントから endDocument イベントまでの間に発生します。

LexicalHandler を XML リーダに設定するには、propertyId "http://xml.org/sax/properties/lexical-handler" を指定して setProperty メソッドを使用します。リーダが字句イベントをサポートしない場合、ハンドラを登録しようとすると、SAXNotRecognizedException または SAXNotSupportedException がスローされます。

導入されたバージョン:
1.0
関連項目:
XMLReader.setProperty(java.lang.String, java.lang.Object), SAXNotRecognizedException, SAXNotSupportedException

メソッドの概要
 void comment(char[] ch, int start, int length)
          文書内の任意の位置にある XML コメントを報告します。
 void endCDATA()
          CDATA セクションの終わりを報告します。
 void endDTD()
          DTD 宣言の終わりを報告します。
 void endEntity(String name)
          エンティティの終わりを報告します。
 void startCDATA()
          CDATA セクションの開始を報告します。
 void startDTD(String name, String publicId, String systemId)
          DTD 宣言がある場合、その開始を報告します。
 void startEntity(String name)
          内部および外部の XML エンティティの一部の開始を報告します。
 

メソッドの詳細

startDTD

public void startDTD(String name,
                     String publicId,
                     String systemId)
              throws SAXException
DTD 宣言がある場合、その開始を報告します。

このメソッドは、DOCTYPE 宣言の開始を報告するメソッドです。文書に DOCTYPE 宣言が含まれていない場合は呼び出されません。

DTDHandler または DeclHandler イベントを介して報告されるすべての宣言は、startDTD イベントから endDTD イベントまでの間に出現することになっています。宣言は、startEntity イベントから endEntity イベントまでの間に出現しないと、内部 DTD サブセットに所属するものと見なされます。DTD のコメントおよび処理命令も、startDTD イベントから endDTD イベントまでの間に、元の (論理的な) 発生順で報告されることになっています。ただし、DTDHandler イベントや DeclHandler イベントに対する正確な相対位置に出現する必要はありません。

start/endDTD イベントは、ContentHandler の start/endDocument イベント内の最初の startElement イベントの前に出現します。

パラメータ:
name - 文書型名
publicId - 宣言された外部 DTD サブセットの公開識別子。宣言されていない場合は null
systemId - 宣言された外部 DTD サブセットのシステム識別子。宣言されていない場合は null
例外:
SAXException - アプリケーションが例外を生成することがある
関連項目:
endDTD(), startEntity(java.lang.String)

endDTD

public void endDTD()
            throws SAXException
DTD 宣言の終わりを報告します。

このメソッドは、DOCTYPE 宣言の終わりを報告するメソッドです。文書に DOCTYPE 宣言が含まれていない場合は呼び出されません。

例外:
SAXException - アプリケーションが例外を生成することがある
関連項目:
startDTD(java.lang.String, java.lang.String, java.lang.String)

startEntity

public void startEntity(String name)
                 throws SAXException
内部および外部の XML エンティティの一部の開始を報告します。

パラメータエンティティ (外部 DTD サブセットを含む) の報告機能はオプションです。LexicalHandler をサポートする SAX2 のドライバのなかには、この機能をサポートしないものもあります。http://xml.org/sax/features/lexical-handler/parameter-entities 機能を使って、パラメータエンティティの報告を照会または制御することができます。

一般的なエンティティは、正規名で報告されます。パラメータエンティティ名の前には '%' が付けられています。外部 DTD サブセットは "[dtd]" という擬似エンティティ名を持っています。

SAX2 ドライバがこれらのイベントを提供しているときは、その他のすべてのイベントを start/end エンティティイベント内に正しく入れ子にする必要があります。DeclHandler または DTDHandler のイベントを正しい順序で並べる必要はありません。

スキップされたエンティティは、ContentHandler インタフェースの一部である skippedEntity イベントを介して報告されます。

SAX が採用しているストリーミングイベントモデルの制約により、以下の状況では一部のエンティティ境界を報告することができません。

これらは通知なく拡張されます。元のエンティティ境界の位置は示されません。

文字参照の境界 (実際にはエンティティではない) も報告されない点に注意してください。

すべての start/endEntity イベントを正しく入れ子にする必要があります。

パラメータ:
name - エンティティの名前。パラメータエンティティの場合、この名前は '%' で始まる。外部 DTD サブセットの場合、"[dtd]" で始まる
例外:
SAXException - アプリケーションが例外を生成することがある
関連項目:
endEntity(java.lang.String), DeclHandler.internalEntityDecl(java.lang.String, java.lang.String), DeclHandler.externalEntityDecl(java.lang.String, java.lang.String, java.lang.String)

endEntity

public void endEntity(String name)
               throws SAXException
エンティティの終わりを報告します。

パラメータ:
name - 終了するエンティティの名前
例外:
SAXException - アプリケーションが例外を生成することがある
関連項目:
startEntity(java.lang.String)

startCDATA

public void startCDATA()
                throws SAXException
CDATA セクションの開始を報告します。

CDATA セクションのコンテンツは、正規の characters イベントを介して報告されます。このイベントは境界の報告だけに使用されます。

例外:
SAXException - アプリケーションが例外を生成することがある
関連項目:
endCDATA()

endCDATA

public void endCDATA()
              throws SAXException
CDATA セクションの終わりを報告します。

例外:
SAXException - アプリケーションが例外を生成することがある
関連項目:
startCDATA()

comment

public void comment(char[] ch,
                    int start,
                    int length)
             throws SAXException
文書内の任意の位置にある XML コメントを報告します。

このコールバックは、文書要素の内外に存在するコメント (外部 DTD サブセット内のコメントも含む) に対して使用されます。DTD 内のコメントは、start/endDTD イベントと start/endEntity イベント (使用されている場合) の内部に正しく入れ子にする必要があります。

パラメータ:
ch - コメントに含まれる文字を格納する配列
start - 配列内の開始位置
length - 配列から読み取られる文字数
例外:
SAXException - アプリケーションが例外を生成することがある

JavaTM 2
Platform
Std. Ed. v1.4.0

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

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.