Module java.xml

Class StreamSource

java.lang.Object
javax.xml.transform.stream.StreamSource
所有已实现的接口:
Source

public class StreamSource extends Object implements Source

充当转换源的持有者,以XML标记流的形式呈现。

注意: 由于内部使用ReaderInputStream实例,StreamSource实例只能使用一次。

自版本:
1.4
  • Field Details

  • Constructor Details

    • StreamSource

      public StreamSource()

      无参数默认构造函数。如果使用此构造函数,并且未使用setInputStream(java.io.InputStream inputStream)setReader(java.io.Reader reader)设置Stream源,则Transformer将使用new InputStream()创建一个空的源InputStream

      参见:
    • StreamSource

      public StreamSource(InputStream inputStream)
      从字节流构造StreamSource。通常应使用流而不是读取器,以便XML解析器可以解析XML声明中指定的字符编码。

      如果此构造函数用于处理样式表,则通常还应调用setSystemId,以便可以解析相对URI引用。

      参数:
      inputStream - 指向XML流的有效InputStream引用。
    • StreamSource

      public StreamSource(InputStream inputStream, String systemId)
      从字节流构造StreamSource。通常应使用流而不是读取器,以便XML解析器可以解析XML声明中指定的字符编码。

      此构造函数允许设置systemID以及输入流,这允许处理相对URI。

      参数:
      inputStream - 指向XML流的有效InputStream引用。
      systemId - 必须是符合URI语法的字符串。
    • StreamSource

      public StreamSource(Reader reader)
      从字符读取器构造StreamSource。通常应使用流而不是读取器,以便XML解析器可以解析XML声明中指定的字符编码。然而,在许多情况下,输入流的编码已经解析,例如从StringReader读取XML的情况。
      参数:
      reader - 指向XML字符流的有效Reader引用。
    • StreamSource

      public StreamSource(Reader reader, String systemId)
      从字符读取器构造StreamSource。通常应使用流而不是读取器,以便XML解析器可以解析XML声明中指定的字符编码。然而,在许多情况下,输入流的编码已经解析,例如从StringReader读取XML的情况。
      参数:
      reader - 指向XML字符流的有效Reader引用。
      systemId - 必须是符合URI语法的字符串。
    • StreamSource

      public StreamSource(String systemId)
      从URL构造StreamSource。
      参数:
      systemId - 必须是符合URI语法的字符串。
    • StreamSource

      public StreamSource(File f)
      从文件构造StreamSource。
      参数:
      f - 必须是非空的File引用。
  • Method Details

    • setInputStream

      public void setInputStream(InputStream inputStream)
      设置要用作输入的字节流。通常应使用流而不是读取器,以便XML解析器可以解析XML声明中指定的字符编码。

      如果此Source对象用于处理样式表,则通常还应调用setSystemId,以便可以解析相对URL引用。

      参数:
      inputStream - 指向XML流的有效InputStream引用。
    • getInputStream

      public InputStream getInputStream()
      获取使用setByteStream设置的字节流。
      返回:
      使用setByteStream设置的字节流,如果未调用setByteStream或ByteStream构造函数,则返回null。
    • setReader

      public void setReader(Reader reader)
      设置输入为字符读取器。通常应使用流而不是读取器,以便XML解析器可以解析XML声明中指定的字符编码。然而,在许多情况下,输入流的编码已经解析,例如从StringReader读取XML的情况。
      参数:
      reader - 指向XML字符流的有效Reader引用。
    • getReader

      public Reader getReader()
      获取使用setReader设置的字符流。
      返回:
      使用setReader设置的字符流,如果未调用setReader或Reader构造函数,则返回null。
    • setPublicId

      public void setPublicId(String publicId)
      设置此Source的公共标识符。

      公共标识符始终是可选的:如果应用程序编写者包含一个,它将作为位置信息的一部分提供。

      参数:
      publicId - 公共标识符作为字符串。
    • getPublicId

      public String getPublicId()
      获取使用setPublicId设置的公共标识符。
      返回:
      使用setPublicId设置的公共标识符,如果未调用setPublicId,则返回null。
    • setSystemId

      public void setSystemId(String systemId)
      设置此Source的系统标识符。

      如果存在字节流或字符流,则系统标识符是可选的,但仍然很有用,因为应用程序可以使用它来解析相对URI,并可以将其包含在错误消息和警告中(如果没有指定字节流或字符流,则解析器将尝试打开与URI的连接)。

      在接口中指定:
      setSystemId 在接口 Source
      参数:
      systemId - 系统标识符作为URL字符串。
    • getSystemId

      public String getSystemId()
      获取使用setSystemId设置的系统标识符。
      在接口中指定:
      getSystemId 在接口 Source
      返回:
      使用setSystemId设置的系统标识符,如果未调用setSystemId,则返回null。
    • setSystemId

      public void setSystemId(File f)
      从文件引用设置系统标识符。
      参数:
      f - 必须是非空的File引用。
    • isEmpty

      public boolean isEmpty()
      指示StreamSource对象是否为空。空定义如下:
      • 所有输入源,包括公共标识符、系统标识符、字节流和字符流,都为null
      • 公共标识符和系统标识符为null,字节流和字符流为null或不包含字节或字符。

        请注意,如果提供了字节流,则此方法将重置字节流,如果未提供字节流,则将重置字符流。

      在检查字节或字符流时出现错误时,该方法将返回false,以允许XML处理器处理错误。

      在接口中指定:
      isEmpty 在接口 Source
      返回:
      如果StreamSource对象为空,则返回true,否则返回false