org.apache.xalan.templates
Class ElemAttribute

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
                  extended byorg.apache.xalan.templates.ElemAttribute
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

public class ElemAttribute
extends ElemElement

Implement xsl:attribute.

 &!ELEMENT xsl:attribute %char-template;>
 &!ATTLIST xsl:attribute
   name %avt; #REQUIRED
   namespace %avt; #IMPLIED
   %space-att;
 &
 

See Also:
creating-attributes in XSLT Specification, Serialized Form

Field Summary
 
Fields inherited from class org.apache.xalan.templates.ElemElement
m_name_avt, m_namespace_avt
 
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
ElemAttribute()
           
 
Method Summary
 ElemTemplateElement appendChild(ElemTemplateElement newChild)
          Add a child to the child list
(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 attribute in the result tree.
 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.
protected  boolean validateNodeName(String nodeName)
          Validate that the node name is good.
 
Methods inherited from class org.apache.xalan.templates.ElemElement
callChildVisitors, compose, getName, getNamespace, setNamespace
 
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, 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
 

Constructor Detail

ElemAttribute

public ElemAttribute()
Method Detail

getXSLToken

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

Overrides:
getXSLToken in class ElemElement
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 ElemElement
Returns:
The element name

execute

public void execute(TransformerImpl transformer)
             throws javax.xml.transform.TransformerException
Create an attribute in the result tree.

Overrides:
execute in class ElemElement
Parameters:
transformer - non-null reference to the the current transform-time state.
Throws:
javax.xml.transform.TransformerException
See Also:
creating-attributes in XSLT Specification

resolvePrefix

protected String resolvePrefix(ResultTreeHandler rhandler,
                               String prefix,
                               String nodeNamespace)
                        throws javax.xml.transform.TransformerException
Resolve the namespace into a prefix. At this level, if no prefix exists, then return a manufactured prefix.

Overrides:
resolvePrefix in class ElemElement
Parameters:
rhandler - The current result tree handler.
prefix - The probable prefix if already known.
nodeNamespace - The namespace, which should not be null.
Returns:
The prefix to be used.
Throws:
javax.xml.transform.TransformerException

validateNodeName

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

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

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.

Overrides:
constructNode in class ElemElement
Parameters:
nodeName - The name of the node, which may be null.
prefix - The prefix for the namespace, which may be null.
nodeNamespace - The namespace of the node, which may be null.
transformer - non-null reference to the the current transform-time state.
Throws:
javax.xml.transform.TransformerException

appendChild

public ElemTemplateElement appendChild(ElemTemplateElement newChild)
Add a child to the child list.

Overrides:
appendChild in class ElemTemplateElement
Parameters:
newChild - Child to append to the list of this node's children
Returns:
The node we just appended to the children list
Throws:
DOMException

setName

public void setName(AVT v)
Description copied from class: ElemElement
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.

Overrides:
setName in class ElemElement
Parameters:
v - Name attribute to set for this element
See Also:
ElemElement.setName(AVT)