Module java.xml
Package org.w3c.dom.ls

Interface LSInput


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

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

字节流和字符流的确切定义取决于绑定。

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

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

  1. LSInput.characterStream
  2. LSInput.byteStream
  3. LSInput.stringData
  4. LSInput.systemId
  5. LSInput.publicId

如果所有输入均为null,则LSParser将报告一个DOMError,其中DOMError.type设置为"no-input-specified"DOMError.severity设置为DOMError.SEVERITY_FATAL_ERROR

LSInput对象属于应用程序。DOM实现永远不会修改它们(尽管可能会复制并修改副本,如果必要)。

另请参阅文档对象模型(DOM)级别3加载和保存规范

自版本:
1.5
  • Method Details

    • getCharacterStream

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

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

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

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

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

      void setStringData(String stringData)
      要解析的字符串数据。如果提供,将始终将其视为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

      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()
      用于将相对systemId解析为绝对URI的基本URI(请参见[IETF RFC 2396]中的第5.1.4节)。
      如果在使用时基本URI本身是相对URI、空字符串或null,则行为取决于实现。
    • setBaseURI

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

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

      void setEncoding(String encoding)
      如果已知字符编码。编码必须是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节)。