模块  java.xml
软件包  org.w3c.dom.ls

Interface LSInput


  • public interface LSInput
    此接口表示数据的输入源。

    该接口允许应用程序将关于输入源的信息封装在单个对象中,该对象可以包括公共标识符,系统标识符,字节流(可能具有指定的编码),基本URI和/或字符流。

    字节流和字符流的确切定义是依赖于绑定的。

    期望应用程序在需要这些对象时提供实现此接口的对象。 应用程序可以提供自己的实现此接口的对象,也可以使用通用工厂方法DOMImplementationLS.createLSInput()创建实现此接口的对象。

    LSParser将使用LSInput对象来确定如何读取数据。 LSParser将按以下顺序查看LSInput中指定的不同输入,以了解要读取哪一个,将使用第一个非空且不是空字符串:

    1. LSInput.characterStream
    2. LSInput.byteStream
    3. LSInput.stringData
    4. LSInput.systemId
    5. 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

    从以下版本开始:
    1.5
    • 方法详细信息

      • getCharacterStream

        Reader getCharacterStream()
        语言和绑定依赖类型的属性,表示16位单元的流。 应用程序必须使用UTF-16(在[Unicode]和[ISO / IEC 10646]中定义)对流进行编码。 使用字符流时不要求使用XML声明。 如果存在XML声明,则将忽略encoding属性的值。
      • setCharacterStream

        void setCharacterStream​(Reader characterStream)
        语言和绑定依赖类型的属性,表示16位单元的流。 应用程序必须使用UTF-16(在[Unicode]和[ISO / IEC 10646]中定义)对流进行编码。 使用字符流时不要求使用XML声明。 如果存在XML声明,则将忽略encoding属性的值。
      • getByteStream

        InputStream getByteStream()
        表示字节流的语言和绑定依赖类型的属性。
        如果应用程序知道字节流的字符编码,则应设置encoding属性。 以这种方式设置编码将覆盖数据中XML声明中指定的任何编码。
      • setByteStream

        void setByteStream​(InputStream byteStream)
        表示字节流的语言和绑定依赖类型的属性。
        如果应用程序知道字节流的字符编码,则应设置encoding属性。 以这种方式设置编码将覆盖数据中XML声明中指定的任何编码。
      • getStringData

        String getStringData()
        要解析的字符串数据。 如果提供,则始终将其视为16位单元序列(UTF-16编码字符)。 使用stringData时,不要求具有XML声明。 如果存在XML声明,则将忽略encoding属性的值。
      • setStringData

        void setStringData​(String stringData)
        要解析的字符串数据。 如果提供,则始终将其视为16位单元序列(UTF-16编码字符)。 使用stringData时,不要求使用XML声明。 如果存在XML声明,则将忽略encoding属性的值。
      • getSystemId

        String getSystemId()
        系统标识符,此参考源的URI参考[ IETF RFC 2396 ]。 如果存在字节流,字符流或字符串数据,则系统标识符是可选的。 提供一个仍然很有用,因为应用程序将使用它来解析任何相对URI,并且可以将其包含在错误消息和警告中。 (如果输入源中没有其他可用输入,则LSParser将仅尝试获取URI引用标识的资源。)
        如果应用程序知道系统标识符指向的对象的字符编码,则可以使用encoding属性设置编码。
        如果指定的系统ID是相对URI引用(参见[ IETF RFC 2396 ]中的第5节),则DOM实现将尝试以baseURI为基础解析相对URI,如果失败,则行为依赖于实现。
      • setSystemId

        void setSystemId​(String systemId)
        系统标识符,此参考源的URI参考[ IETF RFC 2396 ]。 如果存在字节流,字符流或字符串数据,则系统标识符是可选的。 提供一个仍然很有用,因为应用程序将使用它来解析任何相对URI,并且可以将其包含在错误消息和警告中。 (如果输入源中没有其他可用输入,则LSParser将仅尝试获取URI引用标识的资源。)
        如果应用程序知道系统标识符指向的对象的字符编码,则可以使用encoding属性设置编码。
        如果指定的系统ID是相对URI引用(参见[ IETF RFC 2396 ]中的第5节),则DOM实现将尝试以baseURI为基础解析相对URI,如果失败,则行为依赖于实现。
      • getPublicId

        String getPublicId()
        此输入源的公共标识符。 这可以使用依赖于实现的机制(例如目录或其他映射)映射到输入源。 如果指定了公共标识符,则还可以在报告错误时将其报告为位置信息的一部分。
      • setPublicId

        void setPublicId​(String publicId)
        此输入源的公共标识符。 这可以使用依赖于实现的机制(例如目录或其他映射)映射到输入源。 如果指定了公共标识符,则还可以在报告错误时将其报告为位置信息的一部分。
      • getBaseURI

        String getBaseURI()
        要使用的基URI(参见[ IETF RFC 2396 ]中的第5.1.4节)),用于将相对systemId解析为绝对URI。
        如果在使用时,基URI本身是相对URI,空字符串或null,则行为取决于实现。
      • setBaseURI

        void setBaseURI​(String baseURI)
        要使用的基URI(参见[ IETF RFC 2396 ]中的第5.1.4节)),用于将相对systemId解析为绝对URI。
        如果在使用时,基URI本身是相对URI,空字符串或null,则行为取决于实现。
      • getEncoding

        String getEncoding()
        字符编码,如果已知。 编码必须是XML编码声明可接受的字符串([ XML 1.0 ]第4.3.3节“实体中的字符编码”)。
        当应用程序提供字符流或字符串数据时,此属性无效。 对于其他输入源,通过此属性指定的编码将覆盖XML声明或Text声明中指定的任何编码,或者从更高级别协议(例如HTTP [ IETF RFC 2616 ]]获取的编码。
      • setEncoding

        void setEncoding​(String encoding)
        字符编码,如果已知。 编码必须是XML编码声明可接受的字符串([ XML 1.0 ]第4.3.3节“实体中的字符编码”)。
        当应用程序提供字符流或字符串数据时,此属性无效。 对于其他输入源,通过此属性指定的编码将覆盖XML声明或Text声明中指定的任何编码,或者从更高级别协议(例如HTTP [ IETF RFC 2616 ]]获取的编码。
      • getCertifiedText

        boolean getCertifiedText()
        如果设置为true,则在解析[ XML 1.1 ]时假设输入已经过认证(参见[ XML 1.1 ]中的第2.13节)。
      • setCertifiedText

        void setCertifiedText​(boolean certifiedText)
        如果设置为true,则在解析[ XML 1.1 ]时假设输入已经过认证(参见[ XML 1.1 ]中的第2.13节)。