org.apache.xalan.templates
Class ElemElement

java.lang.Object
  extended byorg.apache.xml.utils.UnImplNode
      extended byorg.apache.xalan.templates.ElemTemplateElement
          extended byorg.apache.xalan.templates.ElemUse
              extended byorg.apache.xalan.templates.ElemElement
All Implemented Interfaces:
org.w3c.dom.Document, org.w3c.dom.Element, ExpressionNode, org.w3c.dom.Node, org.w3c.dom.NodeList, PrefixResolver, Serializable, javax.xml.transform.SourceLocator, WhitespaceStrippingElementMatcher, XSLTVisitable
Direct Known Subclasses:
ElemAttribute

public class ElemElement
extends ElemUse

Implement xsl:element

 
 
 

See Also:
XXX in XSLT Specification, Serialized Form

Field Summary
protected  AVT m_name_avt
          The name attribute is interpreted as an attribute value template.
protected  AVT m_namespace_avt
          If the namespace attribute is present, then it also is interpreted as an attribute value template.
 
Fields inherited from class org.apache.xalan.templates.ElemUse
 
Fields inherited from class org.apache.xalan.templates.ElemTemplateElement
m_docOrderNumber, m_firstChild, m_hasVariableDecl, m_nextSibling, m_parentNode, m_prefixTable
 
Fields inherited from interface org.w3c.dom.Node
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
 
Constructor Summary
ElemElement()
           
 
Method Summary
protected  void callChildVisitors(XSLTVisitor visitor, boolean callAttrs)
          Call the children visitors.
 void compose(StylesheetRoot sroot)
          This function is called after everything else has been recomposed, and allows the template to set remaining values that may be based on some other property that depends on recomposition.
(package private)  void constructNode(String nodeName, String prefix, String nodeNamespace, TransformerImpl transformer)
          Construct a node in the result tree.
 void execute(TransformerImpl transformer)
          Create an element in the result tree.
 AVT getName()
          Get the "name" attribute.
 AVT getNamespace()
          Get the "namespace" attribute.
 String getNodeName()
          Return the node name.
 int getXSLToken()
          Get an int constant identifying the type of element.
protected  String resolvePrefix(ResultTreeHandler rhandler, String prefix, String nodeNamespace)
          Resolve the namespace into a prefix.
 void setName(AVT v)
          Set the "name" attribute.
 void setNamespace(AVT v)
          Set the "namespace" attribute.
protected  boolean validateNodeName(String nodeName)
          Validate that the node name is good.
 
Methods inherited from class org.apache.xalan.templates.ElemUse
applyAttrSets, getUseAttributeSets, setUseAttributeSets, setUseAttributeSets
 
Methods inherited from class org.apache.xalan.templates.ElemTemplateElement
accept, addOrReplaceDecls, appendChild, appendChild, callChildVisitors, callVisitors, canAcceptVariables, canStripWhiteSpace, compareTo, containsExcludeResultPrefix, endCompose, error, error, executeNSDecls, executeNSDecls, exprAddChild, exprGetChild, exprGetNumChildren, exprGetParent, exprSetParent, getBaseIdentifier, getChildNodes, getColumnNumber, getDeclaredPrefixes, getDOMBackPointer, getFirstChild, getFirstChildElem, getLastChild, getLastChildElem, getLength, getLineNumber, getLocalName, getNamespaceForPrefix, getNamespaceForPrefix, getNextSibling, getNextSiblingElem, getNodeType, getOwnerDocument, getOwnerXSLTemplate, getParentElem, getParentNode, getParentNodeElem, getPrefixes, getPreviousSibling, getPreviousSiblingElem, getPublicId, getStylesheet, getStylesheetComposed, getStylesheetRoot, getSystemId, getTagName, getUid, getXmlSpace, handlesNullPrefixes, hasChildNodes, hasTextLitOnly, hasVariableDecl, insertBefore, isCompiledTemplate, isValidNCName, item, needToCheckExclude, recompose, removeChild, replaceChild, replaceChild, resolvePrefixTables, runtimeInit, setDOMBackPointer, setLocaterInfo, setParentElem, setPrefixes, setPrefixes, setUid, setXmlSpace, shouldStripWhiteSpace, unexecuteNSDecls, unexecuteNSDecls
 
Methods inherited from class org.apache.xml.utils.UnImplNode
adoptNode, appendData, cloneNode, createAttribute, createAttributeNS, createCDATASection, createComment, createDocumentFragment, createElement, createElementNS, createEntityReference, createProcessingInstruction, createTextNode, deleteData, getAttribute, getAttributeNode, getAttributeNodeNS, getAttributeNS, getAttributes, getDoctype, getDocumentElement, getElementById, getElementsByTagName, getElementsByTagNameNS, getEncoding, getImplementation, getNamespaceURI, getNodeValue, getOwnerElement, getPrefix, getSpecified, getStandalone, getStrictErrorChecking, getVersion, hasAttribute, hasAttributeNS, hasAttributes, importNode, insertData, isSupported, normalize, removeAttribute, removeAttributeNode, removeAttributeNS, removeChild, replaceData, setAttribute, setAttributeNode, setAttributeNodeNS, setAttributeNS, setData, setEncoding, setNodeValue, setPrefix, setStandalone, setStrictErrorChecking, setValue, setVersion, splitText, substringData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_name_avt

