|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectorg.xml.sax.InputSource
public class InputSource
XML 实体的单一输入源。
此模块(包括源代码和文档)在公共域中,同时 没有担保。有关更多信息,请参阅http://www.saxproject.org。
此类允许 SAX 应用程序封装有关单个对象中的输入源的信息,它可包括公共标识符、系统标识符、字节流(可能带有指定的编码)、基本 URI 和/ 或字符流。
在以下两种情况下应用程序可以将输入源提供给解析器:作为 Parser.parse 方法的参数,或者作为 EntityResolver.resolveEntity 方法的返回值。
SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入。如果有字符流可用,则解析器将直接读取该流,而忽略该流中找到的任何文本编码声明。如果没有字符流,但却有字节流,则解析器将使用该字节流,从而使用在 InputSource 中指定的编码,或者另外(如果未指定编码)通过使用某种诸如 XML 规范 中的算法算法自动探测字符编码。如果既没有字符流,又没有字节流可用,则解析器将尝试打开到由系统标识符标识的资源的 URI 连接。
InputSource 对象属于该应用程序:SAX 解析器将不会以任何方式修改它(它可以在必要时修改副本)。但是,作为解析终止清除的一部分,对字节流和字符流的标准处理就是关闭这二者,因此在将此类流传递给解析器后应用程序不应尝试重新使用它们。
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 |
| 构造方法详细信息 |
|---|
public InputSource()
setPublicId(java.lang.String),
setSystemId(java.lang.String),
setByteStream(java.io.InputStream),
setCharacterStream(java.io.Reader),
setEncoding(java.lang.String)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 - 包含文档的原始字节流。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 将公共标识符包括在内。
字符流不能包括字节顺序标记。
setPublicId(java.lang.String),
setSystemId(java.lang.String),
setByteStream(java.io.InputStream),
setCharacterStream(java.io.Reader)| 方法详细信息 |
|---|
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。
如果系统 ID 是 URL,则将完整解析它。
setSystemId(java.lang.String),
getEncoding()public void setByteStream(InputStream byteStream)
如果还有指定的字符流,则 SAX 解析器将忽略此操作,它将优先于打开自己 URI 连接而使用字节流。
如果应用程序知道字节流的字符编码,则必须使用 setEncoding 方法设置它。
byteStream - 包含 XML 文档或其他实体的字节流。setEncoding(java.lang.String),
getByteStream(),
getEncoding(),
InputStreampublic InputStream getByteStream()
getEncoding 方法将返回此字节流的字符编码,如果未知,则返回 null。
getEncoding(),
setByteStream(java.io.InputStream)public void setEncoding(String encoding)
编码必须是 XML 编码声明可接受的字符串(参见 "XML 1.0 recommendation" 的 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(),
Readerpublic Reader getCharacterStream()
setCharacterStream(java.io.Reader)
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。