ContentHandler (クラス)
public abstract ContentHandler
パッケージ: CURL.XML.SAX.BASE
直接継承しているサブクラス: DefaultHandler, XMLFilterImpl

ドキュメントの論理コンテンツの通知を受け取ります。

説明

これは、大部分の SAX アプリケーションが実装するメインのインターフェイスです。アプリケーションが基本解析イベントに関する情報を必要とする場合、アプリケーションはこのインターフェイスを実行し、XMLReader.set-content-handler メソッドを使用してインスタンスを SAX パーサーに登録します。パーサーはそのインスタンスを使用して、開始/終了要素や文字データなどの基本的なドキュメント関連イベントをレポートします。

このインターフェイス内のイベントの順番は非常に重要で、ドキュメント自体内での情報の順番を反映しています。たとえば、要素のすべてのコンテンツ (文字データ、処理インストラクション、および/または部分的要素) は順番に start-element イベントと、対応する end-element イベントの間に表示されます。

注意事項

参照:XMLReader, DTDHandler, ErrorHandler

メソッド
characters:文字データの通知を受け取ります。
public abstract {ContentHandler.characters
ch:StringBuf,
start:int,
length:int
}:void
end-document:ドキュメント終了の通知を受け取ります。
public abstract {ContentHandler.end-document}:void
end-element:要素の終了の通知を受け取ります。
public abstract {ContentHandler.end-element
namespace-URI:String,
local-name:String,
q-name:String
}:void
end-prefix-mapping:prefix-URI マッピングのスコープを終了します。
public abstract {ContentHandler.end-prefix-mapping prefix:String}:void
ignorable-whitespace:要素コンテンツ内の無視可能な空白の通知を受け取ります。
public abstract {ContentHandler.ignorable-whitespace
ch:StringBuf,
start:int,
length:int
}:void
processing-instruction:処理インストラクションの通知を受け取ります。
public abstract {ContentHandler.processing-instruction
target:String,
data:#String
}:void
set-document-locator:SAX ドキュメント イベントの発信源を検索するオブジェクトを受け取ります。
public abstract {ContentHandler.set-document-locator
locator:Locator
}:void
skipped-entity:スキップされたエンティティの通知を受け取ります。
public abstract {ContentHandler.skipped-entity name:String}:void
start-document:ドキュメント開始の通知を受け取ります。
public abstract {ContentHandler.start-document}:void
start-element:要素の開始の通知を受け取ります。
public abstract {ContentHandler.start-element
namespace-URI:String,
local-name:String,
q-name:String,
atts:Attributes
}:void
start-prefix-mapping:prefix-URI 名前空間マッピングのスコープを開始します。
public abstract {ContentHandler.start-prefix-mapping
prefix:String,
uri:String
}:void
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize







メソッド詳細
characters (メソッド)
public abstract {ContentHandler.characters
ch:StringBuf,
start:int,
length:int
}:void

文字データの通知を受け取ります。

ch: XML ドキュメントからの文字。
start: 配列内の開始位置。
length: 配列から読み取る文字数。

説明

パーサーはこのメソッドを呼び出して、文字データの各チャンクをレポートします。SAX パーサーは、継続したすべての文字を単一のチャンク、または複数のチャンクに分割して返す場合があります。ただし、ロケーターが有効な情報を提供できるように、単一イベント内のすべての文字は同じ外部エンティティから読み取る必要があります。

アプリケーションが指定範囲外の配列から読み取りを試行することはできません。これは、データ(文字 0 個 )と共に呼び出しされることは不可能です。

パーサーによっては、このメソッドではなく (検証パーサーはこのメソッドを必ず使用します) 、ContentHandler.ignorable-whitespace メソッドを使用して、要素コンテンツの空白をレポートすることがあることに注意してください。

注意事項

参照:ContentHandler.ignorable-whitespace, Locator


end-document (メソッド)
public abstract {ContentHandler.end-document}:void

