## net.sf.saxon.instruct
Class ValueOf

    java.lang.Object
      net.sf.saxon.expr.Expression
          net.sf.saxon.instruct.Instruction
              net.sf.saxon.instruct.SimpleNodeConstructor
                  net.sf.saxon.instruct.ValueOf

All Implemented Interfaces:
  Serializable, SourceLocator, Container, EvaluableItem, SequenceIterable, TailCallReturner, InstructionInfoProvider

    public final class ValueOf

extends SimpleNodeConstructor

An xsl:value-of element in the stylesheet.
The xsl:value-of element takes attributes:

- a mandatory attribute select="expression". This must be a valid String expression
- an optional disable-output-escaping attribute, value "yes" or "no"
- an optional separator attribute. This is handled at compile-time: if the separator attribute is present, the select expression passed in here will be a call to the string-join() function.

See Also:
  Serialized Form

Field Summary

Fields inherited from class net.sf.saxon.expr.Expression
`EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD`

Constructor Summary
`ValueOf(Expression select, boolean disable, boolean noNodeIfEmpty)`

Method Summary
`void` `checkPermittedContents(SchemaType parentType, StaticContext env, boolean whole)` Check statically that the results of the expression are capable of constructing the content of a given schema type.
`int` `computeCardinality()` Get the cardinality of the sequence returned by evaluating this instruction
`Expression` `convertToStringJoin(StaticContext env)` Convert this value-of instruction to an expression that delivers the string-value of the resulting text node.
`void` `display(int level, PrintStream out, Configuration config)` Display this instruction as an expression, for diagnostics
`Item` `evaluateItem(XPathContext context)` Evaluate this expression, returning the resulting text node to the caller
`int` `getInstructionNameCode()` Get the name of this instruction for diagnostic and tracing purposes
`ItemType` `getItemType(TypeHierarchy th)` Get the item type of the items returned by evaluating this instruction
`boolean` `isNumberingInstruction()` Determine whether this is really an xsl:number instruction
`void` `localTypeCheck(StaticContext env, ItemType contextItemType)` Method to perform type-checking specific to the kind of instruction
`TailCall` `processLeavingTail(XPathContext context)` Process this instruction, sending the resulting text node to the current output destination
`void` `setIsNumberingInstruction()` Indicate that this is really an xsl:nunber instruction

Methods inherited from class net.sf.saxon.instruct.SimpleNodeConstructor
`computeSpecialProperties, createsNewNodes, evaluateNameCode, expandChildren, getSelect, iterate, iterateSubExpressions, optimize, replaceSubExpression, setSelect, simplify, typeCheck`

Methods inherited from class net.sf.saxon.instruct.Instruction
`appendItem, evaluateAsString, getImplementationMethod, getInstructionInfo, getSourceLocator, isXSLT, process, promote`

Methods inherited from class net.sf.saxon.expr.Expression

`adoptChildExpression, computeDependencies, computeStaticProperties, doPromotion, effectiveBooleanValue, getCardinality, getColumnNumber, getContainingProcedure, getDependencies, getExecutable, getHostLanguage, getIntrinsicDependencies, getLineNumber, getLocationId, getLocationProvider, getParentExpression, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, hasBadParentPointer, markTailFunctionCalls, resetStaticProperties, setLocationId, setParentExpression, setParentExpression, suppressValidation`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface javax.xml.transform.SourceLocator
`getColumnNumber, getLineNumber, getPublicId, getSystemId`

Constructor Detail

### ValueOf

    public ValueOf(Expression select,
                   boolean disable,
                   boolean noNodeIfEmpty)

Method Detail

### setIsNumberingInstruction

    public void setIsNumberingInstruction()

  Indicate that this is really an xsl:nunber instruction

### isNumberingInstruction

    public boolean isNumberingInstruction()

  Determine whether this is really an xsl:number instruction

### getInstructionNameCode

    public int getInstructionNameCode()

  Get the name of this instruction for diagnostic and tracing purposes

  Overrides:
    `getInstructionNameCode` in class `Instruction`

### getItemType

    public ItemType getItemType(TypeHierarchy th)

  Description copied from class: `Instruction`
  Get the item type of the items returned by evaluating this instruction

  Overrides:
    `getItemType` in class `Instruction`
  Returns:
    the static item type of the instruction

### computeCardinality

    public int computeCardinality()

  Description copied from class: `SimpleNodeConstructor`
  Get the cardinality of the sequence returned by evaluating this instruction

  Overrides:
    `computeCardinality` in class `SimpleNodeConstructor`
  Returns:
    the static cardinality

### localTypeCheck

    public void localTypeCheck(StaticContext env,
                               ItemType contextItemType)

  Description copied from class: `SimpleNodeConstructor`
  Method to perform type-checking specific to the kind of instruction

  Specified by:
    `localTypeCheck` in class `SimpleNodeConstructor`

### checkPermittedContents

    public void checkPermittedContents(SchemaType parentType,
                                       StaticContext env,
                                       boolean whole)
                                throws XPathException

  Check statically that the results of the expression are capable of constructing the content of a given schema type.

  Overrides:
    `checkPermittedContents` in class `Expression`
  Parameters:
    `parentType` - The schema type
    `env` - the static context
    `whole` -
  Throws:
    `XPathException` - if the expression doesn't match the required content type

### convertToStringJoin

    public Expression convertToStringJoin(StaticContext env)

  Convert this value-of instruction to an expression that delivers the string-value of the resulting text node. This will often be a call on the string-join function.

### processLeavingTail

    public TailCall processLeavingTail(XPathContext context)
                                throws XPathException

  Process this instruction, sending the resulting text node to the current output destination

  Specified by:
    `processLeavingTail` in interface `TailCallReturner`
  Specified by:
    `processLeavingTail` in class `Instruction`
  Parameters:
    `context` -
  Returns:
    Always returns null
  Throws:
    `XPathException`

### evaluateItem

    public Item evaluateItem(XPathContext context)
                      throws XPathException

  Evaluate this expression, returning the resulting text node to the caller

  Specified by:
    `evaluateItem` in interface `EvaluableItem`
  Overrides:
    `evaluateItem` in class `SimpleNodeConstructor`
  Parameters:
    `context` -
  Returns:
    the parentless text node that results from evaluating this instruction, or null to represent an empty sequence
  Throws:
    `XPathException`

### display

    public void display(int level,
                        PrintStream out,
                        Configuration config)

  Display this instruction as an expression, for diagnostics

  Overrides:
    `display` in class `SimpleNodeConstructor`
  Parameters:
    `level` - indentation level for this expression
    `out` - Output destination

Copyright (C) Michael H. Kay. All rights reserved.