FileDocCategorySizeDatePackage
StreamSource.javaAPI DocJava SE 5 API8914Fri Aug 26 14:58:24 BST 2005javax.xml.transform.stream

StreamSource

public class StreamSource extends Object implements Source

Acts as an holder for a transformation Source in the form of a stream of XML markup.

Note: Due to their internal use of either a {@link Reader} or {@link InputStream} instance, StreamSource instances may only be used once.

author
Jeff Suttor
version
$Revision: 1.6.12.3 $, $Date: 2004/07/13 22:27:51 $

Fields Summary
public static final String
FEATURE
If {@link javax.xml.transform.TransformerFactory#getFeature} returns true when passed this value as an argument, the Transformer supports Source input of this type.
private String
publicId
The public identifier for this input source, or null.
private String
systemId
The system identifier as a URL string, or null.
private InputStream
inputStream
The byte stream for this Source, or null.
private Reader
reader
The character stream for this Source, or null.
Constructors Summary
public StreamSource()

Zero-argument default constructor. If this constructor is used, and no Stream source is set using {@link #setInputStream(java.io.InputStream inputStream)} or {@link #setReader(java.io.Reader reader)}, then the Transformer will create an empty source {@link java.io.InputStream} using {@link java.io.InputStream#InputStream() new InputStream()}.

see
javax.xml.transform.Transformer#transform(Source xmlSource, Result outputTarget)

    
                                                         
       
public StreamSource(InputStream inputStream)
Construct a StreamSource from a byte stream. Normally, a stream should be used rather than a reader, so the XML parser can resolve character encoding specified by the XML declaration.

If this constructor is used to process a stylesheet, normally setSystemId should also be called, so that relative URI references can be resolved.

param
inputStream A valid InputStream reference to an XML stream.

        setInputStream(inputStream);
    
public StreamSource(InputStream inputStream, String systemId)
Construct a StreamSource from a byte stream. Normally, a stream should be used rather than a reader, so that the XML parser can resolve character encoding specified by the XML declaration.

This constructor allows the systemID to be set in addition to the input stream, which allows relative URIs to be processed.

param
inputStream A valid InputStream reference to an XML stream.
param
systemId Must be a String that conforms to the URI syntax.

        setInputStream(inputStream);
        setSystemId(systemId);
    
public StreamSource(Reader reader)
Construct a StreamSource from a character reader. Normally, a stream should be used rather than a reader, so that the XML parser can resolve character encoding specified by the XML declaration. However, in many cases the encoding of the input stream is already resolved, as in the case of reading XML from a StringReader.

param
reader A valid Reader reference to an XML character stream.

        setReader(reader);
    
public StreamSource(Reader reader, String systemId)
Construct a StreamSource from a character reader. Normally, a stream should be used rather than a reader, so that the XML parser may resolve character encoding specified by the XML declaration. However, in many cases the encoding of the input stream is already resolved, as in the case of reading XML from a StringReader.

param
reader A valid Reader reference to an XML character stream.
param
systemId Must be a String that conforms to the URI syntax.

        setReader(reader);
        setSystemId(systemId);
    
public StreamSource(String systemId)
Construct a StreamSource from a URL.

param
systemId Must be a String that conforms to the URI syntax.

        this.systemId = systemId;
    
public StreamSource(File f)
Construct a StreamSource from a File.

param
f Must a non-null File reference.

        setSystemId(f);
    
Methods Summary
public java.io.InputStreamgetInputStream()
Get the byte stream that was set with setByteStream.

return
The byte stream that was set with setByteStream, or null if setByteStream or the ByteStream constructor was not called.

        return inputStream;
    
public java.lang.StringgetPublicId()
Get the public identifier that was set with setPublicId.

return
The public identifier that was set with setPublicId, or null if setPublicId was not called.

        return publicId;
    
public java.io.ReadergetReader()
Get the character stream that was set with setReader.

return
The character stream that was set with setReader, or null if setReader or the Reader constructor was not called.

        return reader;
    
public java.lang.StringgetSystemId()
Get the system identifier that was set with setSystemId.

return
The system identifier that was set with setSystemId, or null if setSystemId was not called.

        return systemId;
    
public voidsetInputStream(java.io.InputStream inputStream)
Set the byte stream to be used as input. Normally, a stream should be used rather than a reader, so that the XML parser can resolve character encoding specified by the XML declaration.

If this Source object is used to process a stylesheet, normally setSystemId should also be called, so that relative URL references can be resolved.

param
inputStream A valid InputStream reference to an XML stream.

        this.inputStream = inputStream;
    
public voidsetPublicId(java.lang.String publicId)
Set the public identifier for this Source.

The public identifier is always optional: if the application writer includes one, it will be provided as part of the location information.

param
publicId The public identifier as a string.

        this.publicId = publicId;
    
public voidsetReader(java.io.Reader reader)
Set the input to be a character reader. Normally, a stream should be used rather than a reader, so that the XML parser can resolve character encoding specified by the XML declaration. However, in many cases the encoding of the input stream is already resolved, as in the case of reading XML from a StringReader.

param
reader A valid Reader reference to an XML CharacterStream.

        this.reader = reader;
    
public voidsetSystemId(java.lang.String systemId)
Set the system identifier for this Source.

The system identifier is optional if there is a byte stream or a character stream, but it is still useful to provide one, since the application can use it to resolve relative URIs and can include it in error messages and warnings (the parser will attempt to open a connection to the URI only if there is no byte stream or character stream specified).

param
systemId The system identifier as a URL string.

        this.systemId = systemId;
    
public voidsetSystemId(java.io.File f)
Set the system ID from a File reference.

param
f Must a non-null File reference.

        String fpath=f.getAbsolutePath();
        if (File.separatorChar != '/") {
            fpath = fpath.replace(File.separatorChar, '/");
        }
        if( fpath.startsWith("/"))
          this.systemId= "file://" + fpath;
        else
          this.systemId = "file:///" + fpath;