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