クラスDefaultHandler2
- すべての実装されたインタフェース:
ContentHandler,DTDHandler,EntityResolver,ErrorHandler,DeclHandler,EntityResolver2,LexicalHandler
LexicalHandler、DeclHandler、およびEntityResolver2拡張をサポートします。 元のSAX1 resolveEntity()メソッドをオーバーライドする以外は、追加されたハンドラ・メソッドは戻るだけです。 サブクラサーはメソッドごとにすべてをオーバーライドできます。
ノート: このクラスは、ContentHandler.setDocumentLocator()呼出しにLocator2オブジェクトが渡され、またContentHandler.startElement()呼出しにAttributes2オブジェクトが渡されたことをすでに認識している可能性があります。
- 導入されたバージョン:
- 1.5, SAX 2.0 (extensions 1.1 alpha)
-
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明void属性型宣言を報告します。voidcomment(char[] ch, int start, int length) 文書内の任意の位置にあるXMLコメントを報告します。voidelementDecl(String name, String model) 要素型宣言を報告します。voidendCDATA()CDATAセクションの終わりを報告します。voidendDTD()DTD宣言の終わりを報告します。voidエンティティの終わりを報告します。voidexternalEntityDecl(String name, String publicId, String systemId) 構文解析済みの外部エンティティ宣言を報告します。getExternalSubset(String name, String baseURI) 外部サブセットが文書テキストに宣言されなかった場合、何も使用されないことをパーサーに通知します。voidinternalEntityDecl(String name, String value) 内部エンティティ宣言を報告します。resolveEntity(String publicId, String systemId) nullのエンティティ名とベースURIを使用してEntityResolver2.resolveEntity()を呼び出します。resolveEntity(String name, String publicId, String baseURI, String systemId) 基底URIに対してsystemIdを解釈処理して結果が絶対URIとなったエンティティ・テキストを読み取るようパーサーに通知します。voidCDATAセクションの開始を報告します。voidDTD宣言がある場合、その開始を報告します。voidstartEntity(String name) 内部および外部のXMLエンティティの一部の開始を報告します。クラスorg.xml.sax.helpers.DefaultHandlerで宣言されたメソッド
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startElement, startPrefixMapping, unparsedEntityDecl, warningクラスjava.lang.Objectで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitインタフェースorg.xml.sax.ContentHandlerで宣言されたメソッド
declaration
-
コンストラクタの詳細
-
DefaultHandler2
public DefaultHandler2()すべての構文解析イベントを無視するハンドラを構築します。
-
-
メソッドの詳細
-
startCDATA
public void startCDATA() throws SAXExceptionインタフェースからコピーされた説明:LexicalHandlerCDATAセクションの開始を報告します。CDATAセクションのコンテンツは、正規の
charactersイベントを介して報告されます。このイベントは境界の報告だけに使用されます。- 定義:
startCDATA、インタフェースLexicalHandler- 例外:
SAXException- アプリケーションが例外を発生させる場合があります。- 関連項目:
-
endCDATA
public void endCDATA() throws SAXExceptionインタフェースからコピーされた説明:LexicalHandlerCDATAセクションの終わりを報告します。- 定義:
endCDATA、インタフェースLexicalHandler- 例外:
SAXException- アプリケーションが例外を発生させる場合があります。- 関連項目:
-
startDTD
public void startDTD(String name, String publicId, String systemId) throws SAXException インタフェースからコピーされた説明:LexicalHandlerDTD宣言がある場合、その開始を報告します。このメソッドは、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- アプリケーションが例外を発生させる場合があります。- 関連項目:
-
endDTD
public void endDTD() throws SAXExceptionインタフェースからコピーされた説明:LexicalHandlerDTD宣言の終わりを報告します。このメソッドは、DOCTYPE宣言の終わりを報告するメソッドです。文書にDOCTYPE宣言が含まれていない場合は呼び出されません。
- 定義:
endDTD、インタフェースLexicalHandler- 例外:
SAXException- アプリケーションが例外を発生させる場合があります。- 関連項目:
-
startEntity
public void startEntity(String name) throws SAXException インタフェースからコピーされた説明:LexicalHandler内部および外部の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イベントを正しく入れ子にする必要があります。
- 定義:
startEntity、インタフェースLexicalHandler- パラメータ:
name- エンティティの名前。 パラメータ・エンティティの場合、この名前は「%」で始まります。外部DTDサブセットの場合は「[dtd]」となります。- 例外:
SAXException- アプリケーションが例外を発生させる場合があります。- 関連項目:
-
endEntity
public void endEntity(String name) throws SAXException インタフェースからコピーされた説明:LexicalHandlerエンティティの終わりを報告します。- 定義:
endEntity、インタフェースLexicalHandler- パラメータ:
name- 終了するエンティティの名前。- 例外:
SAXException- アプリケーションが例外を発生させる場合があります。- 関連項目:
-
comment
public void comment(char[] ch, int start, int length) throws SAXException インタフェースからコピーされた説明:LexicalHandler文書内の任意の位置にあるXMLコメントを報告します。このコールバックは、文書要素の内外に存在するコメント(外部DTDサブセット内のコメントも含む)に対して使用されます。 DTD内のコメントは、start/endDTDイベントとstart/endEntityイベント(使用されている場合)の内部に正しく入れ子にする必要があります。
- 定義:
comment、インタフェースLexicalHandler- パラメータ:
ch- コメントに含まれる文字を格納する配列。start- 配列内の開始位置。length- 配列から使用される文字数。- 例外:
SAXException- アプリケーションが例外を発生させる場合があります。
-
attributeDecl
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- アプリケーションが例外を発生させる場合があります。
-
elementDecl
public void elementDecl(String name, String model) throws SAXException インタフェースからコピーされた説明:DeclHandler要素型宣言を報告します。コンテンツ・モデルは、文字列「EMPTY」、文字列「ANY」またはカッコに入れられたグループ(オプションで出現インジケータを伴う)で構成されます。 モデルは正規化され、すべてのパラメータ・エンティティが完全に解決され、すべての空白が削除され、囲みカッコが含まれます。 その他の正規化(重複したカッコの削除、出現インジケータの簡易化など)はパーサーによって随意行われます。
- 定義:
elementDecl、インタフェースDeclHandler- パラメータ:
name- 要素型名。model- コンテンツ・モデルを示す正規文字列。- 例外:
SAXException- アプリケーションが例外を発生させる場合があります。
-
externalEntityDecl
public void externalEntityDecl(String name, String publicId, String systemId) throws SAXException インタフェースからコピーされた説明:DeclHandler構文解析済みの外部エンティティ宣言を報告します。有効な(最初の)エンティティ宣言だけが報告されます。
システム識別子がURLの場合、パーサーはこれをアプリケーションに渡す前に完全に解決する必要があります。
- 定義:
externalEntityDecl、インタフェースDeclHandler- パラメータ:
name- エンティティの名前。 パラメータ・エンティティの場合、名前は「%」で始まる。publicId- エンティティの公開識別子。指定されなかった場合はnull。systemId- エンティティのシステム識別子。- 例外:
SAXException- アプリケーションが例外を発生させる場合があります。- 関連項目:
-
internalEntityDecl
public void internalEntityDecl(String name, String value) throws SAXException インタフェースからコピーされた説明:DeclHandler内部エンティティ宣言を報告します。有効な(最初の)エンティティ宣言だけが報告されます。 通常のエンティティとは異なり、値に含まれるすべてのパラメータ・エンティティは拡張されます。
- 定義:
internalEntityDecl、インタフェースDeclHandler- パラメータ:
name- エンティティの名前。 パラメータ・エンティティの場合、名前は「%」で始まる。value- エンティティの置換テキスト。- 例外:
SAXException- アプリケーションが例外を発生させる場合があります。- 関連項目:
-
getExternalSubset
public InputSource getExternalSubset(String name, String baseURI) throws SAXException, IOException 外部サブセットが文書テキストに宣言されなかった場合、何も使用されないことをパーサーに通知します。- 定義:
getExternalSubset、インタフェースEntityResolver2- パラメータ:
name- 文書のルート要素の識別。 利用可能なDOCTYPE宣言または実際のルート要素からの名前。baseURI- 文書のベースURI。外部サブセットを選択する追加ヒントとして機能する。 XMLReaderにInputSourceしか提供されなかったためにnullとなる場合を除き、常に絶対URIである。- 戻り値:
- パーサーによって使用される新しい外部サブセットを記述するInputSourceオブジェクト。外部サブセットが提供されない場合はnullが示される。
- 例外:
SAXException- 任意のSAX例外。ほかの例外をラップしている可能性があります。IOException- 新しいInputStreamやReaderの作成失敗、または不正なURLを示している可能性があります。
-
resolveEntity
public InputSource resolveEntity(String name, String publicId, String baseURI, String systemId) throws SAXException, IOException 基底URIに対してsystemIdを解釈処理して結果が絶対URIとなったエンティティ・テキストを読み取るようパーサーに通知します。 古い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にはなりません。宣言されたエンティティと外部サブセットのみが、そうしたパーサーによって解決されます。- 戻り値:
- パーサーによって使用される新しい入力ソースを記述するInputSourceオブジェクト。 nullを返すことによって、基底URIに対するシステムIDを解決し、結果として得られるURIにつなげるようにパーサーに指示する。
- 例外:
SAXException- 任意のSAX例外。ほかの例外をラップしている可能性があります。IOException- 新しいInputStreamやReaderの作成失敗、または不正なURLを示している可能性があります。
-
resolveEntity
public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException nullのエンティティ名とベースURIを使用してEntityResolver2.resolveEntity()を呼び出します。 このクラスを使用するには、そのメソッドをオーバーライドするだけでかまいません。- 定義:
resolveEntity、インタフェースEntityResolver- オーバーライド:
resolveEntity、クラスDefaultHandler- パラメータ:
publicId- 公開識別子。使用できない場合はnull。systemId- XML文書に含まれているシステム識別子。- 戻り値:
- 新しい入力ソース。デフォルトの動作が必要な場合はnull。
- 例外:
SAXException- 任意のSAX例外。ほかの例外をラップしている可能性があります。IOException- 新しい入力ソースの設定中にエラーが発生した場合。- 関連項目:
-