Package net.sf.saxon.expr.instruct
Class AttributeCreator
java.lang.Object
net.sf.saxon.expr.Expression
net.sf.saxon.expr.instruct.Instruction
net.sf.saxon.expr.instruct.SimpleNodeConstructor
net.sf.saxon.expr.instruct.AttributeCreator
- All Implemented Interfaces:
ExportAgent,ValidatingInstruction,Locatable,IdentityComparable,Traceable
- Direct Known Subclasses:
ComputedAttribute,FixedAttribute
public abstract class AttributeCreator
extends SimpleNodeConstructor
implements ValidatingInstruction
Abstract class for fixed and computed attribute constructor expressions
-
Field Summary
Fields inherited from class net.sf.saxon.expr.instruct.SimpleNodeConstructor
selectOpFields inherited from class net.sf.saxon.expr.Expression
EFFECTIVE_BOOLEAN_VALUE, EVALUATE_METHOD, ITEM_FEED_METHOD, ITERATE_METHOD, MAX_COST, MAX_SEQUENCE_LENGTH, MAX_STRING_LENGTH, PROCESS_METHOD, staticProperties, UNBOUNDED_LOWER, UNBOUNDED_UPPER, UPDATE_METHOD, WATCH_METHOD -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected intGet the static properties of this expression (other than its type).Get the static type of this expressionintGet the options to be used on the attribute eventReturn the required schema type of the attributeintGet the validation action requestedbooleanAsk whether this expression is an instruction.voidprocessValue(UnicodeString value, Outputter output, XPathContext context) Process the value of the node, to create the new node.voidsetInstruction(boolean inst) Say whether this attribute creator originates as an XSLT instructionvoidIndicate that the attribute value contains no special characters that might need escapingvoidsetOptions(int options) Set the options to be used on the attribute eventvoidIndicate that two attributes with the same name are not acceptable.voidsetSchemaType(SimpleType type) Set the required schema type of the attributevoidsetValidationAction(int action) Set the validation action requiredprotected SimpleTypevalidate(NodeName attName, UnicodeString value, XPathContext context) Validate that the attribute value is valid, and return the type with which the constructed attribute should be annotatedprotected voidvalidateOrphanAttribute(Orphan orphan, XPathContext context) Validate a newly-constructed parentless attribute using the type and validation attributes.Methods inherited from class net.sf.saxon.expr.instruct.SimpleNodeConstructor
allowExtractingCommonSubexpressions, alwaysCreatesNewNodes, checkContent, computeCardinality, evaluateItem, evaluateNodeName, getSelect, getSelectOp, getStreamerName, isLocal, iterate, localTypeCheck, mayCreateNewNodes, operands, optimize, setSelect, typeCheckMethods inherited from class net.sf.saxon.expr.instruct.Instruction
assembleParams, assembleTunnelParams, dynamicError, evaluateAsString, getExpressionName, getImplementationMethod, getInstructionNameCode, getNetCost, getSourceLocator, isXSLT, process, someOperandCreatesNewNodesMethods inherited from class net.sf.saxon.expr.Expression
addToPathMap, adoptChildExpression, checkedOperands, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeHashCode, computeStaticProperties, copy, dispatchTailCall, dynamicError, effectiveBooleanValue, equals, explain, export, getCardinality, getConfiguration, getCost, getDependencies, getElaborator, getEvaluationMethod, getExtraProperty, getIntegerBounds, getIntrinsicDependencies, getLocalRetainedStaticContext, getLocation, getObjectName, getPackageData, getParentExpression, getProperties, getProperty, getRetainedStaticContext, getScopingExpression, getSlotsUsed, getSpecialProperties, getStaticBaseURI, getStaticBaseURIString, getStaticType, getStaticUType, getTracingTag, hasCompatibleStaticContext, hashCode, hasSpecialProperty, hasVariableBinding, identityHashCode, implementsStaticTypeCheck, isCallOn, isEqual, isIdentical, isLiftable, isMultiThreaded, isStaticPropertiesKnown, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, makeElaborator, markTailFunctionCalls, operandList, operandSparseList, optimizeChildren, prepareForStreaming, resetLocalStaticProperties, restoreParentPointers, setEvaluationMethod, setExtraProperty, setFiltered, setFlattened, setLocation, setParentExpression, setRetainedStaticContext, setRetainedStaticContextLocally, setRetainedStaticContextThoroughly, setStaticProperty, simplify, simplifyChildren, staticTypeCheck, supportsLazyEvaluation, suppressValidation, toPattern, toShortString, toString, typeCheckChildren, typeError, unordered, verifyParentPointers, withLocationMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface net.sf.saxon.trace.Traceable
gatherProperties
-
Constructor Details
-
AttributeCreator
public AttributeCreator()
-
-
Method Details
-
setInstruction
public void setInstruction(boolean inst) Say whether this attribute creator originates as an XSLT instruction- Parameters:
inst- true if this is an xsl:attribute instruction
-
isInstruction
public boolean isInstruction()Ask whether this expression is an instruction. In XSLT streamability analysis this is used to distinguish constructs corresponding to XSLT instructions from other constructs.- Overrides:
isInstructionin classInstruction- Returns:
- true if this construct originates as an XSLT instruction
-
setSchemaType
Set the required schema type of the attribute- Parameters:
type- the required schema type, if validation against a specific type is required, or null if no validation is required
-
getSchemaType
Return the required schema type of the attribute- Specified by:
getSchemaTypein interfaceValidatingInstruction- Returns:
- if validation against a schema type was requested, return the schema type (always a simple type). Otherwise, if validation against a specific type was not requested, return null
-
setValidationAction
public void setValidationAction(int action) Set the validation action required- Parameters:
action- the validation action required, for example strict or lax
-
getValidationAction
public int getValidationAction()Get the validation action requested- Specified by:
getValidationActionin interfaceValidatingInstruction- Returns:
- the validation action, for example strict or lax
-
setOptions
public void setOptions(int options) Set the options to be used on the attribute event- Parameters:
options- Options to be used. The only option currently defined isReceiverOption.REJECT_DUPLICATES, which controls whether or not it is an error to create two attributes with the same name for the same element. (This is an error in XQuery but not in XSLT).
-
setRejectDuplicates
public void setRejectDuplicates()Indicate that two attributes with the same name are not acceptable. (This option is set in XQuery, but not in XSLT) -
setNoSpecialChars
public void setNoSpecialChars()Indicate that the attribute value contains no special characters that might need escaping -
getOptions
public int getOptions()Get the options to be used on the attribute event- Returns:
- the option flags to be used
-
computeSpecialProperties
protected int computeSpecialProperties()Get the static properties of this expression (other than its type). The result is bit-signficant. These properties are used for optimizations. In general, if property bit is set, it is true, but if it is unset, the value is unknown.- Overrides:
computeSpecialPropertiesin classSimpleNodeConstructor- Returns:
- a set of flags indicating static properties of this expression
-
getItemType
Get the static type of this expression- Overrides:
getItemTypein classInstruction- Returns:
- the static type of the item returned by this expression
-
processValue
public void processValue(UnicodeString value, Outputter output, XPathContext context) throws XPathException Process the value of the node, to create the new node.- Specified by:
processValuein classSimpleNodeConstructor- Parameters:
value- the string value of the new nodeoutput- the destination for the resultcontext- the dynamic evaluation context- Throws:
XPathException- if a dynamic error occurs
-
validate
protected SimpleType validate(NodeName attName, UnicodeString value, XPathContext context) throws XPathException Validate that the attribute value is valid, and return the type with which the constructed attribute should be annotated- Parameters:
attName- the attribute namevalue- the string value of the attributecontext- the evaluation context- Returns:
- the type annotation to be used
- Throws:
XPathException- if validation fails
-
validateOrphanAttribute
Validate a newly-constructed parentless attribute using the type and validation attributes. Note, this is XSLT-only: XQuery does not allow validation of individual attributes- Parameters:
orphan- the new attribute nodecontext- the dynamic evaluation context- Throws:
XPathException- if validation fails
-