public class InputSource extends Object
このモジュールは、ソースコード、文書ともに公開ドメインに置かれています。したがって、内容に関する保証は一切提供されません。詳細については、http://www.saxproject.org を参照してください。
SAX アプリケーションは、このクラスを利用して入力ソースに関する情報を単一のオブジェクトにカプセル化します。このオブジェクトには、公開識別子、システム識別子、バイトストリーム (エンコーディングが指定されている場合もある)、文字ストリームなどが含まれます。
アプリケーションは、入力ソースを Parser.parse メソッドの引数として、あるいは EntityResolver.resolveEntity メソッドの戻り値としてパーサーに渡すことができます。
SAX パーサーは、InputSource オブジェクトを使用して XML 入力を読み込む方法を決定します。使用可能な文字ストリームがある場合、パーサーは、そのストリーム内で見つかったテキストエンコーディング宣言を無視して、そのストリームを直接読み込みます。文字ストリームがなく、バイトストリームがある場合、パーサーは、InputSource で指定されたエンコーディングを使用して、そのバイトストリームを使用します。あるいは、エンコーディングが指定されていない場合は、XML 仕様にあるようなアルゴリズムを使った文字エンコーディングを自動検出して、そのバイトストリームを使用します。文字ストリームとバイトストリームのどちらも使用できない場合、パーサーは、システム識別子によって識別されたリソースへの URI 接続を開こうとします。
InputSource オブジェクトはアプリケーションに所属するため、これを SAX パーサーが変更することはできませんが、必要に応じてコピーを作成して変更することは可能です。ただし、バイトストリームと文字ストリームの両方の標準的な処理は、それらを end-of-parse クリーンアップの一環として閉じることであるため、アプリケーションは、パーサーに渡されたあとでそのようなストリームを再利用しようとはしません。
XMLReader.parse(org.xml.sax.InputSource)
, EntityResolver.resolveEntity(java.lang.String, java.lang.String)
, InputStream
, Reader
コンストラクタと説明 |
---|
InputSource()
デフォルトの引数なしのコンストラクタ。
|
InputSource(InputStream byteStream)
バイトストリームを指定して新しい入力ソースを作成します。
|
InputSource(Reader characterStream)
文字ストリームを指定して新しい入力ソースを作成します。
|
InputSource(String systemId)
システム識別子を指定して新しい入力ソースを作成します。
|
修飾子と型 | メソッドと説明 |
---|---|
InputStream |
getByteStream()
この入力ソースのバイトストリームを取得します。
|
Reader |
getCharacterStream()
この入力ソースの文字ストリームを取得します。
|
String |
getEncoding()
バイトストリームまたは URI の文字セットを取得します。
|
String |
getPublicId()
この入力ソースの公開識別子を取得します。
|
String |
getSystemId()
この入力ソースのシステム識別子を取得します。
|
void |
setByteStream(InputStream byteStream)
この入力ソースのバイトストリームを設定します。
|
void |
setCharacterStream(Reader characterStream)
この入力ソースの文字ストリームを設定します。
|
void |
setEncoding(String encoding)
文字エンコーディングがわかっている場合、これを設定します。
|
void |
setPublicId(String publicId)
この入力ソースの公開識別子を設定します。
|
void |
setSystemId(String systemId)
この入力ソースのシステム識別子を設定します。
|
public InputSource()
public InputSource(String systemId)
setPublicId を使って、アプリケーションに公開識別子を含めることもできます。 setEncoding を使って既知の文字セットを指定することもできます。
システム識別子が URL である場合、完全に解決する必要があります。また、相対 URL でない場合もあります。
systemId
- システム識別子 (URI)。setPublicId(java.lang.String)
, setSystemId(java.lang.String)
, setByteStream(java.io.InputStream)
, setEncoding(java.lang.String)
, setCharacterStream(java.io.Reader)
public InputSource(InputStream byteStream)
アプリケーションの作成者は、setSystemId() を使って相対 URI のベースを提供する必要があります。 SetPublicId を使ってアプリケーションに公開識別子を含めたり、setEncoding を使ってオブジェクトの文字セットを指定することもできます。
byteStream
- 文書を含む raw バイトストリーム。setPublicId(java.lang.String)
, setSystemId(java.lang.String)
, setEncoding(java.lang.String)
, setByteStream(java.io.InputStream)
, setCharacterStream(java.io.Reader)
public InputSource(Reader characterStream)
アプリケーションの作成者は、setSystemId() を使って、相対 URI を解決するためのベースを提供する必要があります。また、setPublicId を使ってアプリケーションに公開識別子を含めることができます。
バイト順序記号は文字ストリームに含まれません。
public void setPublicId(String publicId)
公開識別子は常にオプションです。アプリケーションに公開識別子を含めたい場合は、位置情報の一部として指定します。
publicId
- 文字列としての公開識別子。getPublicId()
, Locator.getPublicId()
, SAXParseException.getPublicId()
public String getPublicId()
setPublicId(java.lang.String)
public void setSystemId(String systemId)
バイトストリームまたは文字ストリームがある場合、システム識別子はオプションですが、指定した方が便利です。アプリケーションはそれを使用して相対 URI を解決し、エラーメッセージや警告に含めることができるためです。パーサーは、バイトストリームまたは文字ストリームが指定されていない場合にかぎり、URI への接続を開こうとします。
システム識別子が示すオブジェクトの文字セットがわかっている場合、アプリケーションは setEncoding メソッドを使ってこのエンコーディングを登録できます。
システム識別子が URL である場合、完全に解決する必要があります。また、相対 URL でない場合もあります。
systemId
- システム識別子を示す文字列。setEncoding(java.lang.String)
, getSystemId()
, Locator.getSystemId()
, SAXParseException.getSystemId()
public String getSystemId()
getEncoding メソッドは、このシステム識別子が示すオブジェクトの文字セットを返します。不明な場合は null を返します。
システム識別子が URL である場合、完全に解決されます。
setSystemId(java.lang.String)
, getEncoding()
public void setByteStream(InputStream byteStream)
SAX パーサーは、バイトストリームのほかに文字ストリームが指定されている場合、バイトストリームを無視します。バイトストリームは、URI 接続を開始するより優先的に使用されます。
バイトストリームの文字セットがわかっている場合、アプリケーションは setEncoding メソッドを使ってこのエンコーディングを設定する必要があります。
byteStream
- XML 文書またはその他のエンティティーを含むバイトストリーム。setEncoding(java.lang.String)
, getByteStream()
, getEncoding()
, InputStream
public InputStream getByteStream()
getEncoding メソッドは、このバイトストリームの文字セットを返します。不明な場合は null を返します。
getEncoding()
, setByteStream(java.io.InputStream)
public void setEncoding(String encoding)
エンコーディングは、XML エンコーディング宣言 (XML 1.0 勧告のセクション 4.3.3 を参照) の規定に合った文字列である必要があります。
アプリケーションが文字ストリームを提供する場合、このメソッドには何の効果もありません。
encoding
- 文字エンコーディングを表す文字列。setSystemId(java.lang.String)
, setByteStream(java.io.InputStream)
, getEncoding()
public String getEncoding()
setByteStream(java.io.InputStream)
, getSystemId()
, getByteStream()
public void setCharacterStream(Reader characterStream)
文字ストリームが指定されている場合、SAX パーサーはバイトストリームを無視し、また、システム識別子への URI 接続を開始しません。
characterStream
- XML 文書またはその他のエンティティーを含む文字ストリーム。getCharacterStream()
、Reader
public Reader getCharacterStream()
setCharacterStream(java.io.Reader)
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.