|
|||||||||
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 boolean |
declarationIsWritten
|
protected int |
elementCode
|
protected Stack |
elementStack
|
protected boolean |
openStartTag
|
protected boolean |
preferHex
|
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(int nameCode,
int 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,
int nameCode)
Close an empty element tag. |
void |
endDocument()
Notify the end of a document node |
void |
endElement()
End of an element. |
protected String |
getCachedName(int nameCode)
Get a name from the local name cache |
void |
namespace(int namespaceCode,
int properties)
Notify a namespace. |
void |
open()
Start of the event stream. |
protected void |
openDocument()
Do the real work of starting the document. |
protected void |
outputCharacterReference(int charval)
|
void |
processingInstruction(String target,
CharSequence data,
int locationId,
int properties)
Handle a processing instruction. |
protected void |
putCachedName(int nameCode,
String displayName)
Add a name to the local name cache |
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(int nameCode,
int 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(int 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 int elementCode
protected boolean preferHex
protected boolean undeclareNamespaces
protected Stack elementStack
Constructor Detail |
---|
public XMLEmitter()
Method Detail |
---|
public void open() throws XPathException
XPathException
public 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
public void endDocument() throws XPathException
XPathException
protected void openDocument() throws XPathException
XPathException
public 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
public void close() throws XPathException
close
in interface Receiver
close
in class Emitter
XPathException
public void startElement(int nameCode, int typeCode, int locationId, int properties) throws XPathException
nameCode
- integer code identifying the name of the element within the name pool.typeCode
- integer code identifying the element's type within the name pool. The value -1
indicates the default type, xs:untyped.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
public void namespace(int namespaceCode, int properties) throws XPathException
Receiver
namespaceCode
- an integer: the top half is a prefix code, the bottom half a URI code.
These may be translated into an actual prefix and URI using the name pool. A prefix code of
zero represents the empty prefix (that is, the default namespace). A URI code of zero represents
a URI of "", that is, a namespace undeclaration.properties
- 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:
it sets the REJECT_DUPLICATES flag, and this is treated as a hard error.
XPathException
public void attribute(int nameCode, int typeCode, CharSequence value, int locationId, int properties) throws XPathException
Receiver
nameCode
- The name of the attribute, as held in the name pooltypeCode
- 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
public void startContent() throws XPathException
Receiver
XPathException
public void closeStartTag() throws XPathException
XPathException
- if an IO exception occursprotected String emptyElementTagCloser(String displayName, int nameCode)
displayName
- the name of the empty elementnameCode
- the fingerprint of the name of the empty element
protected void writeAttribute(int 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
protected int testCharacters(CharSequence chars) throws XPathException
chars
- the characters to be tested
XPathException
public void endElement() throws XPathException
XPathException
public 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
public void writeCharSequence(CharSequence s) throws IOException
s
- the character sequence to be written
IOException
public 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
protected 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
protected void outputCharacterReference(int charval) throws IOException
IOException
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
public boolean usesTypeAnnotations()
protected String getCachedName(int nameCode)
nameCode
- the integer name code
protected void putCachedName(int nameCode, String displayName)
nameCode
- the integer name codedisplayName
- the corresponding lexical QName
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |