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, 2018, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。