net.sf.saxon.instruct
public class ComputedElement extends ElementCreator
See Also: FixedElement
Constructor Summary | |
---|---|
ComputedElement(Expression elementName, Expression namespace, NamespaceResolver nsContext, SchemaType schemaType, int validation, boolean inheritNamespaces, boolean allowQName)
Create an instruction that creates a new element node
|
Method Summary | |
---|---|
void | checkPermittedContents(SchemaType parentType, StaticContext env, boolean whole)
Check that any elements and attributes constructed or returned by this expression are acceptable
in the content model of a given complex type. |
Expression | copy()
Copy an expression. |
void | explain(ExpressionPresenter out)
Diagnostic print of expression structure. |
int | getInstructionNameCode()
Get the name of this instruction for diagnostic and tracing purposes |
ItemType | getItemType(TypeHierarchy th)
Get the item type of the value returned by this instruction
|
int | getNameCode(XPathContext context)
Callback from the superclass ElementCreator to get the nameCode
for the element name
|
Expression | getNameExpression()
Get the expression used to compute the element name |
Expression | getNamespaceExpression()
Get the expression used to compute the namespace URI |
NamespaceResolver | getNamespaceResolver()
Get the namespace resolver that provides the namespace bindings defined in the static context |
String | getNewBaseURI(XPathContext context) |
Iterator<Expression> | iterateSubExpressions() |
Expression | optimize(ExpressionVisitor visitor, ItemType contextItemType) |
protected void | outputNamespaceNodes(XPathContext context, Receiver out, int nameCode)
Callback to output namespace nodes for the new element.
|
protected void | promoteInst(PromotionOffer offer)
Offer promotion for subexpressions. |
boolean | replaceSubExpression(Expression original, Expression replacement)
Replace one subexpression by a replacement subexpression |
Expression | simplify(ExpressionVisitor visitor) |
Expression | typeCheck(ExpressionVisitor visitor, ItemType contextItemType) |
Parameters: elementName Expression that evaluates to produce the name of the element node as a lexical QName namespace Expression that evaluates to produce the namespace URI of the element node. Set to null if the namespace is to be deduced from the prefix of the elementName. nsContext Saved copy of the static namespace context for the instruction. Can be set to null if namespace is supplied. This namespace context must resolve the null prefix correctly, based on the different rules for XSLT and XQuery. //* @param defaultNamespace Default namespace to be used if no namespace is supplied and the //* computed element is a string with no prefix. validation Required validation mode (e.g. STRICT, LAX, SKIP) inheritNamespaces true if child elements automatically inherit the namespaces of their parent schemaType The required schema type for the content allowQName True if the elementName expression is allowed to return a QNameValue; false if it must return a string (that is, true in XQuery, false in XSLT).
Returns: the copy of the original expression
Parameters: th the type hierarchy cache
Returns: the item type
Parameters: context The evaluation context (not used)
Returns: the name code for the element name
Returns: the expression used to compute the element name
Returns: the expression used to compute the namespace URI
Returns: the namespace resolver
Parameters: context The execution context out the Receiver where the namespace nodes are to be written nameCode
Throws: XPathException
Parameters: offer details of the offer, for example the offer to move expressions that don't depend on the context to an outer level in the containing expression
Throws: net.sf.saxon.trans.XPathException if any error is detected
Parameters: original the original subexpression replacement the replacement subexpression
Returns: true if the original subexpression is found