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, 2014, Oracle and/or its affiliates. All rights reserved.