The StreamSource
and
StreamResult
classes are used as
sources and targets for transforms from sequences of bytes and characters.
This includes
streams, readers, writers, strings, and files.
What unifies these is that none of them know they contain
an XML document.
Indeed, on input they may not always contain an XML document.
If so, an exception will be thrown as soon as you attempt
to build a Transformer
or
a Templates
object from
the
StreamSource
.
package javax.xml.transform.stream; public class StreamSource implements Source { public static final String FEATURE = "http://javax.xml.transform.stream.StreamSource/feature"; public StreamSource(); public StreamSource(InputStream inputStream); public StreamSource(InputStream inputStream, String systemID); public StreamSource(Reader reader); public StreamSource(Reader reader, String systemID); public StreamSource(String systemID); public StreamSource(File f); public void setInputStream(InputStream inputStream); public InputStream getInputStream(); public void setReader(Reader reader); public Reader getReader(); public void setPublicId(String publicID); public String getPublicId(); public void setSystemId(String systemID); public String getSystemId(); public void setSystemId(File f); }
You should not specify both
an InputStream
and a
Reader
. If you do, which one the processor reads from
is implementation dependent.
If neither an InputStream
nor a
Reader
is available, then the
processor will attempt to open a connection to the URI
specified by the system ID.
You should set the system ID even if you do specify an
InputStream
or a
Reader
because this will be needed to
resolve relative URLs that appear inside the stylesheet and
input document.
package javax.xml.transform.stream; public class StreamResult implements Result public static final String FEATURE = "http://javax.xml.transform.stream.StreamResult/feature"; public StreamResult() public StreamResult(OutputStream outputStream); public StreamResult(Writer writer); public StreamResult(String systemID); public StreamResult(File f); public void setOutputStream(OutputStream outputStream); public OutputStream getOutputStream(); public void setWriter(Writer writer); public Writer getWriter(); public void setSystemId(String systemID); public void setSystemId(File f); public String getSystemId(); }
You should specify the system ID URL and one of the
other identifiers (File
,
OutputStream
, Writer
,
or String
.)
If you specify more than one possible target,
which one the processor
chooses
is implementation dependent.