- java.lang.Object
-
- javax.xml.transform.stream.StreamSource
-
- All Implemented Interfaces:
-
Source
public class StreamSource extends Object implements Source
作为转换的持有人以XML标记流的形式来源。
注意:由于内部使用
Reader或InputStream实例,StreamSource可能仅使用一次StreamSource实例。- 从以下版本开始:
- 1.4
-
-
Field Summary
Fields Modifier and Type Field 描述 static StringFEATURE如果传递此值作为参数,则TransformerFactory.getFeature(java.lang.String)返回true,则Transformer支持此类型的Source输入。
-
构造方法摘要
构造方法 Constructor 描述 StreamSource()零参数默认构造函数。StreamSource(File f)从文件构造一个StreamSource。StreamSource(InputStream inputStream)从字节流构造一个StreamSource。StreamSource(InputStream inputStream, String systemId)从字节流构造一个StreamSource。StreamSource(Reader reader)从字符读取器构造一个StreamSource。StreamSource(Reader reader, String systemId)从字符读取器构造一个StreamSource。StreamSource(String systemId)从URL构造一个StreamSource。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 InputStreamgetInputStream()获取使用setByteStream设置的字节流。StringgetPublicId()获取使用setPublicId设置的公共标识符。ReadergetReader()获取用setReader设置的字符流。StringgetSystemId()获取使用setSystemId设置的系统标识符。booleanisEmpty()指示StreamSource对象是否为空。voidsetInputStream(InputStream inputStream)设置要用作输入的字节流。voidsetPublicId(String publicId)设置此源的公共标识符。voidsetReader(Reader reader)将输入设置为字符读取器。voidsetSystemId(File f)从文件引用设置系统ID。voidsetSystemId(String systemId)设置此源的系统标识符。
-
-
-
字段详细信息
-
FEATURE
public static final String FEATURE
如果传递此值作为参数,则TransformerFactory.getFeature(java.lang.String)返回true,则Transformer支持此类型的Source输入。- 另请参见:
- Constant Field Values
-
-
构造方法详细信息
-
StreamSource
public StreamSource()
零参数默认构造函数。 如果此构造被使用,并且没有流源通过设置
setInputStream(java.io.InputStream inputStream)或者setReader(java.io.Reader reader),那么Transformer将创建一个空源InputStream使用new 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字符流的有效读取器引用。
-
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处理器处理错误。
- 包括公共标识符,系统标识符,字节流和字符流在内的所有输入源均为
-
-