Module  java.xml

Class StreamSource

  • All Implemented Interfaces:
    Source


    public class StreamSource
    extends Object
    implements Source

    作为转换的持有人以XML标记流的形式来源。

    注意:由于内部使用ReaderInputStream实例, StreamSource可能仅使用一次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语法的字符串。
      • StreamSource

        public StreamSource​(Reader reader)
        从字符读取器构造一个StreamSource。 通常,应该使用流而不是阅读器,以便XML解析器可以解析由XML声明指定的字符编码。 然而,在许多情况下,输入流的编码已经解决了,就像从StringReader读取XML的情况一样。
        参数
        reader - 对XML字符流的有效读取器引用。
      • StreamSource

        public StreamSource​(Reader reader,
                            String systemId)
        从字符读取器构造一个StreamSource。 通常,应该使用流而不是阅读器,以便XML解析器可以解析由XML声明指定的字符编码。 然而,在许多情况下,输入流的编码已经解决了,就像从StringReader读取XML的情况一样。
        参数
        reader - 对XML字符流的有效读者引用。
        systemId - 必须是符合URI语法的字符串。
      • StreamSource

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

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

      • 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)
        设置此源的公共标识符。

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

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

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

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

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

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

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

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

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

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

        在检查字节或字符流时发生错误的情况下,该方法将返回false,以允许XML处理器处理错误。

        Specified by:
        isEmpty在接口 Source
        结果
        如果 StreamSource对象为空, StreamSource true,否则为false