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:
    Serializable, SourceLocator, LocationProvider, SaxonLocator, TailCallReturner, ValidatingInstruction, InstructionInfo, Locator
  Direct Known Subclasses:
    ComputedAttribute, FixedAttribute

      public abstract class AttributeCreator
      extends SimpleNodeConstructor
      implements ValidatingInstruction

  Abstract class for fixed and computed attribute constructor expressions
  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from class net.sf.saxon.expr.instruct.SimpleNodeConstructor

      `select`

    - ### Fields inherited from class net.sf.saxon.expr.Expression

      `EFFECTIVE_BOOLEAN_VALUE, EVALUATE_METHOD, EVENT_FEED_METHOD, INHERITED_CONTEXT, INSPECTION_CONTEXT, ITEM_FEED_METHOD, ITERATE_METHOD, locationId, MAX_SEQUENCE_LENGTH, MAX_STRING_LENGTH, NAVIGATION_CONTEXT, NODE_VALUE_CONTEXT, PROCESS_METHOD, PUSH_SELECTION, staticProperties, UNBOUNDED_LOWER, UNBOUNDED_UPPER, W3C_CONSUMING, W3C_FREE_RANGING, W3C_GROUP_CONSUMING, W3C_MOTIONLESS, WATCH_METHOD`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AttributeCreator()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `computeSpecialProperties()` Get the static properties of this expression (other than its type).
    `ItemType` | `getItemType(TypeHierarchy th)` Get the static type of this expression
    `int` | `getOptions()` Get the options to be used on the attribute event
    `SimpleType` | `getSchemaType()` Return the required schema type of the attribute
    `int` | `getValidationAction()` Get the validation action requested
    `void` | `processValue(CharSequence value, XPathContext context)` Process the value of the node, to create the new node.
    `void` | `setNoSpecialChars()` Indicate that the attribute value contains no special characters that might need escaping
    `void` | `setOptions(int options)` Set the options to be used on the attribute event
    `void` | `setRejectDuplicates()` Indicate that two attributes with the same name are not acceptable.
    `void` | `setSchemaType(SimpleType type)` Set the required schema type of the attribute
    `void` | `setValidationAction(int action)` Set the validation action required
    `protected void` | `validateOrphanAttribute(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

      `checkContent, computeCardinality, createsNewNodes, evaluateItem, evaluateNodeName, getContentExpression, getStreamingAdjunct, iterate, iterateSubExpressionInfo, iterateSubExpressions, localTypeCheck, optimize, processLeavingTail, promoteInst, replaceSubExpression, setSelect, simplify, typeCheck`

    - ### Methods inherited from class net.sf.saxon.expr.instruct.Instruction

      `assembleParams, assembleTunnelParams, dynamicError, evaluateAsString, getConstructType, getExpressionName, getImplementationMethod, getInstructionName, getInstructionNameCode, getIteratorFromProcessMethod, getSourceLocator, isXSLT, process, promote`

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

      `addToPathMap, adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeStaticProperties, copy, doPromotion, dynamicError, effectiveBooleanValue, evaluatePendingUpdates, explain, explain, getCardinality, getColumnNumber, getColumnNumber, getContainer, getDependencies, getEvaluationMethod, getExecutable, getExpressionCompiler, getHostLanguage, getIntegerBounds, getIntrinsicDependencies, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getStreamability, getSystemId, getSystemId, hasVariableBinding, implementsStaticTypeCheck, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, iterateEvents, markTailFunctionCalls, resetLocalStaticProperties, setContainer, setEvaluationMethod, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation, toPattern, toStreamingPattern, toString, typeError`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface javax.xml.transform.SourceLocator

      `getColumnNumber, getLineNumber, getPublicId, getSystemId`

- - ### Constructor Detail

    - #### AttributeCreator

          public AttributeCreator()

  - ### Method Detail

    - #### setSchemaType

          public void setSchemaType(SimpleType type)

      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

          public SimpleType getSchemaType()

      Return the required schema type of the attribute
      Specified by:
        `getSchemaType` in interface `ValidatingInstruction`
      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:
        `getValidationAction` in interface `ValidatingInstruction`
      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 is `ReceiverOptions.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

          public 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:
        `computeSpecialProperties` in class `SimpleNodeConstructor`
      Returns:
        a set of flags indicating static properties of this expression

    - #### getItemType

          public ItemType getItemType(TypeHierarchy th)

      Get the static type of this expression
      Overrides:
        `getItemType` in class `Instruction`
      Parameters:
        `th` - the type hierarchy cache
      Returns:
        the static type of the item returned by this expression

    - #### processValue

          public void processValue(CharSequence value,
                          XPathContext context)
                            throws XPathException

      Process the value of the node, to create the new node.
      Specified by:
        `processValue` in class `SimpleNodeConstructor`
      Parameters:
        `value` - the string value of the new node
        `context` - the dynamic evaluation context
      Throws:
        `XPathException`

    - #### validateOrphanAttribute

          protected void validateOrphanAttribute(Orphan orphan,
                                     XPathContext context)
                                          throws XPathException

      Validate a newly-constructed parentless attribute using the type and validation attributes
      Parameters:
        `orphan` - the new attribute node
        `context` - the dynamic evaluation context
      Throws:
        `XPathException` - if validation fails

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.