Class Serializer
- java.lang.Object
-
- net.sf.saxon.s9api.Serializer
-
- All Implemented Interfaces:
Destination
public class Serializer extends java.lang.Object implements Destination
A Serializer takes a tree representation of XML and turns it into lexical XML markup.Note that this is XML serialization in the sense of the W3C XSLT and XQuery specifications. This has nothing to do with the serialization of Java objects, or the
Serializable
interface.The serialization may be influenced by a number of serialization parameters. A parameter has a name, which is an instance of
Serializer.Property
, and a value, which is expressed as a string. The effect of most of the properties is as described in the W3C specification XSLT 2.0 and XQuery 1.0 Serialization. Saxon supports all the serialization parameters defined in that specification, together with some additional parameters, whose property names are prefixed "SAXON_".
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Serializer.Property
-
Constructor Summary
Constructors Constructor Description Serializer()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Object
getOutputDestination()
Get the current output destination.java.lang.String
getOutputProperty(Serializer.Property property)
Get the value of a serialization propertyReceiver
getReceiver(Configuration config)
Return a receiver to which Saxon will send events.protected Receiver
getReceiver(Configuration config, Controller controller, java.util.Properties predefinedProperties)
Return a receiver to which Saxon will send events.void
setOutputFile(java.io.File file)
Set the destination of the serialized output, as a File.void
setOutputProperty(Serializer.Property property, java.lang.String value)
Set the value of a serialization property.void
setOutputStream(java.io.OutputStream stream)
Set the destination of the serialized output, as an OutputStream.void
setOutputWriter(java.io.Writer writer)
Set the destination of the serialized output, as a Writer.
-
-
-
Method Detail
-
setOutputProperty
public void setOutputProperty(Serializer.Property property, java.lang.String value)
Set the value of a serialization property. Any existing value of the property is overridden. If the supplied value is null, any existing value of the property is removed.Example:
serializer.setOutputProperty(Serializer.Property.METHOD, "xml");
Any serialization properties supplied via this interface take precedence over serialization properties defined in the source stylesheet or query.
- Parameters:
property
- The name of the property to be setvalue
- The value of the property, as a string. The format is generally as defined in thexsl:output
declaration in XSLT: this means that boolean properties, for example, are represented using the strings "yes" and "no". Properties whose values are QNames, such ascdata-section-elements
are expressed using the Clark representation of a QName, that is "{uri}local". Multi-valued properties (again,cdata-section-elements
is an example) are expressed as a space-separated list.- Throws:
java.lang.IllegalArgumentException
- if the value of the property is invalid. The property is validated individually; invalid combinations of properties will be detected only when the properties are actually used to serialize an XML event stream.
-
getOutputProperty
public java.lang.String getOutputProperty(Serializer.Property property)
Get the value of a serialization property- Parameters:
property
- the name of the required property- Returns:
- the value of the required property as a string, or null if the property has not been given any value.
-
setOutputWriter
public void setOutputWriter(java.io.Writer writer)
Set the destination of the serialized output, as a Writer.Note that when this option is used, the serializer does not perform character encoding. This also means that it never replaces special characters with XML numeric character references. The final encoding is the responsibility of the supplied Writer.
Closing the writer after use is the responsibility of the caller.
Calling this method has the side-effect of setting the OutputStream and OutputFile to null.
- Parameters:
writer
- the Writer to which the serialized XML output will be written.
-
setOutputStream
public void setOutputStream(java.io.OutputStream stream)
Set the destination of the serialized output, as an OutputStream.Closing the output stream after use is the responsibility of the caller.
Calling this method has the side-effect of setting the OutputWriter and OutputFile to null.
- Parameters:
stream
- the OutputStream to which the serialized XML output will be written.
-
setOutputFile
public void setOutputFile(java.io.File file)
Set the destination of the serialized output, as a File.Calling this method has the side-effect of setting the current OutputWriter and OutputStream to null.
- Parameters:
file
- the File to which the serialized XML output will be written.
-
getOutputDestination
public java.lang.Object getOutputDestination()
Get the current output destination.- Returns:
- an OutputStream, Writer, or File, depending on the previous calls to
setOutputStream(java.io.OutputStream)
,setOutputWriter(java.io.Writer)
, orsetOutputFile(java.io.File)
-
getReceiver
public Receiver getReceiver(Configuration config) throws SaxonApiException
Return a receiver to which Saxon will send events. This method is provided primarily for system use, though it could also be called by user applications wanting to make use of the Saxon serializer.- Specified by:
getReceiver
in interfaceDestination
- Parameters:
config
- The Saxon configuration. This is an internal implementation object held within theProcessor
- Returns:
- a receiver to which XML events will be sent
- Throws:
SaxonApiException
- if the Receiver cannot be created
-
getReceiver
protected Receiver getReceiver(Configuration config, Controller controller, java.util.Properties predefinedProperties) throws SaxonApiException
Return a receiver to which Saxon will send events. This method is provided primarily for system use, though it could also be called by user applications wanting to make use of the Saxon serializer.- Parameters:
config
- The Saxon configuration.controller
- The Saxon controller (of the transformation). May be null.predefinedProperties
- values of serialization properties defined within a query or stylesheet, which will be used in the event that no value for the corresponding property has been defined in the Serializer itself. May be null if no serialization properties have been predefined.- Returns:
- a receiver to which XML events will be sent
- Throws:
SaxonApiException
-
-