protected AVT m_name_avt
The name attribute is interpreted as an attribute value template. It is an error if the string that results from instantiating the attribute value template is not a QName.


m_namespace_avt

protected AVT m_namespace_avt
If the namespace attribute is present, then it also is interpreted as an attribute value template. The string that results from instantiating the attribute value template should be a URI reference. It is not an error if the string is not a syntactically legal URI reference.

Constructor Detail

ElemElement

public ElemElement()
Method Detail

setName

public void setName(AVT v)
Set the "name" attribute. The name attribute is interpreted as an attribute value template. It is an error if the string that results from instantiating the attribute value template is not a QName.

Parameters:
v - Name attribute to set for this element

getName

public AVT getName()
Get the "name" attribute. The name attribute is interpreted as an attribute value template. It is an error if the string that results from instantiating the attribute value template is not a QName.

Returns:
Name attribute for this element

setNamespace

public void setNamespace(AVT v)
Set the "namespace" attribute. If the namespace attribute is present, then it also is interpreted as an attribute value template. The string that results from instantiating the attribute value template should be a URI reference. It is not an error if the string is not a syntactically legal URI reference.

Parameters:
v - NameSpace attribute to set for this element

getNamespace

public AVT getNamespace()
Get the "namespace" attribute. If the namespace attribute is present, then it also is interpreted as an attribute value template. The string that results from instantiating the attribute value template should be a URI reference. It is not an error if the string is not a syntactically legal URI reference.

Returns:
Namespace attribute for this element

compose

public void compose(StylesheetRoot sroot)
             throws javax.xml.transform.TransformerException
This function is called after everything else has been recomposed, and allows the template to set remaining values that may be based on some other property that depends on recomposition.

Overrides:
compose in class ElemTemplateElement
Throws:
javax.xml.transform.TransformerException

getXSLToken

public int getXSLToken()
Get an int constant identifying the type of element.

Overrides:
getXSLToken in class ElemTemplateElement
Returns:
The token ID for this element
See Also:
Constants

getNodeName

public String getNodeName()
Return the node name.

Specified by:
getNodeName in interface org.w3c.dom.Node
Overrides:
getNodeName in class ElemTemplateElement
Returns:
This element's name

validateNodeName

protected boolean validateNodeName(String nodeName)
Validate that the node name is good.

Parameters:
nodeName - Name of the node being constructed, which may be null.
Returns:
true if the node name is valid, false otherwise.

resolvePrefix

protected String resolvePrefix(ResultTreeHandler rhandler,
                               String prefix,
                               String nodeNamespace)
                        throws javax.xml.transform.TransformerException
Resolve the namespace into a prefix. Meant to be overidded by elemAttribute if this class is derived.

Parameters:
rhandler - The current result tree handler.
prefix - The probable prefix if already known.
nodeNamespace - The namespace.
Returns:
The prefix to be used.
Throws:
javax.xml.transform.TransformerException

execute

public void execute(TransformerImpl transformer)
             throws javax.xml.transform.TransformerException
Create an element in the result tree. The xsl:element element allows an element to be created with a computed name. The expanded-name of the element to be created is specified by a required name attribute and an optional namespace attribute. The content of the xsl:element element is a template for the attributes and children of the created element.

Overrides:
execute in class ElemUse
Parameters:
transformer - non-null reference to the the current transform-time state.
Throws:
javax.xml.transform.TransformerException

constructNode

void constructNode(String nodeName,
                   String prefix,
                   String nodeNamespace,
                   TransformerImpl transformer)
             throws javax.xml.transform.TransformerException
Construct a node in the result tree. This method is overloaded by xsl:attribute. At this class level, this method creates an element. If the node is null, we instantiate only the content of the node in accordance with section 7.1.2 of the XSLT 1.0 Recommendation.

Parameters:
nodeName - The name of the node, which may be null. If null, only the non-attribute children of this node will be processed.
prefix - The prefix for the namespace, which may be null. If not null, this prefix will be mapped and unmapped.
nodeNamespace - The namespace of the node, which may be not be null.
transformer - non-null reference to the the current transform-time state.
Throws:
javax.xml.transform.TransformerException

callChildVisitors

protected void callChildVisitors(XSLTVisitor visitor,
                                 boolean callAttrs)
Call the children visitors.

Overrides:
callChildVisitors in class ElemTemplateElement
Parameters:
visitor - The visitor whose appropriate method will be called.