Class 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
  • 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:
      isInstruction in class Instruction
      Returns:
      true if this construct originates as an XSLT instruction
    • 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 ReceiverOption.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:
      computeSpecialProperties in class SimpleNodeConstructor
      Returns:
      a set of flags indicating static properties of this expression
    • getItemType

      public ItemType getItemType()
      Get the static type of this expression
      Overrides:
      getItemType in class Instruction
      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:
      processValue in class SimpleNodeConstructor
      Parameters:
      value - the string value of the new node
      output - the destination for the result
      context - 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 name
      value - the string value of the attribute
      context - the evaluation context
      Returns:
      the type annotation to be used
      Throws:
      XPathException - if validation fails
    • validateOrphanAttribute

      protected void validateOrphanAttribute(Orphan orphan, XPathContext context) throws XPathException
      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 node
      context - the dynamic evaluation context
      Throws:
      XPathException - if validation fails