|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.apache.xalan.transformer.QueuedEvents | +--org.apache.xalan.transformer.ResultTreeHandler
This class is a layer between the direct calls to the result tree content handler, and the transformer. For one thing, we have to delay the call to getContentHandler().startElement(name, atts) because of the xsl:attribute and xsl:copy calls. In other words, the attributes have to be fully collected before you can call startElement.
Constructor Summary | |
ResultTreeHandler()
Null constructor for object pooling. |
|
ResultTreeHandler(TransformerImpl transformer,
ContentHandler realHandler)
Create a new result tree handler. |
Method Summary | |
void |
addAttribute(Attr attr)
Copy an DOM attribute to the created output element, executing attribute templates as need be, and processing the xsl:use attribute. |
void |
addAttribute(java.lang.String uri,
java.lang.String localName,
java.lang.String rawName,
java.lang.String type,
java.lang.String value)
Add an attribute to the end of the list. |
void |
addAttributes(Node src)
Copy DOM attributes to the result element. |
void |
characters(char[] ch,
int start,
int length)
Bottleneck the characters event. |
void |
cloneToResultTree(Node node,
boolean shouldCloneAttributes)
Clone an element with or without children. |
void |
comment(char[] ch,
int start,
int length)
Bottleneck the comment event. |
void |
comment(java.lang.String data)
Bottleneck the comment event. |
void |
endCDATA()
End the CDATA characters. |
void |
endDocument()
Bottleneck the endDocument event. |
void |
endDTD()
End the DTD. |
void |
endElement(java.lang.String ns,
java.lang.String localName,
java.lang.String name)
Bottleneck the endElement event. |
void |
endEntity(java.lang.String name)
End an entity. |
void |
endNonEscaping()
Ends an un-escaping section. |
void |
endPrefixMapping(java.lang.String prefix)
End the scope of a prefix-URI mapping. |
void |
endPreserving()
Ends a whitespace preserving section. |
void |
entityReference(java.lang.String name)
Bottleneck the comment event. |
void |
flushPending()
Flush the pending element. |
void |
flushPending(int type)
Flush the pending element. |
ContentHandler |
getContentHandler()
Return the current content handler. |
NamespaceSupport |
getNamespaceSupport()
Get the NamespaceSupport object. |
java.lang.String |
getNewUniqueNSPrefix()
Get new unique namespace prefix. |
MutableAttrListImpl |
getPendingAttributes()
Get the pending attributes. |
java.lang.String |
getPrefix(java.lang.String namespace)
Given a namespace, try and find a prefix. |
int |
getUniqueNSValue()
Get a unique namespace value. |
java.lang.String |
getURI(java.lang.String prefix)
Given a prefix, return the namespace, |
void |
ignorableWhitespace(char[] ch,
int start,
int length)
Bottleneck the ignorableWhitespace event. |
void |
init(TransformerImpl transformer,
ContentHandler realHandler)
Initializer method. |
boolean |
isDefinedNSDecl(Attr attr)
|
boolean |
isElementPending()
Tell if an element is pending, to be output to the result tree. |
void |
outputResultTreeFragment(XObject obj,
XPathContext support)
Given a result tree fragment, walk the tree and output it to the result stream. |
void |
processingInstruction(java.lang.String target,
java.lang.String data)
Bottleneck the processingInstruction event. |
void |
processNSDecls(Node src)
Copy xmlns: attributes in if not already in scope. |
void |
setContentHandler(ContentHandler ch)
Set the current content handler. |
void |
setDocumentLocator(Locator locator)
To fullfill the FormatterListener interface... |
void |
skippedEntity(java.lang.String name)
Receive notification of a skipped entity. |
void |
startCDATA()
Start the CDATACharacters. |
void |
startDocument()
Bottleneck the startDocument event. |
void |
startDTD(java.lang.String s1,
java.lang.String s2,
java.lang.String s3)
Start the DTD. |
void |
startElement(java.lang.String ns,
java.lang.String localName,
java.lang.String name)
Bottleneck the startElement event. |
void |
startElement(java.lang.String ns,
java.lang.String localName,
java.lang.String name,
Attributes atts)
Bottleneck the startElement event. |
void |
startEntity(java.lang.String name)
Start an entity. |
void |
startNonEscaping()
Starts an un-escaping section. |
void |
startPrefixMapping(java.lang.String prefix,
java.lang.String uri)
Begin the scope of a prefix-URI Namespace mapping. |
void |
startPrefixMapping(java.lang.String prefix,
java.lang.String uri,
boolean shouldFlush)
|
void |
startPreserving()
Starts a whitespace preserving section. |
Methods inherited from class org.apache.xalan.transformer.QueuedEvents |
reset |
Methods inherited from class java.lang.Object |
equals,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
Constructor Detail |
public ResultTreeHandler()
public ResultTreeHandler(TransformerImpl transformer, ContentHandler realHandler)
Method Detail |
public void init(TransformerImpl transformer, ContentHandler realHandler)
public void startDocument() throws SAXException
public void endDocument() throws SAXException
public void startElement(java.lang.String ns, java.lang.String localName, java.lang.String name) throws SAXException
public void startElement(java.lang.String ns, java.lang.String localName, java.lang.String name, Attributes atts) throws SAXException
public void endElement(java.lang.String ns, java.lang.String localName, java.lang.String name) throws SAXException
public void startPrefixMapping(java.lang.String prefix, java.lang.String uri) throws SAXException
The information from this event is not necessary for normal Namespace processing: the SAX XML reader will automatically replace prefixes for element and attribute names when the http://xml.org/sax/features/namespaces feature is true (the default).
There are cases, however, when applications need to use prefixes in character data or in attribute values, where they cannot safely be expanded automatically; the start/endPrefixMapping event supplies the information to the application to expand prefixes in those contexts itself, if necessary.
Note that start/endPrefixMapping events are not guaranteed to be properly nested relative to each-other: all startPrefixMapping events will occur before the corresponding startElement event, and all endPrefixMapping events will occur after the corresponding endElement event, but their order is not guaranteed.
prefix
- The Namespace prefix being declared.uri
- The Namespace URI the prefix is mapped to.endPrefixMapping(java.lang.String)
,
startElement(java.lang.String, java.lang.String, java.lang.String)
public void startPrefixMapping(java.lang.String prefix, java.lang.String uri, boolean shouldFlush) throws SAXException
public void endPrefixMapping(java.lang.String prefix) throws SAXException
See startPrefixMapping for details. This event will always occur after the corresponding endElement event, but the order of endPrefixMapping events is not otherwise guaranteed.
prefix
- The prefix that was being mapping.startPrefixMapping(java.lang.String, java.lang.String)
,
endElement(java.lang.String, java.lang.String, java.lang.String)
public void characters(char[] ch, int start, int length) throws SAXException
public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException
public void processingInstruction(java.lang.String target, java.lang.String data) throws SAXException
public void comment(java.lang.String data) throws SAXException
public void comment(char[] ch, int start, int length) throws SAXException
public void entityReference(java.lang.String name) throws SAXException
public void startEntity(java.lang.String name) throws SAXException
public void endEntity(java.lang.String name) throws SAXException
public void startDTD(java.lang.String s1, java.lang.String s2, java.lang.String s3) throws SAXException
public void endDTD() throws SAXException
public void startNonEscaping() throws SAXException
The contents of the un-escaping section will be delivered through the regular characters event.
public void endNonEscaping() throws SAXException
startNonEscaping()
public void startPreserving() throws SAXException
The contents of the whitespace preserving section will be delivered through the regular characters event.
public void endPreserving() throws SAXException
startPreserving()
public void startCDATA() throws SAXException
public void endCDATA() throws SAXException
public void skippedEntity(java.lang.String name) throws SAXException
The Parser will invoke this method once for each entity skipped. Non-validating processors may skip entities if they have not seen the declarations (because, for example, the entity was declared in an external DTD subset). All processors may skip external entities, depending on the values of the http://xml.org/sax/features/external-general-entities and the http://xml.org/sax/features/external-parameter-entities properties.
name
- The name of the skipped entity. If it is a
parameter entity, the name will begin with '%'.public void flushPending() throws SAXException
public void flushPending(int type) throws SAXException
public void outputResultTreeFragment(XObject obj, XPathContext support) throws SAXException
public void cloneToResultTree(Node node, boolean shouldCloneAttributes) throws SAXException
public void setDocumentLocator(Locator locator)
public void processNSDecls(Node src) throws SAXException
public java.lang.String getURI(java.lang.String prefix)
public java.lang.String getPrefix(java.lang.String namespace)
public NamespaceSupport getNamespaceSupport()
public ContentHandler getContentHandler()
setContentHandler(org.xml.sax.ContentHandler)
public void setContentHandler(ContentHandler ch)
getContentHandler()
public int getUniqueNSValue()
public java.lang.String getNewUniqueNSPrefix()
public MutableAttrListImpl getPendingAttributes()
public void addAttribute(java.lang.String uri, java.lang.String localName, java.lang.String rawName, java.lang.String type, java.lang.String value) throws SAXException
Do not pass in xmlns decls to this function!
For the sake of speed, this method does no checking to see if the attribute is already in the list: that is the responsibility of the application.
uri
- The Namespace URI, or the empty string if
none is available or Namespace processing is not
being performed.localName
- The local name, or the empty string if
Namespace processing is not being performed.rawName
- The raw XML 1.0 name, or the empty string
if raw names are not available.type
- The attribute type as a string.value
- The attribute value.public boolean isDefinedNSDecl(Attr attr)
public void addAttribute(Attr attr) throws SAXException
public void addAttributes(Node src) throws SAXException
public boolean isElementPending()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |