SAXアプリケーションは、このクラスを利用して入力ソースに関する情報を単一のオブジェクトにカプセル化します。このオブジェクトには、公開識別子、システム識別子、バイト・ストリーム(エンコーディングが指定されている場合もある)、文字ストリームなどが含まれます。
アプリケーションは、入力ソースをParser.parseメソッドの引数として、あるいはEntityResolver.resolveEntityメソッドの戻り値としてパーサーに渡すことができます。
SAXパーサーは、InputSourceオブジェクトを使用してXML入力を読み込む方法を決定します。 使用可能な文字ストリームがある場合、パーサーは、そのストリーム内で見つかったテキスト・エンコーディング宣言を無視して、そのストリームを直接読み込みます。 文字ストリームがなく、バイト・ストリームがある場合、パーサーは、InputSourceで指定されたエンコーディングを使用して、そのバイト・ストリームを使用します。あるいは、エンコーディングが指定されていない場合は、XML仕様にあるようなアルゴリズムを使用した文字エンコーディングを自動検出して、そのバイト・ストリームを使用します。 文字ストリームとバイト・ストリームのどちらも使用できない場合、パーサーは、システム識別子によって識別されたリソースへのURI接続を開こうとします。
InputSourceオブジェクトはアプリケーションに所属するため、これをSAXパーサーが変更することはできませんが、必要に応じてコピーを作成して変更することは可能です。 ただし、バイト・ストリームと文字ストリームの両方の標準的な処理は、それらをend-of-parseクリーンアップの一環として閉じることであるため、アプリケーションは、パーサーに渡されたあとでそのようなストリームを再利用しようとはしません。
- 導入されたバージョン:
- 1.4, SAX 1.0
- 関連項目:
-
コンストラクタのサマリー
コンストラクタ説明デフォルトの引数なしのコンストラクタ。InputSource
(InputStream byteStream) バイト・ストリームを指定して新しい入力ソースを作成します。InputSource
(Reader characterStream) 文字ストリームを指定して新しい入力ソースを作成します。InputSource
(String systemId) システム識別子を指定して新しい入力ソースを作成します。 -
メソッドのサマリー
修飾子と型メソッド説明この入力ソースのバイト・ストリームを取得します。この入力ソースの文字ストリームを取得します。バイト・ストリームまたはURIの文字セットを取得します。この入力ソースの公開識別子を取得します。この入力ソースのシステム識別子を取得します。boolean
isEmpty()
InputSource
オブジェクトが空かどうかを示します。void
setByteStream
(InputStream byteStream) この入力ソースのバイト・ストリームを設定します。void
setCharacterStream
(Reader characterStream) この入力ソースの文字ストリームを設定します。void
setEncoding
(String encoding) 文字エンコーディングがわかっている場合、これを設定します。void
setPublicId
(String publicId) この入力ソースの公開識別子を設定します。void
setSystemId
(String systemId) この入力ソースのシステム識別子を設定します。
-
コンストラクタの詳細
-
InputSource
public InputSource()デフォルトの引数なしのコンストラクタ。- 関連項目:
-
InputSource
public InputSource(String systemId) システム識別子を指定して新しい入力ソースを作成します。setPublicIdを使って、アプリケーションに公開識別子を含めることもできます。setEncodingを使って既知の文字セットを指定することもできます。
システム識別子がURLである場合、完全に解決する必要があります。また、相対URLでない場合もあります。
- パラメータ:
systemId
- システム識別子(URI)。- 関連項目:
-
InputSource
public InputSource(InputStream byteStream) バイト・ストリームを指定して新しい入力ソースを作成します。アプリケーションの作成者は、setSystemId()を使って相対URIのベースを提供する必要があります。SetPublicIdを使ってアプリケーションに公開識別子を含めたり、setEncodingを使ってオブジェクトの文字セットを指定することもできます。
- パラメータ:
byteStream
- 文書を含むrawバイト・ストリーム。- 関連項目:
-
InputSource
public InputSource(Reader characterStream) 文字ストリームを指定して新しい入力ソースを作成します。アプリケーションの作成者は、setSystemId()を使って、相対URIを解決するためのベースを提供する必要があります。また、setPublicIdを使ってアプリケーションに公開識別子を含めることができます。
バイト順序記号は文字ストリームに含まれません。
- パラメータ:
characterStream
- 文字ストリーム- 関連項目:
-
-
メソッドの詳細
-
setPublicId
public void setPublicId(String publicId) この入力ソースの公開識別子を設定します。公開識別子は常にオプションです。アプリケーションに公開識別子を含めたい場合は、位置情報の一部として指定します。
- パラメータ:
publicId
- 文字列としての公開識別子。- 関連項目:
-
getPublicId
-
setSystemId
public void setSystemId(String systemId) この入力ソースのシステム識別子を設定します。バイト・ストリームまたは文字ストリームがある場合、システム識別子はオプションですが、指定した方が便利です。アプリケーションはそれを使用して相対URIを解決し、エラー・メッセージや警告に含めることができるためです。パーサーは、バイト・ストリームまたは文字ストリームが指定されていない場合にかぎり、URIへの接続を開こうとします。
システム識別子が示すオブジェクトの文字セットがわかっている場合、アプリケーションはsetEncodingメソッドを使ってこのエンコーディングを登録できます。
システム識別子がURLである場合、完全に解決する必要があります。また、相対URLでない場合もあります。
- パラメータ:
systemId
- システム識別子を示す文字列。- 関連項目:
-
getSystemId
public String getSystemId()この入力ソースのシステム識別子を取得します。getEncodingメソッドは、このシステム識別子が示すオブジェクトの文字セットを返します。不明な場合はnullを返します。
システム識別子がURLである場合、完全に解決されます。
- 戻り値:
- システム識別子。提供されなかった場合はnull。
- 関連項目:
-
setByteStream
public void setByteStream(InputStream byteStream) この入力ソースのバイト・ストリームを設定します。SAXパーサーは、バイト・ストリームのほかに文字ストリームが指定されている場合、バイト・ストリームを無視します。バイト・ストリームは、URI接続を開始するより優先的に使用されます。
バイト・ストリームの文字セットがわかっている場合、アプリケーションはsetEncodingメソッドを使ってこのエンコーディングを設定する必要があります。
- パラメータ:
byteStream
- XML文書またはその他のエンティティを含むバイト・ストリーム。- 関連項目:
-
getByteStream
public InputStream getByteStream()この入力ソースのバイト・ストリームを取得します。getEncodingメソッドは、このバイト・ストリームの文字セットを返します。不明な場合はnullを返します。
- 戻り値:
- バイト・ストリーム。提供されなかった場合はnull。
- 関連項目:
-
setEncoding
public void setEncoding(String encoding) 文字エンコーディングがわかっている場合、これを設定します。エンコーディングは、XMLエンコーディング宣言(XML 1.0勧告のセクション4.3.3を参照)の規定に合った文字列である必要があります。
アプリケーションが文字ストリームを提供する場合、このメソッドには何の効果もありません。
- パラメータ:
encoding
- 文字エンコーディングを表す文字列。- 関連項目:
-
getEncoding
public String getEncoding()バイト・ストリームまたはURIの文字セットを取得します。 この値は、アプリケーションが文字ストリームを提供する場合は無視されます。- 戻り値:
- エンコーディング。提供されなかった場合はnull。
- 関連項目:
-
setCharacterStream
public void setCharacterStream(Reader characterStream) この入力ソースの文字ストリームを設定します。文字ストリームが指定されている場合、SAXパーサーはバイト・ストリームを無視し、また、システム識別子へのURI接続を開始しません。
- パラメータ:
characterStream
- XML文書またはその他のエンティティを含む文字ストリーム。- 関連項目:
-
getCharacterStream
-
isEmpty
public boolean isEmpty()InputSource
オブジェクトが空かどうかを示します。 空は次のように定義されます:- 公開識別子、システム識別子、バイト・ストリームおよび文字ストリームを含むすべての入力ソースは、
null
です。 - 公開識別子とシステム識別子は
null
で、バイト・ストリームと文字ストリームはnull
か、バイトまたは文字を含んでいません。このメソッドは、バイト・ストリームが指定されている場合はバイト・ストリームをリセットし、バイト・ストリームが指定されていない場合は文字ストリームをリセットします。
バイト・ストリームまたは文字ストリームのチェック中にエラーが発生した場合、メソッドはfalseを返し、XMLプロセッサがエラーを処理できるようにします。
- 戻り値:
InputSource
オブジェクトが空の場合はtrue、それ以外の場合はfalse
- 公開識別子、システム識別子、バイト・ストリームおよび文字ストリームを含むすべての入力ソースは、
-