Class QuerySimpleContentConstructor

  • All Implemented Interfaces:
    java.io.Serializable, javax.xml.transform.SourceLocator, LocationProvider, SaxonLocator, EvaluableItem, SequenceIterable, InstructionInfo, org.xml.sax.Locator

    public class QuerySimpleContentConstructor
    extends SimpleContentConstructor
    This class implements the rules for an XQuery simple content constructor, which are used in constructing the string value of an attribute node, text node, comment node, etc, from the value of the select expression or the contained sequence constructor. These differ slightly from the XSLT rules implemented in the superclass - specifically, the sequence is simply atomized, whereas XSLT takes special steps to concatenate adjacent text nodes before inserting separators.
    See Also:
    Serialized Form
    • Constructor Detail

      • QuerySimpleContentConstructor

        public QuerySimpleContentConstructor​(Expression select,
                                             Expression separator,
                                             boolean noNodeIfEmpty)
    • Method Detail

      • isNoNodeWhenEmpty

        public boolean isNoNodeWhenEmpty()
      • computeCardinality

        protected int computeCardinality()
        Compute the cardinality of the result of the expression.
        Overrides:
        computeCardinality in class SimpleContentConstructor
        Returns:
        the cardinality, @link {StaticProperty.EXACTLY_ONE}
      • expandChildren

        public java.lang.CharSequence expandChildren​(XPathContext context)
                                              throws XPathException
        Expand the stylesheet elements subordinate to this one, returning the result as a string. The expansion must not generate any element or attribute nodes.
        Parameters:
        context - The dynamic context for the transformation
        Throws:
        XPathException
      • evaluateItem

        public Item evaluateItem​(XPathContext context)
                          throws XPathException
        Evaluate an expression as a single item. This always returns either a single Item or null (denoting the empty sequence). No conversion is done. This method should not be used unless the static type of the expression is a subtype of "item" or "item?": that is, it should not be called if the expression may return a sequence. There is no guarantee that this condition will be detected.
        Specified by:
        evaluateItem in interface EvaluableItem
        Overrides:
        evaluateItem in class SimpleContentConstructor
        Parameters:
        context - The context in which the expression is to be evaluated
        Returns:
        the node or atomic value that results from evaluating the expression; or null to indicate that the result is an empty sequence
        Throws:
        XPathException - if any dynamic error occurs evaluating the expression