public class InputSource
extends Object
java.lang.Object | |
↳ | org.xml.sax.InputSource |
XML实体的单个输入源。
This module, both source code and documentation, is in the Public Domain, and comes with NO WARRANTY. See http://www.saxproject.org for further information.
该类允许SAX应用程序将关于输入源的信息封装在单个对象中,该对象可能包括公共标识符,系统标识符,字节流(可能具有指定编码)和/或字符流。
应用程序可以向解析器提供输入源的两个位置:作为Parser.parse方法的参数,或作为EntityResolver.resolveEntity方法的返回值。
SAX解析器将使用InputSource对象来确定如何读取XML输入。 如果有可用的字符流,解析器将直接读取该流,忽略在该流中找到的任何文本编码声明。 如果没有字符流,但有字节流,则解析器将使用该字节流,使用InputSource中指定的编码或其他(如果没有指定编码)使用算法(例如,输入)来自动检测字符编码XML规范。 如果字符流和字节流都不可用,解析器将尝试打开与由系统标识符标识的资源的URI连接。
InputSource对象属于应用程序:SAX解析器绝不会以任何方式对其进行修改(如有必要,它可能会修改副本)。 然而,字节流和字符流的标准处理是关闭它们作为分析结束清理的一部分,因此应用程序不应当在将这些流传递给解析器之后尝试重新使用这些流。
Public constructors |
|
---|---|
InputSource() 零参数默认构造函数。 |
|
InputSource(String systemId) 用系统标识符创建一个新的输入源。 |
|
InputSource(InputStream byteStream) 用字节流创建一个新的输入源。 |
|
InputSource(Reader characterStream) 用字符流创建一个新的输入源。 |
Public methods |
|
---|---|
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) 为此输入源设置系统标识符。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
InputSource (String systemId)
用系统标识符创建一个新的输入源。
应用程序也可以使用setPublicId来包含公共标识符,或者setEncoding指定字符编码(如果已知)。
如果系统标识符是一个URL,它必须完全解析(它可能不是一个相对URL)。
Parameters | |
---|---|
systemId |
String : The system identifier (URI). |
InputSource (InputStream byteStream)
用字节流创建一个新的输入源。
应用程序编写者应使用setSystemId()为解析相对URI提供基础,可使用setPublicId包含公共标识符,并可使用setEncoding指定对象的字符编码。
Parameters | |
---|---|
byteStream |
InputStream : The raw byte stream containing the document. |
InputSource (Reader characterStream)
用字符流创建一个新的输入源。
应用程序编写者应该使用setSystemId()为解析相对URI提供基础,并且可以使用setPublicId来包含公共标识符。
字符流不应包含字节顺序标记。
Parameters | |
---|---|
characterStream |
Reader : The raw character stream containing the document. |
InputStream getByteStream ()
获取该输入源的字节流。
getEncoding方法将返回此字节流的字符编码,如果未知,则返回null。
Returns | |
---|---|
InputStream |
The byte stream, or null if none was supplied. |
Reader getCharacterStream ()
获取此输入源的字符流。
Returns | |
---|---|
Reader |
The character stream, or null if none was supplied. |
也可以看看:
String getEncoding ()
获取字节流或URI的字符编码。 当应用程序提供字符流时,该值将被忽略。
Returns | |
---|---|
String |
The encoding, or null if none was supplied. |
String getPublicId ()
获取该输入源的公共标识符。
Returns | |
---|---|
String |
The public identifier, or null if none was supplied. |
也可以看看:
String getSystemId ()
获取该输入源的系统标识符。
getEncoding方法将返回指向的对象的字符编码,如果未知,则返回null。
如果系统ID是一个URL,它将被完全解析。
Returns | |
---|---|
String |
The system identifier, or null if none was supplied. |
也可以看看:
void setByteStream (InputStream byteStream)
设置该输入源的字节流。
如果还有指定的字符流,则SAX解析器将忽略此操作,但它将使用字节流来优先打开URI连接本身。
如果应用程序知道字节流的字符编码,则应使用setEncoding方法对其进行设置。
Parameters | |
---|---|
byteStream |
InputStream : A byte stream containing an XML document or other entity. |
void setCharacterStream (Reader characterStream)
为此输入源设置字符流。
如果指定了字符流,则SAX解析器将忽略任何字节流,并且不会尝试打开与系统标识符的URI连接。
Parameters | |
---|---|
characterStream |
Reader : The character stream containing the XML document or other entity. |
也可以看看:
void setEncoding (String encoding)
设置字符编码(如果已知)。
编码必须是XML编码声明可接受的字符串(请参阅XML 1.0建议的第4.3.3节)。
当应用程序提供字符流时,此方法不起作用。
Parameters | |
---|---|
encoding |
String : A string describing the character encoding. |
void setPublicId (String publicId)
为此输入源设置公共标识符。
公共标识符始终是可选的:如果应用程序编写器包含一个,它将作为位置信息的一部分提供。
Parameters | |
---|---|
publicId |
String : The public identifier as a string. |
void setSystemId (String systemId)
为此输入源设置系统标识符。
如果有字节流或字符流,则系统标识符是可选的,但提供一个字符流仍然有用,因为应用程序可以使用它来解析相对URI并将其包含在错误消息和警告中(解析器将尝试只有在没有指定字节流或字符流的情况下才打开与URI的连接)。
如果应用程序知道系统标识符指向的对象的字符编码,则它可以使用setEncoding方法注册编码。
如果系统标识符是一个URL,它必须完全解析(它可能不是一个相对URL)。
Parameters | |
---|---|
systemId |
String : The system identifier as a string. |