(クラス)
public abstract ContentHandler
ドキュメントの論理コンテンツの通知を受け取ります。
説明
これは、大部分の SAX アプリケーションが実装するメインのインターフェイスです。アプリケーションが基本解析イベントに関する情報を必要とする場合、アプリケーションはこのインターフェイスを実行し、
XMLReader.set-content-handler メソッドを使用してインスタンスを SAX パーサーに登録します。パーサーはそのインスタンスを使用して、開始/終了要素や文字データなどの基本的なドキュメント関連イベントをレポートします。
このインターフェイス内のイベントの順番は非常に重要で、ドキュメント自体内での情報の順番を反映しています。たとえば、要素のすべてのコンテンツ (文字データ、処理インストラクション、および/または部分的要素) は順番に
start-element イベントと、対応する
end-element イベントの間に表示されます。
注意事項
public abstract | {ContentHandler.characters}:void |
public abstract | {ContentHandler.end-document}:void |
public abstract | {ContentHandler.end-element}:void |
public abstract | {ContentHandler.end-prefix-mapping prefix:String}:void |
public abstract | {ContentHandler.ignorable-whitespace}:void |
public abstract | {ContentHandler.processing-instruction}:void |
public abstract | {ContentHandler.set-document-locator}:void |
public abstract | {ContentHandler.skipped-entity name:String}:void |
public abstract | {ContentHandler.start-document}:void |
public abstract | {ContentHandler.start-element}:void |
public abstract | {ContentHandler.start-prefix-mapping}:void |
(メソッド)
public abstract | {ContentHandler.characters}:void |
文字データの通知を受け取ります。
ch: XML ドキュメントからの文字。
start: 配列内の開始位置。
length: 配列から読み取る文字数。
説明
パーサーはこのメソッドを呼び出して、文字データの各チャンクをレポートします。SAX パーサーは、継続したすべての文字を単一のチャンク、または複数のチャンクに分割して返す場合があります。ただし、ロケーターが有効な情報を提供できるように、単一イベント内のすべての文字は同じ外部エンティティから読み取る必要があります。
アプリケーションが指定範囲外の配列から読み取りを試行することはできません。これは、データ(文字 0 個 )と共に呼び出しされることは不可能です。
パーサーによっては、このメソッドではなく (検証パーサーはこのメソッドを
必ず使用します) 、
ContentHandler.ignorable-whitespace メソッドを使用して、要素コンテンツの空白をレポートすることがあることに注意してください。
注意事項
(メソッド)
public abstract | {ContentHandler.end-document}:void |
ドキュメント終了の通知を受け取ります。
説明
SAX パーサーはこのメソッドを一度だけ起動します。これは解析中に起動される最後のメソッドとなります。パーサーは、解析を中断 (修復不可能なエラーによる) または、入力の最後に到達するまではこのメソッドを決して起動しません。
注意事項
(メソッド)
public abstract | {ContentHandler.end-element}:void |
要素の終了の通知を受け取ります。
namespace-URI: 名前空間 URI 。要素に名前空間 URI がないか、名前空間処理が実行されていない場合は空の文字列。
local-name: ローカル名 (プレフィックスなし)。名前空間処理が実行されていない場合は空の文字列。
q-name: XML 1.0 修飾名 (プレフィックス付き)。修飾名が使用できない場合は空の文字列。
説明
(メソッド)
public abstract | {ContentHandler.end-prefix-mapping prefix:String}:void |
prefix-URI マッピングのスコープを終了します。
prefix: マッピングされているプレフィックス。
説明
注意事項
(メソッド)
public abstract | {ContentHandler.ignorable-whitespace}:void |
要素コンテンツ内の無視可能な空白の通知を受け取ります。
ch: XML ドキュメントからの文字。
start: 配列内の開始位置。
length: 配列から読み取る文字数。
説明
検証パーサーは、必ずこのメソッドを使用して要素コンテンツ内の空白の各チャンクをレポートする必要があります (『W3C XML 1.0 Recommendation, section 2.10』を参照してください)。非検証パーサーも、解析やコンテンツ モデル使用が可能な場合はこのメソッドを使用できます。
SAX パーサーは、継続したすべての空白を単一のチャンク、または複数のチャンクに分割して返す場合があります。ただし、ロケーターが有効な情報を提供できるように、単一イベント内のすべての文字は同じ外部エンティティから読み取る必要があります。
アプリケーションが指定範囲外の配列から読み取ることはできません。これは、データ(文字 0 個 )と共に呼び出しされることは不可能です。
注意事項
(メソッド)
public abstract | {ContentHandler.processing-instruction}:void |
処理インストラクションの通知を受け取ります。
target: 処理インストラクションのターゲット。
data: 処理インストラクション データ。提供されていない場合は null。データには、ターゲットとデータを分離する空白は含まれません。
説明
パーサーは、検出された各処理インストラクションごとにこのメソッドを一度起動します。処理インストラクションは、メインのドキュメント要素の前または後に発生する場合があることに注意してください。
SAX パーサーは、XML 宣言 (XML 1.0, section 2.8) またはテキスト宣言 (XML 1.0, section 4.3.1) のレポートにはこのメソッドを使用できません。
(メソッド)
public abstract | {ContentHandler.set-document-locator}:void |
SAX ドキュメント イベントの発信源を検索するオブジェクトを受け取ります。
locator: すべての SAX ドキュメント イベントの位置を返すオブジェクトです。
説明
Curl の
SAXParser は、ContentHandler インターフェイス内の他のメソッドを起動する前にこのメソッドを起動して、アプリケーションにロケーターを提供します。
パーサーがエラーをレポートしていない場合でも、アプリケーションはこのロケーターによって、すべてのドキュメント関連イベントの終了位置を決定することができます。通常、アプリケーションはこの情報を使用して、アプリケーション自体のエラーをレポートします (たとえば、アプリケーションのビジネスルールにマッチしない文字コンテンツなど)。ロケーターで返されたこの情報は、検索エンジンで使用するには不十分です。
ロケーターは、このインターフェイス内のイベント起動中にのみ正しい情報を返すことに注意してください。イベント起動中以外では、アプリケーションはこのロケーターの使用を試行してはなりません。
注意事項
注意事項
(メソッド)
public abstract | {ContentHandler.skipped-entity name:String}:void |
スキップされたエンティティの通知を受け取ります。
name: スキップされたエンティティの名前。これがパラメータ エンティティの場合は、名前は %
で開始します。外部 DTD サブセットの場合は、文字列 [dtd]
です。
説明
パーサーは、スキップされた各エンティティごとにこのメソッドを一度起動します。非検証プロセッサは、宣言を見ていない場合にエンティティをスキップすることがあります (これはたとえば、エンティティが外部 DTD サブセット内で宣言されたなどの理由によります)。http://xml.org/sax/features/external-general-entities と http://xml.org/sax/features/external-parameter-entities プロパティの値に応じて、すべてのプロセッサが外部エンティティをスキップする場合もあります。
(メソッド)
public abstract | {ContentHandler.start-document}:void |
ドキュメント開始の通知を受け取ります。
説明
注意事項
(メソッド)
public abstract | {ContentHandler.start-element}:void |
要素の開始の通知を受け取ります。
namespace-URI: 名前空間 URI 。要素に名前空間 URI がないか、名前空間処理が実行されていない場合は空の文字列。
local-name: ローカル名 (プレフィックスなし)。名前空間処理が実行されていない場合は空の文字列。
q-name: 修飾名 (プレフィックス付き)。修飾名が使用できない場合は空の文字列。
atts: 要素に所属している属性。属性がない場合は、空白の Attributes オブジェクトです。
説明
パーサーは、XML ドキュメント内のすべての各要素の開始時にこのメソッドを起動します。すべての
ContentHandler.start-element イベント (要素が空白な場合も含む) について、対応する
ContentHandler.end-element イベントが存在します。すべての要素のコンテンツは、対応する endElement イベントの前に順番にレポートされます。
このイベントでは、各要素について最大 3 個の名前コンポーネントを使用できます。
- 名前空間 URI
- ローカル名
- 修飾名 (プレフィックス付き)
http://xml.org/sax/features/namespaces と
http://xml.org/sax/features/namespace-prefixes プロパティの値に応じて、これら 3 個のうちのどれか、またはすべてが提供されます。
- 名前空間 URI とローカル名は、名前空間プロパティが true (既定) の場合は必須で、名前空間プロパティが false の場合はオプションです (1 つ指定した場合は両方とも指定必要)。
- 修飾名は、namespace-prefixes プロパティが true の場合は必須で、namespace-prefixes プロパティが false (既定) の場合はオプションです。
提供されている属性リストには、明示的な値 (指定または既定) を持つ属性のみが含まれることに注意してください。
#IMPLIED 属性は省略されます。
http://xml.org/sax/features/namespace-prefixes プロパティが
true (既定は
false で、
true 値のサポートはオプション) の場合のみ、属性リストは名前空間宣言 (
xmlns* 属性) で使用される属性を含みます。
注意事項
(メソッド)
public abstract | {ContentHandler.start-prefix-mapping}:void |
prefix-URI 名前空間マッピングのスコープを開始します。
prefix: 宣言される名前空間プレフィックスです。
uri: プレフィックスがマップされる先の名前空間 URI です。
説明
このイベントからの情報は、通常の名前空間処理では必要ありません。
http://xml.org/sax/features/namespaces 機能が
true (既定) の場合、SAX XML リーダーは自動的にプレフィックスを要素と属性名に置き換えます。
ただし、アプリケーションが文字データや属性値内でプレフィックスを使用する必要が生じたときにプレフィックスを安全に自動的に拡張できない場合があります。この場合は、必要に応じて start/end-prefix-mapping イベントがアプリケーションに情報を提供して、コンテキスト自体内でプレフィックスを拡張します。
start/end-prefix-mapping イベントがその相対関係に合わせて適切にネストされるかどうかは保証されていません。つまり、すべての start-prefix-mapping イベントは対応する
ContentHandler.start-element イベントの前に発生し、すべての
ContentHandler.end-prefix-mapping イベントは対応する
ContentHandler.end-element イベントの後に発生しますが、それ以外の順番は保証されません。
xml
プレフィックスは宣言済みで不変なので、この start/end-prefix-mapping イベントはありません。
注意事項