public interface LSInput
org.w3c.dom.ls.LSInput |
该界面代表数据的输入源。
该接口允许应用程序将关于输入源的信息封装在单个对象中,该对象可以包括公共标识符,系统标识符,字节流(可能具有指定的编码),基本URI和/或字符流。
字节流和字符流的确切定义依赖于绑定。
预计该应用程序将提供实现此接口的对象,无论何时需要此类对象。 应用程序可以提供自己的实现此接口的对象,也可以使用通用工厂方法DOMImplementationLS.createLSInput()
创建实现此接口的对象。
LSParser
将使用LSInput
对象来确定如何读取数据。 LSParser
将按照以下顺序查看LSInput
中指定的不同输入,以便知道从哪个输入读取,第一个不为空且不会使用空字符串:
LSInput.characterStream
LSInput.byteStream
LSInput.stringData
LSInput.systemId
LSInput.publicId
如果所有输入为空,则 LSParser
将报告 DOMError
,其 DOMError.type
设置为 "no-input-specified"
,其 DOMError.severity
设置为 DOMError.SEVERITY_FATAL_ERROR
。
LSInput
对象属于应用程序。 DOM实现永远不会修改它们(尽管它可能会复制和修改副本,如有必要)。
另见 Document Object Model (DOM) Level 3 Load and Save Specification 。
Public methods |
|
---|---|
abstract String |
getBaseURI() 要使用的基本URI(请参阅[ IETF RFC 2396 ]中的第5.1.4节)将相对 |
abstract InputStream |
getByteStream() 表示字节流的语言和依赖于绑定的类型的属性。 |
abstract boolean |
getCertifiedText() 如果设置为true,则假定输入在解析[ XML 1.1 ]时已通过认证(请参阅[ XML 1.1 ]中的第2.13节)。 |
abstract Reader |
getCharacterStream() 表示16位单元流的语言和依赖于绑定的类型的属性。 |
abstract String |
getEncoding() 字符编码,如果知道的话。 |
abstract String |
getPublicId() 此输入源的公共标识符。 |
abstract String |
getStringData() 要解析的字符串数据。 |
abstract String |
getSystemId() 系统标识符,这个输入源的URI参考[ IETF RFC 2396 ]。 |
abstract void |
setBaseURI(String baseURI) 要使用的基本URI(请参阅[ IETF RFC 2396 ]中的第5.1.4节)将相对 |
abstract void |
setByteStream(InputStream byteStream) 表示字节流的语言和依赖于绑定的类型的属性。 |
abstract void |
setCertifiedText(boolean certifiedText) 如果设置为true,则假定输入在解析[ XML 1.1 ]时已通过认证(请参阅[ XML 1.1 ]中的第2.13节)。 |
abstract void |
setCharacterStream(Reader characterStream) 表示16位单元流的语言和依赖于绑定的类型的属性。 |
abstract void |
setEncoding(String encoding) 字符编码,如果知道的话。 |
abstract void |
setPublicId(String publicId) 此输入源的公共标识符。 |
abstract void |
setStringData(String stringData) 要解析的字符串数据。 |
abstract void |
setSystemId(String systemId) 系统标识符,该输入源的URI参考[ IETF RFC 2396 ]。 |
String getBaseURI ()
要使用的基本URI(请参阅[ IETF RFC 2396 ]中的第5.1.4节)将相对systemId
解析为绝对URI。
如果使用时基本URI本身是一个相对URI,一个空字符串或null,则该行为是与实现相关的。
Returns | |
---|---|
String |
InputStream getByteStream ()
表示字节流的语言和依赖于绑定的类型的属性。
如果应用程序知道字节流的字符编码,它应该设置编码属性。 以这种方式设置编码将覆盖数据中XML声明中指定的任何编码。
Returns | |
---|---|
InputStream |
boolean getCertifiedText ()
如果设置为true,则假定输入在解析[ XML 1.1 ]时已通过认证(请参阅[ XML 1.1 ]中的第2.13节)。
Returns | |
---|---|
boolean |
Reader getCharacterStream ()
表示16位单元流的语言和依赖于绑定的类型的属性。 应用程序必须使用UTF-16(在[Unicode]和[ISO / IEC 10646]中定义)对流进行编码。 使用字符流时,不需要有XML声明。 如果存在XML声明,则编码属性的值将被忽略。
Returns | |
---|---|
Reader |
String getEncoding ()
字符编码,如果知道的话。 编码必须是XML编码声明可接受的字符串([ XML 1.0 ]部分4.3.3“实体中的字符编码”)。
当应用程序提供字符流或字符串数据时,此属性不起作用。 对于其他输入源,通过此属性指定的编码将覆盖XML声明或Text声明中指定的任何编码,或者从更高级别协议(例如HTTP [ IETF RFC 2616 ])获取的编码。
Returns | |
---|---|
String |
String getPublicId ()
此输入源的公共标识符。 这可以使用实现依赖机制(如目录或其他映射)映射到输入源。 公开标识符(如果指定的话)也可以在报告错误时作为位置信息的一部分进行报告。
Returns | |
---|---|
String |
String getStringData ()
要解析的字符串数据。 如果提供,这将始终被视为一个16位单元序列(UTF-16编码字符)。 使用stringData
时stringData
有XML声明。 如果存在XML声明,则编码属性的值将被忽略。
Returns | |
---|---|
String |
String getSystemId ()
系统标识符,该输入源的URI参考[ IETF RFC 2396 ]。 如果有字节流,字符流或字符串数据,则系统标识符是可选的。 提供一个仍然有用,因为应用程序将使用它来解析任何相关的URI,并且可以将它包含在错误消息和警告中。 (如果输入源中没有其他输入可用,LSParser将只尝试获取由URI引用标识的资源。)
如果应用程序知道系统标识符指向的对象的字符编码,则可以使用encoding
属性设置编码。
如果指定的系统ID是相对URI引用(参见[ IETF RFC 2396 ]中的第5节),那么DOM实现将尝试解析相对URI,并以baseURI
为基础,如果失败,则行为取决于实现。
Returns | |
---|---|
String |
void setBaseURI (String baseURI)
要使用的基本URI(参见[ IETF RFC 2396 ]中的第5.1.4节)将相对systemId
解析为绝对URI。
如果使用时基本URI本身是一个相对URI,一个空字符串或null,则该行为是与实现相关的。
Parameters | |
---|---|
baseURI |
String
|
void setByteStream (InputStream byteStream)
表示字节流的语言和依赖于绑定的类型的属性。
如果应用程序知道字节流的字符编码,它应该设置编码属性。 以这种方式设置编码将覆盖数据中XML声明中指定的任何编码。
Parameters | |
---|---|
byteStream |
InputStream
|
void setCertifiedText (boolean certifiedText)
如果设置为true,则假定在解析[ XML 1.1 ]时输入已通过认证(请参阅[ XML 1.1 ]中的第2.13节)。
Parameters | |
---|---|
certifiedText |
boolean
|
void setCharacterStream (Reader characterStream)
表示16位单元流的语言和依赖于绑定的类型的属性。 应用程序必须使用UTF-16(在[Unicode]和[ISO / IEC 10646]中定义)对流进行编码。 使用字符流时,不需要有XML声明。 如果存在XML声明,则编码属性的值将被忽略。
Parameters | |
---|---|
characterStream |
Reader
|
void setEncoding (String encoding)
字符编码,如果知道的话。 编码必须是XML编码声明可接受的字符串([ XML 1.0 ]部分4.3.3“实体中的字符编码”)。
当应用程序提供字符流或字符串数据时,此属性不起作用。 对于其他输入源,通过此属性指定的编码将覆盖XML声明或Text声明中指定的任何编码,或从更高级别协议(例如HTTP [ IETF RFC 2616 ])获得的编码。
Parameters | |
---|---|
encoding |
String
|
void setPublicId (String publicId)
此输入源的公共标识符。 这可以使用实现依赖机制(如目录或其他映射)映射到输入源。 公开标识符(如果指定的话)也可以在报告错误时作为位置信息的一部分进行报告。
Parameters | |
---|---|
publicId |
String
|
void setStringData (String stringData)
要解析的字符串数据。 如果提供,这将始终被视为一个16位单元序列(UTF-16编码字符)。 使用stringData
时stringData
有XML声明。 如果存在XML声明,则编码属性的值将被忽略。
Parameters | |
---|---|
stringData |
String
|
void setSystemId (String systemId)
系统标识符,该输入源的URI参考[ IETF RFC 2396 ]。 如果有字节流,字符流或字符串数据,则系统标识符是可选的。 提供一个仍然有用,因为应用程序将使用它来解析任何相关的URI,并且可以将它包含在错误消息和警告中。 (如果输入源中没有其他输入可用,LSParser将只尝试获取由URI引用标识的资源。)
如果应用程序知道系统标识符指向的对象的字符编码,则可以使用encoding
属性设置编码。
如果指定的系统ID是相对URI引用(参见[ IETF RFC 2396 ]中的第5节),则DOM实现将尝试解析相对URI,并以baseURI
为基础,如果失败,则行为取决于实现。
Parameters | |
---|---|
systemId |
String
|