|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.sf.saxon.serialize.Emitter net.sf.saxon.serialize.XMLEmitter
public class XMLEmitter
XMLEmitter is an Emitter that generates XML output to a specified destination.
Field Summary | |
---|---|
protected CharacterReferenceGenerator |
characterReferenceGenerator
|
protected boolean |
declarationIsWritten
|
protected NodeName |
elementCode
|
protected Stack<String> |
elementStack
|
protected int |
indentForNextAttribute
|
protected boolean |
openStartTag
|
protected boolean |
started
|
protected boolean |
startedElement
|
protected boolean |
undeclareNamespaces
|
Fields inherited from class net.sf.saxon.serialize.Emitter |
---|
allCharactersEncodable, characterSet, namePool, outputProperties, outputStream, pipelineConfig, streamResult, systemId, writer |
Fields inherited from interface javax.xml.transform.Result |
---|
PI_DISABLE_OUTPUT_ESCAPING, PI_ENABLE_OUTPUT_ESCAPING |
Constructor Summary | |
---|---|
XMLEmitter()
|
Method Summary | |
---|---|
void |
attribute(NodeName nameCode,
SimpleType typeCode,
CharSequence value,
int locationId,
int properties)
Notify an attribute. |
void |
characters(CharSequence chars,
int locationId,
int properties)
Character data. |
void |
close()
End of the document. |
void |
closeStartTag()
Mark the end of the start tag |
void |
comment(CharSequence chars,
int locationId,
int properties)
Handle a comment. |
protected String |
emptyElementTagCloser(String displayName,
NodeName nameCode)
Close an empty element tag. |
void |
endDocument()
Notify the end of a document node |
void |
endElement()
End of an element. |
protected String |
getAttributeIndentString()
|
void |
namespace(NamespaceBinding namespaceBinding,
int properties)
Notify a namespace. |
void |
open()
Start of the event stream. |
protected void |
openDocument()
Do the real work of starting the document. |
void |
processingInstruction(String target,
CharSequence data,
int locationId,
int properties)
Handle a processing instruction. |
void |
setCharacterReferenceGenerator(CharacterReferenceGenerator generator)
Set the character reference generator to be used for generating hexadecimal or decimal character references |
void |
setEscapeNonAscii(Boolean escape)
Say that all non-ASCII characters should be escaped, regardless of the character encoding |
void |
setIndentForNextAttribute(int indent)
|
void |
startContent()
Notify the start of the content, that is, the completion of all attributes and namespaces. |
void |
startDocument(int properties)
Start of a document node. |
void |
startElement(NodeName elemName,
SchemaType typeCode,
int locationId,
int properties)
Start of an element. |
protected int |
testCharacters(CharSequence chars)
Test that all characters in a name (for example) are supported in the target encoding. |
boolean |
usesTypeAnnotations()
Ask whether this Receiver (or the downstream pipeline) makes any use of the type annotations supplied on element and attribute events |
protected void |
writeAttribute(NodeName elCode,
String attname,
CharSequence value,
int properties)
Write attribute name=value pair. |
void |
writeCharSequence(CharSequence s)
Write a CharSequence (without any escaping of special characters): various implementations |
void |
writeDeclaration()
Output the XML declaration |
protected void |
writeDocType(String type,
String systemId,
String publicId)
Output the document type declaration |
protected void |
writeEscape(CharSequence chars,
boolean inAttribute)
Write contents of array to current writer, after escaping special characters. |
Methods inherited from class net.sf.saxon.serialize.Emitter |
---|
getConfiguration, getOutputProperties, getOutputStream, getPipelineConfiguration, getSystemId, getWriter, makeOutputStream, makeWriter, setOutputProperties, setOutputStream, setPipelineConfiguration, setStreamResult, setSystemId, setUnparsedEntity, setWriter, usesWriter |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected boolean started
protected boolean startedElement
protected boolean openStartTag
protected boolean declarationIsWritten
protected NodeName elementCode
protected int indentForNextAttribute
protected boolean undeclareNamespaces
protected Stack<String> elementStack
protected CharacterReferenceGenerator characterReferenceGenerator
Constructor Detail |
---|
public XMLEmitter()
Method Detail |
---|
public void setCharacterReferenceGenerator(CharacterReferenceGenerator generator)
generator
- the character reference generator to be usedpublic void setEscapeNonAscii(Boolean escape)
escape
- true if all non ASCII characters should be escapedpublic void open() throws XPathException
XPathException
- if an error occurspublic void startDocument(int properties) throws XPathException
properties
- bit-significant integer indicating properties of the document node.
The definitions of the bits are in class ReceiverOptions
XPathException
- if an error occurspublic void endDocument() throws XPathException
XPathException
- if an error occursprotected void openDocument() throws XPathException
XPathException
- f an error occurs opening the output filepublic void writeDeclaration() throws XPathException
XPathException
protected void writeDocType(String type, String systemId, String publicId) throws XPathException
type
- The element namesystemId
- The DOCTYP system identifierpublicId
- The DOCTYPE public identifier
XPathException
- if an error occurs writing to the outputpublic void close() throws XPathException
close
in interface Receiver
close
in class Emitter
XPathException
- if an error occurspublic void startElement(NodeName elemName, SchemaType typeCode, int locationId, int properties) throws XPathException
elemName
- the name of the element.typeCode
- the type annotation of the element.locationId
- an integer which can be interpreted using a LocationProvider
to return
information such as line number and system ID. If no location information is available,
the value zero is supplied.properties
- bit-significant properties of the element node. If there are no revelant
properties, zero is supplied. The definitions of the bits are in class ReceiverOptions
XPathException
- if an error occurspublic void namespace(NamespaceBinding namespaceBinding, int properties) throws XPathException
Receiver
namespaceBinding
- contains the namespace prefix and namespace URIproperties
- The most important property is REJECT_DUPLICATES. If this property is set, the
namespace declaration will be rejected if it conflicts with a previous declaration of the same
prefix. If the property is not set, the namespace declaration will be ignored if it conflicts
with a previous declaration. This reflects the fact that when copying a tree, namespaces for child
elements are emitted before the namespaces of their parent element. Unfortunately this conflicts
with the XSLT rule for complex content construction, where the recovery action in the event of
conflicts is to take the namespace that comes last. XSLT therefore doesn't recover from this error:
XPathException
- if an error occurspublic void setIndentForNextAttribute(int indent)
public void attribute(NodeName nameCode, SimpleType typeCode, CharSequence value, int locationId, int properties) throws XPathException
Receiver
nameCode
- The name of the attributetypeCode
- The type of the attribute, as held in the name pool. The additional bit
NodeInfo.IS_DTD_TYPE may be set to indicate a DTD-derived type.value
- the string value of the attributelocationId
- an integer which can be interpreted using a LocationProvider
to return
information such as line number and system ID. If no location information is available,
the value zero is supplied.properties
- Bit significant value. The following bits are defined:
XPathException
- if an error occursprotected String getAttributeIndentString()
public void startContent() throws XPathException
Receiver
XPathException
- if an error occurspublic void closeStartTag() throws XPathException
XPathException
- if an IO exception occursprotected String emptyElementTagCloser(String displayName, NodeName nameCode)
displayName
- the name of the empty elementnameCode
- the fingerprint of the name of the empty element
protected void writeAttribute(NodeName elCode, String attname, CharSequence value, int properties) throws XPathException
elCode
- The element name is not used in this version of the
method, but is used in the HTML subclass.attname
- The attribute name, which has already been validated to ensure
it can be written in this encodingvalue
- The value of the attributeproperties
- Any special properties of the attribute
XPathException
- if an error occursprotected int testCharacters(CharSequence chars) throws XPathException
chars
- the characters to be tested
XPathException
public void endElement() throws XPathException
XPathException
- if an error occurspublic void characters(CharSequence chars, int locationId, int properties) throws XPathException
chars
- The characterslocationId
- an integer which can be interpreted using a LocationProvider
to return information such as line number and system ID. If no location information is available,
the value zero is supplied.properties
- Bit significant value. The following bits are defined:
XPathException
- if an error occurspublic void writeCharSequence(CharSequence s) throws IOException
s
- the character sequence to be written
IOException
- in the event of a failure to write to the output filepublic void processingInstruction(String target, CharSequence data, int locationId, int properties) throws XPathException
target
- The PI name. This must be a legal name (it will not be checked).data
- The data portion of the processing instructionlocationId
- an integer which can be interpreted using a LocationProvider
to return
information such as line number and system ID. If no location information is available,
the value zero is supplied.properties
- Additional information about the PI.
XPathException
- if an error occursprotected void writeEscape(CharSequence chars, boolean inAttribute) throws IOException, XPathException
chars
- The character sequence containing the stringinAttribute
- Set to true if the text is in an attribute value
IOException
XPathException
public void comment(CharSequence chars, int locationId, int properties) throws XPathException
chars
- The content of the commentlocationId
- an integer which can be interpreted using a LocationProvider
to return
information such as line number and system ID. If no location information is available,
the value zero is supplied.properties
- Additional information about the comment.
XPathException
- if an error occurspublic boolean usesTypeAnnotations()
usesTypeAnnotations
in interface Receiver
usesTypeAnnotations
in class Emitter
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |