模块  java.xml

Class StreamSource

  • 实现的所有接口
    Source

    public class StreamSource
    extends Object
    implements Source

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

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

    从以下版本开始:
    1.4
    • 构造方法详细信息

      • 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语法的String。
      • 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语法的String。
      • StreamSource

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

        public StreamSource​(File f)
        从文件构造StreamSource。
        参数
        f - 必须是非null文件引用。
    • 方法详细信息

      • 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 CharacterStream的有效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的连接。

        Specified by:
        setSystemId in interface Source
        参数
        systemId - 系统标识符作为URL字符串。
      • getSystemId

        public String getSystemId()
        获取使用setSystemId设置的系统标识符。
        Specified by:
        getSystemId在界面 Source
        结果
        使用setSystemId设置的系统标识符,如果未调用setSystemId,则为null。
      • setSystemId

        public void setSystemId​(File f)
        从文件引用中设置系统ID。
        参数
        f - 必须是非null文件引用。
      • isEmpty

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

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

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

        Specified by:
        isEmpty在界面 Source
        结果
        如果 StreamSource对象为空,则返回true,否则返回false