## net.sf.saxon.instruct
Class DocumentInstr

    java.lang.Object
      |
      +--net.sf.saxon.expr.ComputedExpression
            |
            +--net.sf.saxon.instruct.Instruction
                  |
                  +--net.sf.saxon.instruct.InstructionWithChildren
                        |
                        +--net.sf.saxon.instruct.DocumentInstr

All Implemented Interfaces:
  Container, Expression, InstructionInfoProvider, java.io.Serializable, javax.xml.transform.SourceLocator

public class DocumentInstr
extends InstructionWithChildren

An instruction to create a document node. This doesn't correspond directly to any XSLT instruction. It is used to support the document node constructor expression in XQuery, and is used as a sub-instruction within an xsl:variable that constructs a temporary tree.

Conceptually it represents an XSLT instruction xsl:document-node, with no attributes, whose content is a complex content constructor for the children of the document node.

See Also:
  Serialized Form

Field Summary

Fields inherited from class net.sf.saxon.instruct.InstructionWithChildren
`children`

Fields inherited from class net.sf.saxon.expr.ComputedExpression
`locationId, staticProperties`

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

Constructor Summary
`DocumentInstr(boolean textOnly, java.lang.String constantText, java.lang.String baseURI)`

Method Summary
`void` `display(int level, NamePool pool, java.io.PrintStream out)` Display this instruction as an expression, for diagnostics
`Item` `evaluateItem(XPathContext context)` Evaluate as an expression.
`int` `getCardinality()` Determine the static cardinality of the expression.
`int` `getInstructionNameCode()` Get the name of this instruction for diagnostic and tracing purposes (the string "document-constructor")
`ItemType` `getItemType()` Get the item type of the items returned by evaluating this instruction
`TailCall` `processLeavingTail(XPathContext context)` ProcessLeavingTail: called to do the real work of this instruction.
`void` `setSchemaType(SchemaType type)` Set the SchemaType of the document element
`void` `setValidationAction(int action)` Set the validation action

Methods inherited from class net.sf.saxon.instruct.InstructionWithChildren
`analyze, displayChildren, getChildren, iterateSubExpressions, processChildren, processChildrenLeavingTail, promoteInst, setChildren, simplify`

Methods inherited from class net.sf.saxon.instruct.Instruction
`appendItem, assembleParams, assembleTunnelParams, computeCardinality, computeSpecialProperties, dynamicError, dynamicError, effectiveBooleanValue, evaluateAsString, getImplementationMethod, getInstructionInfo, getSourceLocator, iterate, process, promote`

Methods inherited from class net.sf.saxon.expr.ComputedExpression
`adoptChildExpression, computeDependencies, computeStaticProperties, dynamicError, dynamicError, getColumnNumber, getConstructType, getDependencies, getExecutable, getIntrinsicDependencies, getLineNumber, getLocationId, getParentExpression, getPublicId, getSpecialProperties, getSystemId, markTailFunctionCalls, resetStaticProperties, setLocationId, setParentExpression, typeError`

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

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

Constructor Detail

### DocumentInstr

    public DocumentInstr(boolean textOnly,
                         java.lang.String constantText,
                         java.lang.String baseURI)

Method Detail

### setValidationAction

    public void setValidationAction(int action)

  Set the validation action

### setSchemaType

    public void setSchemaType(SchemaType type)

  Set the SchemaType of the document element

### getItemType

    public ItemType getItemType()

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

  Specified by:
    `getItemType` in interface `Expression`
  Overrides:
    `getItemType` in class `Instruction`
  Returns:
    the static item type of the instruction

### getCardinality

    public int getCardinality()

  Description copied from class: `ComputedExpression`
  Determine the static cardinality of the expression. This establishes how many items there will be in the result of the expression, at compile time (i.e., without actually evaluating the result.

  Specified by:
    `getCardinality` in interface `Expression`
  Overrides:
    `getCardinality` in class `ComputedExpression`
  Returns:
    one of the values Cardinality.ONE_OR_MORE, Cardinality.ZERO_OR_MORE, Cardinality.EXACTLY_ONE, Cardinality.ZERO_OR_ONE, Cardinality.EMPTY. This default implementation returns ZERO_OR_MORE (which effectively gives no information).

### processLeavingTail

    public TailCall processLeavingTail(XPathContext context)
                                throws XPathException

  Description copied from class: `Instruction`
  ProcessLeavingTail: called to do the real work of this instruction. This method must be implemented in each subclass. The results of the instruction are written to the current Receiver, which can be obtained via the Controller.

  Specified by:
    `processLeavingTail` in class `Instruction`
  Parameters:
    `context` - The dynamic context of the transformation, giving access to the current node, the current variables, etc.
  Returns:
    null if the instruction has completed execution; or a TailCall indicating a function call or template call that is delegated to the caller, to be made after the stack has been unwound so as to save stack space.
    `XPathException`

### evaluateItem

    public Item evaluateItem(XPathContext context)
                      throws XPathException

  Evaluate as an expression.

  Specified by:
    `evaluateItem` in interface `Expression`
  Overrides:
    `evaluateItem` in class `Instruction`
  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

### getInstructionNameCode

    public int getInstructionNameCode()

  Get the name of this instruction for diagnostic and tracing purposes (the string "document-constructor")

  Overrides:
    `getInstructionNameCode` in class `Instruction`

### display

    public void display(int level,
                        NamePool pool,
                        java.io.PrintStream out)

  Display this instruction as an expression, for diagnostics

  Parameters:
    `level` - indentation level for this expression
    `pool` - NamePool used to expand any names appearing in the expression
    `out` - Output destination