所有类
|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
org.xml.sax
类 InputSource
java.lang.Object org.xml.sax.InputSource
-
public class InputSource
- extends Object
XML 实体的单一输入源。
此模块(包括源代码和文档)在公共域中,同时 没有担保。有关更多信息,请参阅http://www.saxproject.org。
此类允许 SAX 应用程序封装有关单个对象中的输入源的信息,它可包括公共标识符、系统标识符、字节流(可能带有指定的编码)、基本 URI 和/ 或字符流。
在以下两种情况下应用程序可以将输入源提供给解析器:作为 Parser.parse 方法的参数,或者作为 EntityResolver.resolveEntity 方法的返回值。
SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入。如果有字符流可用,则解析器将直接读取该流,而忽略该流中找到的任何文本编码声明。如果没有字符流,但却有字节流,则解析器将使用该字节流,从而使用在 InputSource 中指定的编码,或者另外(如果未指定编码)通过使用某种诸如 XML 规范 中的算法算法自动探测字符编码。如果既没有字符流,又没有字节流可用,则解析器将尝试打开到由系统标识符标识的资源的 URI 连接。
InputSource 对象属于该应用程序:SAX 解析器将不会以任何方式修改它(它可以在必要时修改副本)。但是,作为解析终止清除的一部分,对字节流和字符流的标准处理就是关闭这二者,因此在将此类流传递给解析器后应用程序不应尝试重新使用它们。
- 从以下版本开始:
- SAX 1.0
- 另请参见:
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) 设置此输入源的系统标识符。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
InputSource
public InputSource()
- 零参数默认构造方法。
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)
InputSource
public InputSource(InputStream byteStream)
-
使用字节流创建新的输入源。
应用程序编写者必须使用 setSystemId() 为解析相对 URI 提供基,还可以使用 setPublicId 将公共标识符包括在内,并且可以使用 setEncoding 来指定对象的字符编码。
- 参数:
byteStream
- 包含文档的原始字节流。- 另请参见:
setPublicId(java.lang.String)
,setSystemId(java.lang.String)
,setEncoding(java.lang.String)
,setByteStream(java.io.InputStream)
,setCharacterStream(java.io.Reader)
InputSource
public InputSource(Reader characterStream)
-
使用字符流创建新的输入源。
应用程序编写者必须使用 setSystemId() 为解析相对 URI 提供基,并且可以使用 setPublicId 将公共标识符包括在内。
字符流不能包括字节顺序标记。
方法详细信息 |
---|
setPublicId
public void setPublicId(String publicId)
-
设置此输入源的公共标识符。
公共标识符始终为可选的:如果应用程序编写者包括一个公共标识符,则将把它作为位置信息的一部分提供。
-
- 参数:
publicId
- 字符串形式的公共标识符。- 另请参见:
getPublicId()
,Locator.getPublicId()
,SAXParseException.getPublicId()
getPublicId
public String getPublicId()
- 获取此输入源的公共标识符。
-
- 返回:
- 公共标识符,如果未提供,则返回 null。
- 另请参见:
setPublicId(java.lang.String)
setSystemId
public void setSystemId(String systemId)
-
设置此输入源的系统标识符。
如果有字节流或字符流,则系统标识符是可选的,但提供系统标识符非常有用,这是因为应用程序可以使用它解析相对 URI,并且可以将它包含在错误消息和警告中(解析器仅在未指定字节流或字符流时尝试打开到 URI 的连接)。
如果应用程序知道系统标识符所指向的对象的字符编码,则可以使用 setEncoding 方法来注册编码。
如果系统标识符是 URL,则必须完整解析它(它不可以是相对 URL)。
-
- 参数:
systemId
- 字符串形式的系统标识符。- 另请参见:
setEncoding(java.lang.String)
,getSystemId()
,Locator.getSystemId()
,SAXParseException.getSystemId()
getSystemId
public String getSystemId()
-
获取此输入源的系统标识符。
getEncoding 方法将返回所指向对象的字符编码,如果未知,则返回 null。
如果系统 ID 是 URL,则将完整解析它。
-
- 返回:
- 系统标识符,如果未提供,则返回 null。
- 另请参见:
setSystemId(java.lang.String)
,getEncoding()