org.apache.xalan.templates

Class ElemSort

Implemented Interfaces:
Document, Element, ExpressionNode, Node, NodeList, PrefixResolver, Serializable, SourceLocator, WhitespaceStrippingElementMatcher, XSLTVisitable

public class ElemSort
extends ElemTemplateElement

Implement xsl:sort.
 <!ELEMENT xsl:sort EMPTY>
 <!ATTLIST xsl:sort
   select %expr; "."
   lang %avt; #IMPLIED
   data-type %avt; "text"
   order %avt; "ascending"
   case-order %avt; #IMPLIED
 >
 <!-- xsl:sort cannot occur after any other elements or
 any non-whitespace character -->
 

See Also:
sorting in XSLT Specification

Nested Class Summary

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

Method Summary

Node
appendChild(Node newChild)
Add a child to the child list.
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.
AVT
getCaseOrder()
Get the "case-order" attribute.
AVT
getDataType()
Get the "data-type" attribute.
AVT
getLang()
Get the "lang" attribute.
String
getNodeName()
Return the node name.
AVT
getOrder()
Get the "order" attribute.
XPath
getSelect()
Get the "select" attribute.
int
getXSLToken()
Get an int constant identifying the type of element.
void
setCaseOrder(AVT v)
Set the "case-order" attribute.
void
setDataType(AVT v)
Set the "data-type" attribute.
void
setLang(AVT v)
Set the "lang" attribute.
void
setOrder(AVT v)
Set the "order" attribute.
void
setSelect(XPath v)
Set the "select" attribute.

Methods inherited from class org.apache.xalan.templates.ElemTemplateElement

appendChild, appendChild, callVisitors, canAcceptVariables, canStripWhiteSpace, compareTo, compose, containsExcludeResultPrefix, endCompose, error, error, execute, exprAddChild, exprGetChild, exprGetNumChildren, exprGetParent, exprSetParent, getBaseIdentifier, getChildNodes, getColumnNumber, getDOMBackPointer, getDeclaredPrefixes, getEndColumnNumber, getEndLineNumber, getFirstChild, getFirstChildElem, getLastChild, getLastChildElem, getLength, getLineNumber, getLocalName, getNamespaceForPrefix, getNamespaceForPrefix, getNextSibling, getNextSiblingElem, getNodeName, getNodeType, getOwnerDocument, getOwnerXSLTemplate, getParentElem, getParentNode, getParentNodeElem, getPrefixes, getPreviousSibling, getPreviousSiblingElem, getPublicId, getStylesheet, getStylesheetComposed, getStylesheetRoot, getSystemId, getTagName, getUid, getXSLToken, getXmlSpace, handlesNullPrefixes, hasChildNodes, hasTextLitOnly, hasVariableDecl, insertBefore, isCompiledTemplate, item, recompose, removeChild, replaceChild, replaceChild, resolvePrefixTables, runtimeInit, setDOMBackPointer, setEndLocaterInfo, setLocaterInfo, setParentElem, setPrefixes, setPrefixes, setUid, setXmlSpace, shouldStripWhiteSpace

Methods inherited from class org.apache.xml.utils.UnImplNode

adoptNode, appendChild, appendData, cloneNode, createAttribute, createAttributeNS, createCDATASection, createComment, createDocumentFragment, createElement, createElementNS, createEntityReference, createProcessingInstruction, createTextNode, deleteData, error, error, getAttribute, getAttributeNS, getAttributeNode, getAttributeNodeNS, getAttributes, getChildNodes, getDoctype, getDocumentElement, getElementById, getElementsByTagName, getElementsByTagNameNS, getEncoding, getFirstChild, getImplementation, getLastChild, getLength, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getOwnerElement, getParentNode, getPrefix, getPreviousSibling, getSpecified, getStandalone, getStrictErrorChecking, getTagName, getVersion, hasAttribute, hasAttributeNS, hasAttributes, hasChildNodes, importNode, insertBefore, insertData, isSupported, item, normalize, removeAttribute, removeAttributeNS, removeAttributeNode, removeChild, replaceChild, replaceData, setAttribute, setAttributeNS, setAttributeNode, setAttributeNodeNS, setData, setEncoding, setNodeValue, setPrefix, setStandalone, setStrictErrorChecking, setValue, setVersion, splitText, substringData

Method Details

appendChild

public Node appendChild(Node newChild)
            throws DOMException
Add a child to the child list.
Specified by:
appendChild in interface Node
Overrides:
appendChild in interface ElemTemplateElement

Parameters:
newChild - Child to add to the child list

Returns:
Child just added to the child list

Throws:
DOMException -


compose

public void compose(StylesheetRoot sroot)
            throws 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 interface ElemTemplateElement


