|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object org.xml.sax.helpers.DefaultHandler org.xml.sax.ext.DefaultHandler2
public class DefaultHandler2
このクラスは SAX2 の基本となるハンドラクラスを拡張して SAX2 の 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 エンティティーの一部の開始を報告します。 |
クラス 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 |
コンストラクタの詳細 |
---|
public DefaultHandler2()
メソッドの詳細 |
---|
public void startCDATA() throws SAXException
LexicalHandler
の記述:CDATA セクションのコンテンツは、正規の characters
イベントを介して報告されます。 このイベントは境界の報告だけに使用されます。
LexicalHandler
内の startCDATA
SAXException
- アプリケーションが例外を生成することがあるLexicalHandler.endCDATA()
public void endCDATA() throws SAXException
LexicalHandler
の記述:
LexicalHandler
内の endCDATA
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 イベントに対する正確な相対位置に出現する必要はありません。
start/endDTD イベントは、ContentHandler の start/endDocument イベント内の最初の startElement
イベントの前に出現します。
LexicalHandler
内の startDTD
name
- 文書型名publicId
- 宣言された外部 DTD サブセットの公開識別子。 宣言されていない場合は nullsystemId
- 宣言された外部 DTD サブセットのシステム識別子。宣言されていない場合は null。ドキュメントのベース URI に対しては解決されないことに注意すること
SAXException
- アプリケーションが例外を生成することがあるLexicalHandler.endDTD()
,
LexicalHandler.startEntity(java.lang.String)
public void endDTD() throws SAXException
LexicalHandler
の記述:このメソッドは、DOCTYPE 宣言の終わりを報告するメソッドです。 文書に DOCTYPE 宣言が含まれていない場合は呼び出されません。
LexicalHandler
内の endDTD
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 イベントを正しく入れ子にする必要があります。
LexicalHandler
内の startEntity
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
の記述:
LexicalHandler
内の endEntity
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 イベント (使用されている場合) の内部に正しく入れ子にする必要があります。
LexicalHandler
内の comment
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」という語のどれかの文字列になります。
値はアプリケーションに報告され、適正に正規化されてエンティティー参照と文字列参照を拡張した値になります。
DeclHandler
内の attributeDecl
eName
- 関連要素名aName
- 属性の名前type
- 属性型を示す文字列mode
- 属性のデフォルトモード (#IMPLIED、#REQUIRED、または #FIXED) を示す文字列。 いずれにも当てはまらない場合は nullvalue
- 属性のデフォルト値を示す文字列。 存在しない場合は null
SAXException
- アプリケーションが例外を生成することがあるpublic void elementDecl(String name, String model) throws SAXException
DeclHandler
の記述:コンテンツモデルは、文字列「EMPTY」、文字列「ANY」、または括弧に入れられたグループ (オプションで出現インジケータを伴う) で構成されます。このモデルは、すべてのパラメータエンティティーが完全に解決され、すべての空白文字が削除されるように正規化されます。 また、囲む括弧を含みます。その他の正規化 (重複した括弧の削除、出現インジケータの簡易化など) はパーサーによって随意行われます。
DeclHandler
内の elementDecl
name
- 要素型名model
- コンテンツモデルを示す正規文字列
SAXException
- アプリケーションが例外を生成することがあるpublic void externalEntityDecl(String name, String publicId, String systemId) throws SAXException
DeclHandler
の記述:有効な (最初の) エンティティー宣言だけが報告されます。
システム識別子が URL の場合、パーサーはこれをアプリケーションに渡す前に完全に解決する必要があります。
DeclHandler
内の externalEntityDecl
name
- エンティティーの名前。パラメータエンティティーの場合、 名前は「%」で始まるpublicId
- エンティティーの公開識別子。 指定されなかった場合は nullsystemId
- エンティティーのシステム識別子
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
の記述:有効な (最初の) エンティティー宣言だけが報告されます。通常のエンティティーとは異なり、値に含まれるすべてのパラメータエンティティーは拡張されます。
DeclHandler
内の internalEntityDecl
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
EntityResolver2
内の getExternalSubset
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 名、基底 URI、およびすでに絶対化されている systemId で呼び出すことができます。
EntityResolver2
内の resolveEntity
name
- 解決される外部エンティティーの識別。外部サブセットの「[dtd]」や パラメータエンティティーを示す「%」で開始される名前、 またはそれ以外の一般エンティティーの名前。SAX2 パーサーによって呼び出される場合は null ではないpublicId
- 参照される外部エンティティーの公開識別子 (XML 仕様で要求されるように正規化されている)。 提供されなかった場合は nullbaseURI
- 相対的な 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()
を呼び出します。このクラスを使用するには、そのメソッドをオーバーライドするだけでかまいません。
EntityResolver
内の resolveEntity
DefaultHandler
内の resolveEntity
publicId
- 公開識別子。使用できない場合は nullsystemId
- XML 文書に含まれているシステム 識別子
SAXException
- SAX 例外。ほかの例外をラップしている可能性がある
IOException
- Java 固有の入出力例外。通常、InputSource の新しい InputStream または Reader が生成されると発生するEntityResolver.resolveEntity(java.lang.String, java.lang.String)
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。