ドキュメント終了の通知を受け取ります。

説明

SAX パーサーはこのメソッドを一度だけ起動します。これは解析中に起動される最後のメソッドとなります。パーサーは、解析を中断 (修復不可能なエラーによる) または、入力の最後に到達するまではこのメソッドを決して起動しません。

注意事項

参照:ContentHandler.start-document


end-element (メソッド)
public abstract {ContentHandler.end-element
namespace-URI:String,
local-name:String,
q-name:String
}:void

要素の終了の通知を受け取ります。

namespace-URI: 名前空間 URI 。要素に名前空間 URI がないか、名前空間処理が実行されていない場合は空の文字列。
local-name: ローカル名 (プレフィックスなし)。名前空間処理が実行されていない場合は空の文字列。
q-name: XML 1.0 修飾名 (プレフィックス付き)。修飾名が使用できない場合は空の文字列。

説明

SAX パーサーは、XML ドキュメント内の各要素の最後にこのメソッドを起動します。各 end-element イベント (要素が空白の場合でも) について、対応する ContentHandler.start-element イベントが存在します。

名前についての詳細は、 ContentHandler.start-element を参照してください。


end-prefix-mapping (メソッド)
public abstract {ContentHandler.end-prefix-mapping prefix:String}:void

prefix-URI マッピングのスコープを終了します。

prefix: マッピングされているプレフィックス。

説明

詳細については、ContentHandler.start-prefix-mapping を参照してください。このイベントは常に、対応する ContentHandler.end-element イベントの後に発生しますが、それ以外は ContentHandler.end-prefix-mapping イベントの順番は保証されていません。

注意事項

参照:ContentHandler.start-prefix-mapping, ContentHandler.end-element


ignorable-whitespace (メソッド)
public abstract {ContentHandler.ignorable-whitespace
ch:StringBuf,
start:int,
length:int
}:void

要素コンテンツ内の無視可能な空白の通知を受け取ります。

ch: XML ドキュメントからの文字。
start: 配列内の開始位置。
length: 配列から読み取る文字数。

説明

検証パーサーは、必ずこのメソッドを使用して要素コンテンツ内の空白の各チャンクをレポートする必要があります (『W3C XML 1.0 Recommendation, section 2.10』を参照してください)。非検証パーサーも、解析やコンテンツ モデル使用が可能な場合はこのメソッドを使用できます。

SAX パーサーは、継続したすべての空白を単一のチャンク、または複数のチャンクに分割して返す場合があります。ただし、ロケーターが有効な情報を提供できるように、単一イベント内のすべての文字は同じ外部エンティティから読み取る必要があります。

アプリケーションが指定範囲外の配列から読み取ることはできません。これは、データ(文字 0 個 )と共に呼び出しされることは不可能です。

注意事項

参照:ContentHandler.characters, Locator


processing-instruction (メソッド)
public abstract {ContentHandler.processing-instruction
target:String,
data:#String
}:void

処理インストラクションの通知を受け取ります。

target: 処理インストラクションのターゲット。
data: 処理インストラクション データ。提供されていない場合は null。データには、ターゲットとデータを分離する空白は含まれません。

説明

パーサーは、検出された各処理インストラクションごとにこのメソッドを一度起動します。処理インストラクションは、メインのドキュメント要素の前または後に発生する場合があることに注意してください。

SAX パーサーは、XML 宣言 (XML 1.0, section 2.8) またはテキスト宣言 (XML 1.0, section 4.3.1) のレポートにはこのメソッドを使用できません。


set-document-locator (メソッド)
public abstract {ContentHandler.set-document-locator
locator:Locator
}:void

SAX ドキュメント イベントの発信源を検索するオブジェクトを受け取ります。

locator: すべての SAX ドキュメント イベントの位置を返すオブジェクトです。

説明

Curl の SAXParser は、ContentHandler インターフェイス内の他のメソッドを起動する前にこのメソッドを起動して、アプリケーションにロケーターを提供します。

