public class DefaultHandler2 extends DefaultHandler implements LexicalHandler, DeclHandler, EntityResolver2
LexicalHandler
、DeclHandler
、および EntityResolver2
拡張をサポートします。元の SAX1 resolveEntity()
メソッドをオーバーライドする以外は、追加されたハンドラメソッドは戻るだけです。サブクラサはメソッドごとにすべてをオーバーライドできます。
このモジュールは、ソースコード、文書ともに公開ドメインに置かれています。したがって、内容に関する保証は一切提供されません。
注: このクラスは、ContentHandler.setDocumentLocator() 呼び出しに Locator2
オブジェクトが渡され、また ContentHandler.startElement() 呼び出しに Attributes2
オブジェクトが渡されたことをすでに認識している可能性があります。
コンストラクタと説明 |
---|
DefaultHandler2()
すべての構文解析イベントを無視するハンドラを構築します。
|
修飾子と型 | メソッドと説明 |
---|---|
void |
attributeDecl(String eName, String aName, String type, String mode, String value)
属性型宣言を報告します。
|
void |
comment(char[] ch, int start, int length)
文書内の任意の位置にある XML コメントを報告します。
|
void |
elementDecl(String name, String model)
要素型宣言を報告します。
|
void |
endCDATA()
CDATA セクションの終わりを報告します。
|
void |
endDTD()
DTD 宣言の終わりを報告します。
|
void |
endEntity(String name)
エンティティーの終わりを報告します。
|
void |
externalEntityDecl(String name, String publicId, String systemId)
構文解析済みの外部エンティティー宣言を報告します。
|
InputSource |
getExternalSubset(String name, String baseURI)
外部サブセットが文書テキストに宣言されなかった場合、何も使用されないことをパーサーに通知します。
|
void |
internalEntityDecl(String name, String value)
内部エンティティー宣言を報告します。
|
InputSource |
resolveEntity(String publicId, String systemId)
null のエンティティー名とベース URI を使用して
EntityResolver2.resolveEntity() を呼び出します。 |
InputSource |
resolveEntity(String name, String publicId, String baseURI, String systemId)
基底 URI に対して systemId を解釈処理して結果が絶対 URI となったエンティティーテキストを読み取るようパーサーに通知します。
|
void |
startCDATA()
CDATA セクションの開始を報告します。
|
void |
startDTD(String name, String publicId, String systemId)
DTD 宣言がある場合、その開始を報告します。
|
void |
startEntity(String name)
内部および外部の XML エンティティーの一部の開始を報告します。
|
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warning
public void startCDATA() throws SAXException
LexicalHandler
CDATA セクションのコンテンツは、正規の characters
イベントを介して報告されます。このイベントは境界の報告だけに使用されます。
startCDATA
、インタフェース: LexicalHandler
SAXException
- アプリケーションが例外を発生させる場合があります。LexicalHandler.endCDATA()
public void endCDATA() throws SAXException
LexicalHandler
endCDATA
、インタフェース: LexicalHandler
SAXException
- アプリケーションが例外を発生させる場合があります。LexicalHandler.startCDATA()
public void startDTD(String name, String publicId, String systemId) throws SAXException
LexicalHandler
このメソッドは、DOCTYPE 宣言の開始を報告するメソッドです。文書に DOCTYPE 宣言が含まれていない場合は呼び出されません。
DTDHandler
イベントまたは DeclHandler
イベントを介して報告されるすべての宣言は、startDTD イベントから endDTD
イベントまでの間に出現することになっています。宣言は、startEntity
イベントから endEntity
イベントまでの間に出現しないと、内部 DTD サブセットに所属するものと見なされます。DTD のコメントおよび処理命令も、startDTD イベントから endDTD イベントまでの間に、元の (論理的な) 発生順で報告されることになっています。ただし、DTDHandler イベントや DeclHandler イベントに対する正確な相対位置に出現する必要はありません。
startDTD/endDTD イベントは、ContentHandler からの startDocument イベントと endDocument イベントの間で、最初の startElement
イベントの前に出現します。
startDTD
、インタフェース: LexicalHandler
name
- 文書型名。publicId
- 宣言された外部 DTD サブセットの公開識別子。宣言されていない場合は null。systemId
- 宣言された外部 DTD サブセットのシステム識別子。宣言されていない場合は null。(文書のベース URI に対しては解決されません)SAXException
- アプリケーションが例外を発生させる場合があります。LexicalHandler.endDTD()
, LexicalHandler.startEntity(java.lang.String)
public void endDTD() throws SAXException
LexicalHandler
このメソッドは、DOCTYPE 宣言の終わりを報告するメソッドです。文書に DOCTYPE 宣言が含まれていない場合は呼び出されません。
endDTD
、インタフェース: LexicalHandler
SAXException
- アプリケーションが例外を発生させる場合があります。LexicalHandler.startDTD(java.lang.String, java.lang.String, java.lang.String)
public void startEntity(String name) throws SAXException
LexicalHandler
パラメータエンティティー (外部 DTD サブセットを含む) の報告機能はオプションです。LexicalHandler イベントを報告する SAX2 のドライバの中には、この機能を実装しないものもあります。http://xml.org/sax/features/lexical-handler/parameter-entities
機能を使って、パラメータエンティティーの報告を照会または制御できます。
一般的なエンティティーは、正規名で報告されます。パラメータエンティティー名の前には「%」が付けられています。外部 DTD サブセットは「[dtd]」という擬似エンティティー名を持っています。
SAX2 ドライバがこれらのイベントを提供しているときは、その他のすべてのイベントを start/end エンティティーイベント内に正しく入れ子にする必要があります。DeclHandler
または DTDHandler
のイベントを正しい順序で並べる必要はありません。
スキップされたエンティティーは、ContentHandler インタフェースの一部である skippedEntity
イベントを介して報告されます。
SAX が採用しているストリーミングイベントモデルの制約により、次の状況では一部のエンティティー境界を報告することができません。
これらは通知なく拡張されます。元のエンティティー境界の位置は示されません。
文字参照の境界 (実際にはエンティティーではない) も報告されません。
すべての start/endEntity イベントを正しく入れ子にする必要があります。
startEntity
、インタフェース: LexicalHandler
name
- エンティティーの名前。パラメータエンティティーの場合、この名前は「%」で始まります。外部 DTD サブセットの場合は「[dtd]」となります。SAXException
- アプリケーションが例外を発生させる場合があります。LexicalHandler.endEntity(java.lang.String)
, DeclHandler.internalEntityDecl(java.lang.String, java.lang.String)
, DeclHandler.externalEntityDecl(java.lang.String, java.lang.String, java.lang.String)
public void endEntity(String name) throws SAXException
LexicalHandler
endEntity
、インタフェース: LexicalHandler
name
- 終了するエンティティーの名前。SAXException
- アプリケーションが例外を発生させる場合があります。LexicalHandler.startEntity(java.lang.String)
public void comment(char[] ch, int start, int length) throws SAXException
LexicalHandler
このコールバックは、文書要素の内外に存在するコメント (外部 DTD サブセット内のコメントも含む) に対して使用されます。DTD 内のコメントは、start/endDTD イベントと start/endEntity イベント (使用されている場合) の内部に正しく入れ子にする必要があります。
comment
、インタフェース: LexicalHandler
ch
- コメントに含まれる文字を格納する配列。start
- 配列内の開始位置。length
- 配列から使用される文字数。SAXException
- アプリケーションが例外を発生させる場合があります。public void attributeDecl(String eName, String aName, String type, String mode, String value) throws SAXException
DeclHandler
有効な (最初の) 属性宣言だけが報告されます。型は、「CDATA」、「ID」、「IDREF」、「IDREFS」、「NMTOKEN」、「NMTOKENS」、「ENTITY」、「ENTITIES」、区切り文字「|」と、削除されたすべての空白文字とともに括弧に入れられたトークングループ、または削除されたすべての空白文字とともに括弧に入れられたトークングループの直前にある空白文字の、直前の「NOTATION」という語のどれかの文字列になります。
値はアプリケーションに報告され、適正に正規化されてエンティティー参照と文字列参照を拡張した値になります。
attributeDecl
、インタフェース: DeclHandler
eName
- 関連要素名。aName
- 属性の名前。type
- 属性型を示す文字列。mode
- 属性のデフォルトモードを示す文字列 (#IMPLIED、#REQUIRED、または #FIXED)。いずれにも当てはまらない場合は null。value
- 属性のデフォルト値を示す文字列。存在しない場合は null。SAXException
- アプリケーションが例外を発生させる場合があります。public void elementDecl(String name, String model) throws SAXException
DeclHandler
コンテンツモデルは、文字列「EMPTY」、文字列「ANY」、または括弧に入れられたグループ (オプションで出現インジケータを伴う) で構成されます。このモデルは、すべてのパラメータエンティティーが完全に解決され、すべての空白文字が削除されるように正規化されます。また、囲む括弧を含みます。その他の正規化 (重複した括弧の削除、出現インジケータの簡易化など) はパーサーによって随意行われます。
elementDecl
、インタフェース: DeclHandler
name
- 要素型名。model
- コンテンツモデルを示す正規文字列。SAXException
- アプリケーションが例外を発生させる場合があります。public void externalEntityDecl(String name, String publicId, String systemId) throws SAXException
DeclHandler
有効な (最初の) エンティティー宣言だけが報告されます。
システム識別子が URL の場合、パーサーはこれをアプリケーションに渡す前に完全に解決する必要があります。
externalEntityDecl
、インタフェース: DeclHandler
name
- エンティティーの名前。パラメータエンティティーの場合、名前は「%」で始まる。publicId
- エンティティーの公開識別子。指定されなかった場合は null。systemId
- エンティティーのシステム識別子。SAXException
- アプリケーションが例外を発生させる場合があります。DeclHandler.internalEntityDecl(java.lang.String, java.lang.String)
, DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
public void internalEntityDecl(String name, String value) throws SAXException
DeclHandler
有効な (最初の) エンティティー宣言だけが報告されます。通常のエンティティーとは異なり、値に含まれるすべてのパラメータエンティティーは拡張されます。
internalEntityDecl
、インタフェース: DeclHandler
name
- エンティティーの名前。パラメータエンティティーの場合、名前は「%」で始まる。value
- エンティティーの置換テキスト。SAXException
- アプリケーションが例外を発生させる場合があります。DeclHandler.externalEntityDecl(java.lang.String, java.lang.String, java.lang.String)
, DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
public InputSource getExternalSubset(String name, String baseURI) throws SAXException, IOException
getExternalSubset
、インタフェース: EntityResolver2
name
- 文書のルート要素の識別。利用可能な DOCTYPE 宣言または実際のルート要素からの名前。baseURI
- 文書のベース URI。外部サブセットを選択する追加ヒントとして機能する。XMLReader に InputSource しか提供されなかったために null となる場合を除き、常に絶対 URI である。SAXException
- 任意の SAX 例外。ほかの例外をラップしている可能性があります。IOException
- 新しい InputStream や Reader の作成失敗、または不正な URL を示している可能性があります。public InputSource resolveEntity(String name, String publicId, String baseURI, String systemId) throws SAXException, IOException
DefaultHandler.resolveEntity()
メソッドはこのメソッドを呼び出すようにオーバーライドされるので、このメソッドは null の name と baseURI、およびすでに絶対化されている systemId で呼び出されることがあります。resolveEntity
、インタフェース: EntityResolver2
name
- 解決される外部エンティティーの識別。外部サブセットの「[dtd]」やパラメータエンティティーを示す「%」で開始される名前、またはそれ以外の一般エンティティーの名前。SAX2 パーサーによって呼び出される場合 null にはなりません。publicId
- 参照される外部エンティティーの公開識別子 (XML 仕様で要求されるように正規化されている)。提供されなかった場合は null。baseURI
- 相対的な systemID を解釈するときに基準にする URI。XMLReader は InputSource に指定された可能性があるので、null でないかぎり常に絶対 URI。この URI は、関連する宣言を開始する「<」に関連付けられている XML 仕様によって定義されます。systemId
- 参照される外部エンティティーのシステム識別子。相対 URI または絶対 URI。SAX2 パーサーによって呼び出される場合 null にはなりません。宣言されたエンティティーと外部サブセットだけが、そうしたパーサーによって解決されます。SAXException
- 任意の SAX 例外。ほかの例外をラップしている可能性があります。IOException
- 新しい InputStream や Reader の作成失敗、または不正な URL を示している可能性があります。public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException
EntityResolver2.resolveEntity()
を呼び出します。このクラスを使用するには、そのメソッドをオーバーライドするだけでかまいません。resolveEntity
、インタフェース: EntityResolver
resolveEntity
、クラス: DefaultHandler
publicId
- 公開識別子。使用できない場合は null。systemId
- XML 文書に含まれているシステム識別子。SAXException
- 任意の SAX 例外。ほかの例外をラップしている可能性があります。IOException
- Java 固有の入出力例外。InputSource の新しい InputStream または Reader の作成の結果として発生する可能性があります。EntityResolver.resolveEntity(java.lang.String, java.lang.String)
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.