getCaseOrder

public AVT getCaseOrder()
Get the "case-order" attribute. case-order has the value upper-first or lower-first; this applies when data-type="text", and specifies that upper-case letters should sort before lower-case letters or vice-versa respectively. For example, if lang="en", then A a B b are sorted with case-order="upper-first" and a A b B are sorted with case-order="lower-first". The default value is language dependent.

Returns:
The value of the "case-order" attribute


getDataType

public AVT getDataType()
Get the "data-type" attribute. data-type specifies the data type of the strings; the following values are allowed:
  • text specifies that the sort keys should be sorted lexicographically in the culturally correct manner for the language specified by lang.
  • number specifies that the sort keys should be converted to numbers and then sorted according to the numeric value; the sort key is converted to a number as if by a call to the number function; the lang attribute is ignored.
  • A QName with a prefix is expanded into an expanded-name as described in [2.4 Qualified Names]; the expanded-name identifies the data-type; the behavior in this case is not specified by this document.

The default value is text.

NOTE: The XSL Working Group plans that future versions of XSLT will leverage XML Schemas to define further values for this attribute.

Returns:
The value of the "data-type" attribute


getLang

public AVT getLang()
Get the "lang" attribute. lang specifies the language of the sort keys; it has the same range of values as xml:lang [XML]; if no lang value is specified, the language should be determined from the system environment.

Returns:
The value of the "lang" attribute


getNodeName

public String getNodeName()
Return the node name.
Specified by:
getNodeName in interface Node
Overrides:
getNodeName in interface ElemTemplateElement

Returns:
The element's name


getOrder

public AVT getOrder()
Get the "order" attribute. order specifies whether the strings should be sorted in ascending or descending order; ascending specifies ascending order; descending specifies descending order; the default is ascending.

Returns:
The value of the "order" attribute


getSelect

public XPath getSelect()
Get the "select" attribute. xsl:sort has a select attribute whose value is an expression. For each node to be processed, the expression is evaluated with that node as the current node and with the complete list of nodes being processed in unsorted order as the current node list. The resulting object is converted to a string as if by a call to the string function; this string is used as the sort key for that node. The default value of the select attribute is ., which will cause the string-value of the current node to be used as the sort key.

Returns:
The value of the "select" attribute


getXSLToken

public int getXSLToken()
Get an int constant identifying the type of element.
Overrides:
getXSLToken in interface ElemTemplateElement

Returns:
The token ID of the element

See Also:
Constants


setCaseOrder

public void setCaseOrder(AVT v)
Set the "case-order" attribute. case-order has the value upper-first or lower-first; this applies when data-type="text", and specifies that upper-case letters should sort before lower-case letters or vice-versa respectively. For example, if lang="en", then A a B b are sorted with case-order="upper-first" and a A b B are sorted with case-order="lower-first". The default value is language dependent.

Parameters:
v - The value to set for the "case-order" attribute


setDataType

public void setDataType(AVT v)
Set the "data-type" attribute. data-type specifies the data type of the strings; the following values are allowed:
  • text specifies that the sort keys should be sorted lexicographically in the culturally correct manner for the language specified by lang.
  • number specifies that the sort keys should be converted to numbers and then sorted according to the numeric value; the sort key is converted to a number as if by a call to the number function; the lang attribute is ignored.
  • A QName with a prefix is expanded into an expanded-name as described in [2.4 Qualified Names]; the expanded-name identifies the data-type; the behavior in this case is not specified by this document.

The default value is text.

NOTE: The XSL Working Group plans that future versions of XSLT will leverage XML Schemas to define further values for this attribute.

Parameters:
v - Value to set for the "data-type" attribute


setLang

public void setLang(AVT v)
Set the "lang" attribute. lang specifies the language of the sort keys; it has the same range of values as xml:lang [XML]; if no lang value is specified, the language should be determined from the system environment.

Parameters:
v - The value to set for the "lang" attribute


setOrder

public void setOrder(AVT v)
Set the "order" attribute. order specifies whether the strings should be sorted in ascending or descending order; ascending specifies ascending order; descending specifies descending order; the default is ascending.

Parameters:
v - The value to set for the "order" attribute


setSelect

public void setSelect(XPath v)
Set the "select" attribute. xsl:sort has a select attribute whose value is an expression. For each node to be processed, the expression is evaluated with that node as the current node and with the complete list of nodes being processed in unsorted order as the current node list. The resulting object is converted to a string as if by a call to the string function; this string is used as the sort key for that node. The default value of the select attribute is ., which will cause the string-value of the current node to be used as the sort key.

Parameters:
v - Value to set for the "select" attribute


Copyright B) 2004 Apache XML Project. All Rights Reserved.