模块 java.xml

接口 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 实现永远不会修改它们(尽管它可能会制作副本并在必要时修改副本)。

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

自从:
1.5
  • 方法详情

    • 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()
      表示字节流的语言和绑定相关类型的属性。
      如果应用程序知道字节流的字符编码,就应该设置编码属性。以这种方式设置编码将重写数据中 XML 声明中指定的任何编码。
    • setByteStream

      void setByteStream(InputStream  byteStream)
      表示字节流的语言和绑定相关类型的属性。
      如果应用程序知道字节流的字符编码,就应该设置编码属性。以这种方式设置编码将重写数据中 XML 声明中指定的任何编码。
    • 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] 时输入已通过认证(请参阅 [XML 1.1] 中的第 2.13 节)。
    • setCertifiedText

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