-
- 既知のすべてのサブインタフェース:
TransformerHandler
- 既知のすべての実装クラス:
DefaultHandler2
public interface LexicalHandler
字句イベントのためのSAX2拡張ハンドラです。このモジュールは、ソース・コード、文書ともに公開ドメインに置かれています。したがって、内容に関する保証は一切提供されません。 詳細については、http://www.saxproject.orgを参照してください。
コメントやCDATAセクションの境界といったXML文書に関する字句上の情報を提供する、SAX2用のオプション拡張ハンドラです。 このハンドラを認識するために、XMLリーダーは不要です。また、このハンドラは、SAX2のコアのみのディストリビューションには含まれていません。
字句ハンドラ内のイベントは、文書内の個々の要素だけでなく文書全体に適用されます。すべての字句ハンドラ・イベントは、コンテンツ・ハンドラのstartDocumentイベントからendDocumentイベントまでの間に発生します。
XMLリーダーのLexicalHandlerを設定するには、プロパティ名として
http://xml.org/sax/properties/lexical-handler
、その値としてこのインタフェースを実装するオブジェクト(またはnull)を指定して、setProperty
メソッドを使用します。 リーダーが字句イベントを報告しない場合、ハンドラを登録しようとするとSAXNotRecognizedException
がスローされます。- 導入されたバージョン:
- 1.4、SAX 2.0 (拡張機能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イベントに対する正確な相対位置に出現する必要はありません。startDTD/endDTDイベントは、ContentHandlerからのstartDocumentイベントと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
- アプリケーションが例外を発生させる場合があります。
-
-