public class InputSource extends Object
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解析器不会修改它以任何方式(必要时也可能会修改副本)。然而,标准处理的两个字节和字符流是关闭他们的解析清理结束的一部分,所以应用程序不应该尝试重新使用这些流后,他们已经交给了一个解析器。
Constructor and Description |
---|
InputSource()
零参数默认构造函数。
|
InputSource(InputStream byteStream)
创建一个新的输入源,用一个字节流。
|
InputSource(Reader characterStream)
用一个字符流创建一个新的输入源。
|
InputSource(String systemId)
用一个系统标识符创建一个新的输入源。
|
Modifier and Type | Method and Description |
---|---|
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包含公共标识符为好,或者,指定字符编码,如果知道的话。
如果系统标识符是一个网址,它必须完全解决(它可能不是一个相对的网址)。
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包含公共标识符,并且可以使用,指定对象的字符编码。
byteStream
包含文档的原始字节流。
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连接如果没有字节流或字符流中指定)。
如果应用程序知道对象的字符编码所指向的系统标识符,它可以登记编码使用,方法。
如果系统标识符是一个网址,它必须完全解决(它可能不是一个相对的网址)。
systemId
-作为一个字符串标识系统。
setEncoding(java.lang.String)
,
getSystemId()
,
Locator.getSystemId()
,
SAXParseException.getSystemId()
public String getSystemId()
的getencoding方法将返回字符编码指向的对象,如果未知或无效。
如果系统的身份证是一个网址,它将完全解决。
setSystemId(java.lang.String)
,
getEncoding()
public void setByteStream(InputStream byteStream)
SAX解析器会如果也有一个字符流指定忽略这一点,但它会优先开放URI连接本身使用字节流。
如果应用程序知道字节流的字符编码,它应该确定它的方法。
byteStream
-包含一个XML文档或其他实体的字节流。
setEncoding(java.lang.String)
,
getByteStream()
,
getEncoding()
,
InputStream
public InputStream getByteStream()
的getencoding方法将返回这个字节流的字符编码,如果未知或无效。
getEncoding()
,
setByteStream(java.io.InputStream)
public void setEncoding(String encoding)
编码必须是一个可接受的XML编码声明字符串(参见XML 1推荐第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)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.