JavaTM Platform
Standard Ed. 6

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

既知のサブインタフェースの一覧:
TransformerHandler
既知の実装クラスの一覧:
DefaultHandler2

public interface LexicalHandler

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

このモジュールは、ソースコード、文書ともに公開ドメインに置かれています。したがって、内容に関する保証は一切提供されません。詳細については、http://www.saxproject.org を参照してください。
 

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

 

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

 

LexicalHandler を XML リーダーに設定するには、プロパティー名 http://xml.org/sax/properties/lexical-handler を指定して setProperty メソッドと、値としてこのインタフェース (または null) を実装するオブジェクトを使用します。リーダーが字句イベントを報告しない場合、ハンドラを登録しようとすると、SAXNotRecognizedException がスローされます。

導入されたバージョン:
SAX 2.0 (extensions 1.0)

メソッドの概要
 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

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。ドキュメントのベース URI に対しては解決されないことに注意すること
例外:
SAXException - アプリケーションが例外を生成することがある
関連項目:
endDTD(), startEntity(java.lang.String)

endDTD

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

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

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

startEntity

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

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

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

startCDATA

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

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

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

endCDATA

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

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

comment

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

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

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

JavaTM Platform
Standard Ed. 6

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

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