InputSource (Org.XML.SAX Package)

java.lang.object を継承します。XML エンティティにとっての単体の入力ソースです。

このクラスによって、SAX アプリケーションが、入力ソースについての情報を 1 つのオブジェクトとしてカプセル化できるようになります。情報とは、パブリック ID、システム ID、バイトストリーム (できればエンコードの種類を指定して)、そして文字ストリームなどです。

アプリケーションがこの入力ソースをパーサーに渡す方法は 2 種類です。Parser.parse メソッドの引数として渡すか、EntityResolver.resolveEntity メソッドの戻り値として渡します。

SAX パーサーは XML 入力の読み込み方法を決めるために InputSource オブジェクトを使用します。有効な文字ストリームが存在する場合はパーサーがそのストリームを直接読み込みます。文字ストリームがない場合は、バイトストリームが利用可能であれば、バイトストリームが使用されます。文字ストリームもバイトストリームも無効であれば、パーサーはシステム ID で指定されたリソースへの URI 接続を開こうと試みます。

InputSource オブジェクトはアプリケーションに属しています。SAX パーサーで編集してはなりません (必要な場合はコピーを編集します)。

Constructors

引数のないデフォルトのコンストラクタです。

構文:

public InputSource()

システム ID を含めた新規の入力ソースを作成します。アプリケーションではパブリック ID を含めるために setPublicId も使用できます。または分かっていれば文字のエンコード方式を指定するために setEncoding も使用できます。システム ID が URL の場合は、完全に解析されなければなりません。

構文:

public InputSource(java.lang.String systemId)

パラメータ

systemId - システム ID (URI) です。

バイトストリームを使用して新規の入力ソースを生成します。アプリケーション作成者は、相対 URI を解析するためのベースを提供するために setSystemId が使用できます。またパブリック ID を含めるためには setPublicId が使用できます。オブジェクトの文字エンコード方式を指定するためには setEncoding が使用できます。

構文:

public InputSource(java.io.InputStream byteStream)

パラメータ

byteStream - 文書を含む未処理のバイトストリームです。

文字ストリームを使用して新規の入力ソースを生成します。アプリケーション作成者は、相対 URI を解析するためのベースを提供するために setSystemId() が、パブリック ID を含めるために setPublicId が使用できます。文字ストリームはバイトオーダーマークを含んではいけません。

構文:

public InputSource(java.io.Reader characterStream).

メソッドについては、以下を参照してください。

getByteStream

この入力ソースのバイトストリームを取得します。getEncoding メソッドはこのバイトストリーム用の文字エンコード方式を返します。未知の場合は Null を返します。

構文:

public java.io.InputStream getByteStream()

戻り値:

バイトストリームです。バイトストリームがない場合は Null です。

getCharacterStream

この入力ソースの文字ストリームを取得します。

構文:

public java.io.Reader getCharacterStream()

戻り値:

文字ストリームです。文字ストリームがない場合は Null です。

getEncoding

バイトストリームまたは URI 用の文字エンコード方式を取得します。

構文:

public java.lang.String getEncoding()

戻り値:

エンコード方式です。エンコード方式がない場合は Null です。

getPublicID

この入力ソース用のパブリック ID を取得します。

構文:

public java.lang.String getPublicId()

戻り値:

パブリック ID です。パブリック ID がない場合は Null です。

getSystemID

この入力ソースのシステム ID を取得します。getEncoding メソッドは対象のオブジェクトの文字エンコード方式を返します。未知の場合は Null を返します。システム ID が URL の場合、完全に解析されなければなりません。

構文:

public java.lang.String getSystemId()

戻り値:

システム ID です。

setByteStream

この入力ソースのバイトストリームを設定します。SAX パーサーは文字ストリームが指定されているとこのメソッドを無視します。しかし URI 接続自身を開くには優先してバイトストリームを使用します。

アプリケーションでバイトストリームの文字エンコード方式が分かっている場合は、setEncoding メソッドで設定しなければなりません。

構文:

public void setByteStream(java.io.InputStream byteStream)

パラメータ

byteStream - XML 文書か他のエンティティを含むバイトストリームです。

setCharacterStream

この入力ソースの文字ストリームを設定します。文字ストリームが指定されていると、SAX パーサーはバイトストリームを無視し、システム ID への URI 接続を開く試みは行われません。

構文:

public void setCharacterStream(java.io.Reader characterStream)

パラメータ

characterStream - XML 文書または他のエンティティを含む文字ストリームです。

setEncoding

分かっていれば文字エンコード方式を設定します。エンコード方式は、XML エンコーディング宣言で使用できるように文字列でなければなりません。アプリケーションで文字ストリームが提供されている場合はこのメソッドは無効です。

構文:

public void setEncoding(java.lang.String encoding)

パラメータ

encoding - 文字エンコード方式を表す文字列です。

setPublicID

この入力ソースにパブリック ID を設定します。パブリック ID は常に省略できます。アプリケーションの書き込みにパブリック ID が含まれる場合は、ロケーション情報の一部として提供されます。

構文:

public void setPublicId(java.lang.String publicId)

パラメータ

publicId - 文字列としてのパブリック ID です。

setSystemID

この入力ソースにシステム ID を設定します。システム ID は、バイトストリームか文字ストリームが存在する場合は常に省略できますが、システム ID を提供することは有効です。アプリケーションで相対 URI を解析するのに使用できたり、エラーや警告のメッセージに ID を含めたりできます (パーサーは指定されたバイトストリームまたは文字ストリームがない場合のみ、URI への接続を開こうと試みます)。

アプリケーションで、システム ID の示すオブジェクトの文字エンコード方式が分かっている場合、setEncoding メソッドを使用してエンコード方式を登録できます。システム ID が URL の場合は、完全に解析されなければなりません。

構文:

public void setSystemId(java.lang.String systemId)

パラメータ

systemId - 文字列としてのシステム ID です。