パーサーがエラーをレポートしていない場合でも、アプリケーションはこのロケーターによって、すべてのドキュメント関連イベントの終了位置を決定することができます。通常、アプリケーションはこの情報を使用して、アプリケーション自体のエラーをレポートします (たとえば、アプリケーションのビジネスルールにマッチしない文字コンテンツなど)。ロケーターで返されたこの情報は、検索エンジンで使用するには不十分です。

ロケーターは、このインターフェイス内のイベント起動中にのみ正しい情報を返すことに注意してください。イベント起動中以外では、アプリケーションはこのロケーターの使用を試行してはなりません。

注意事項

参照:Locator および Locator2

注意事項

locatorLocator2 になる場合があります。


skipped-entity (メソッド)
public abstract {ContentHandler.skipped-entity name:String}:void

スキップされたエンティティの通知を受け取ります。

name: スキップされたエンティティの名前。これがパラメータ エンティティの場合は、名前は % で開始します。外部 DTD サブセットの場合は、文字列 [dtd] です。

説明

パーサーは、スキップされた各エンティティごとにこのメソッドを一度起動します。非検証プロセッサは、宣言を見ていない場合にエンティティをスキップすることがあります (これはたとえば、エンティティが外部 DTD サブセット内で宣言されたなどの理由によります)。http://xml.org/sax/features/external-general-entitieshttp://xml.org/sax/features/external-parameter-entities プロパティの値に応じて、すべてのプロセッサが外部エンティティをスキップする場合もあります。


start-document (メソッド)
public abstract {ContentHandler.start-document}:void

ドキュメント開始の通知を受け取ります。

説明

SAX パーサーは、このインターフェイス内または DTDHandler (ContentHandler.set-document-locator を除く) 内の他のメソッドを起動する前に、このメソッドを一度だけ起動します。

注意事項

参照:ContentHandler.end-document


start-element (メソッド)
public abstract {ContentHandler.start-element
namespace-URI:String,
local-name:String,
q-name:String,
atts:Attributes
}:void

要素の開始の通知を受け取ります。

namespace-URI: 名前空間 URI 。要素に名前空間 URI がないか、名前空間処理が実行されていない場合は空の文字列。
local-name: ローカル名 (プレフィックスなし)。名前空間処理が実行されていない場合は空の文字列。
q-name: 修飾名 (プレフィックス付き)。修飾名が使用できない場合は空の文字列。
atts: 要素に所属している属性。属性がない場合は、空白の Attributes オブジェクトです。

説明

パーサーは、XML ドキュメント内のすべての各要素の開始時にこのメソッドを起動します。すべての ContentHandler.start-element イベント (要素が空白な場合も含む) について、対応する ContentHandler.end-element イベントが存在します。すべての要素のコンテンツは、対応する endElement イベントの前に順番にレポートされます。

このイベントでは、各要素について最大 3 個の名前コンポーネントを使用できます。
  1. 名前空間 URI
  2. ローカル名
  3. 修飾名 (プレフィックス付き)
http://xml.org/sax/features/namespaceshttp://xml.org/sax/features/namespace-prefixes プロパティの値に応じて、これら 3 個のうちのどれか、またはすべてが提供されます。

提供されている属性リストには、明示的な値 (指定または既定) を持つ属性のみが含まれることに注意してください。#IMPLIED 属性は省略されます。http://xml.org/sax/features/namespace-prefixes プロパティが true (既定は false で、true 値のサポートはオプション) の場合のみ、属性リストは名前空間宣言 (xmlns* 属性) で使用される属性を含みます。

注意事項

参照:ContentHandler.end-element, Attributes


start-prefix-mapping (メソッド)
public abstract {ContentHandler.start-prefix-mapping
prefix:String,
uri:String
}: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 イベントはありません。

注意事項

参照:ContentHandler.end-prefix-mapping, ContentHandler.start-element