Class AttributeDecl

java.lang.Object
com.saxonica.ee.schema.SchemaStructure
com.saxonica.ee.schema.AttributeDecl
All Implemented Interfaces:
ComponentWithValueConstraint, SerializableSchemaComponent, UserSchemaComponent, SourceLocator, Location, SchemaComponent, SchemaDeclaration, Locator

An XML Schema Attribute Declaration. This includes global attribute declarations, local attribute declarations, and "attribute uses". It corresponds to either (a) an attribute declaration schema component for a global attribute, or (b) an attribute declaration schema component for a local attribute, plus an attribute use referencing that attribute declaration, or (c) an attribute use referencing a global attribute declaration.
  • Constructor Details

    • AttributeDecl

      public AttributeDecl(EnterpriseConfiguration config, boolean global)
      Creates a new AttrDecl in the given schema. For system use only.
      Parameters:
      config - the configuration that contains the new attrDecl
      global - true if the attribute declaration is global
  • Method Details

    • isGlobal

      public boolean isGlobal()
      Determine whether this attribute declaration is global. This represents one aspect of the {scope} property defined in the schema data model.
      Returns:
      true if the attribute declaration is global, false if it is local
    • setContainingComplexType

      public void setContainingComplexType(UserComplexType type)
      Sets the containing complex type definition. For internal use only.
      Parameters:
      type - the containing complex type
    • getContainingComplexType

      public UserComplexType getContainingComplexType()
      Get the containing complex type. This represents one aspect of the {scope} property defined in the schema component model. If the attribute is a local attribute declaration and is defined as part of a complex type (and not as part of a named attribute group), returns the complex type definition. Otherwise, returns null.
      Returns:
      the containing complex type definition if there is one, otherwise null
    • setContainingAttributeGroup

      public void setContainingAttributeGroup(AttributeGroupDecl type)
      Sets the containing attribute group definition. For internal use only.
      Parameters:
      type - the containing attribute group
    • getContainingAttributeGroup

      public AttributeGroupDecl getContainingAttributeGroup()
      Get the containing attribute group. This represents one aspect of the {scope} property defined in the schema component model. If the attribute is a local attribute declaration and is defined as part of an attribute group (and not as part of a complex type), returns the attribute group. Otherwise, returns null.
      Returns:
      the containing attribute group if there is one, otherwise null
    • getName

      public String getName()
      Get the local name of this Attribute Declaration. This corresponds to the {name} property as defined in the schema component model.
      Returns:
      the local name of the attribute
    • getTargetNamespace

      public NamespaceUri getTargetNamespace()
      Get the namespace URI of this element declaration. This corresponds to the {targetNamespace} property defined in the schema component model.
      Returns:
      the target namespace URI
    • getDisplayName

      public String getDisplayName()
      Returns the name of the attribute defined by this AttributeDecl. This is used only for diagnostic display purposes
      Returns:
      the name of the attribute as a lexical QName.
    • setAttributeName

      public void setAttributeName(StructuredQName attributeName, int fingerprint)
      Set the attribute name. For internal use only.
      Parameters:
      attributeName - the attribute name.
      fingerprint - the fingerprint of the attribute name
    • setAttributeName

      public void setAttributeName(StructuredQName attributeName)
      Set the attribute name. For internal use only.
      Parameters:
      attributeName - the attribute name.
    • getComponentName

      public StructuredQName getComponentName()
      Get the attribute name
      Specified by:
      getComponentName in interface SchemaDeclaration
      Returns:
      the name of the attribute being declared
    • getNamespaceResolver

      public NamespaceResolver getNamespaceResolver()
      Description copied from interface: ComponentWithValueConstraint
      Get the namespace resolver used when the fixed or value constraints include lexical QNames
      Specified by:
      getNamespaceResolver in interface ComponentWithValueConstraint
      Returns:
      the namespace resolver for lexical QNames
    • setTypeReference

      public void setTypeReference(TypeReference type)
      Sets the schema type for this attribute declaration. For internal use only.
      Parameters:
      type - the schema type for this element declaration.
    • getFingerprint

      public int getFingerprint()
      Gets the fingerprint of this attribute name
      Specified by:
      getFingerprint in interface SchemaDeclaration
      Returns:
      the fingerprint of the attribute name in the NamePool
    • getSimpleType

      public SimpleType getSimpleType() throws MissingComponentException
      Get the type associated with this Attribute Declaration.
      Returns:
      the type of this attribute.
      Throws:
      MissingComponentException - if the reference from the attribute declaration to its type has not been resolved
    • getType

      public SimpleType getType() throws MissingComponentException
      Get the type of this attribute declaration. This corresponds to the {typeDefinition} property defined in the schema component model
      Specified by:
      getType in interface SchemaDeclaration
      Returns:
      the type of this attribute. The returned SchemaType will always be an instanceof SimpleType
      Throws:
      MissingComponentException
    • getValueConstraint

      public ValueConstraint getValueConstraint()
      Get the value constraint (fixed or default value) that applies to this element declaration, if any
      Specified by:
      getValueConstraint in interface ComponentWithValueConstraint
      Returns:
      the applicable value constraint if there is one, or null otherwise
    • setSimpleType

      public void setSimpleType(SimpleType simpleType)
      Sets the SimpleType for this attribute declaration. For internal use only.
      Parameters:
      simpleType - the SimpleType for this attribute declaration
    • setValueConstraint

      public void setValueConstraint(ValueConstraint vc)
      Set the value constraint (fixed or default value) that applies to this element declaration
      Specified by:
      setValueConstraint in interface ComponentWithValueConstraint
      Parameters:
      vc - the value constraint
    • setNamespaceResolver

      public void setNamespaceResolver(NamespaceResolver resolver)
      Set the namespace resolver for resolving QName-valued fixed and default values
      Parameters:
      resolver - the namespace resolver
    • makeSchemaNodeTest

      public NodeTest makeSchemaNodeTest() throws MissingComponentException
      Create a NodeTest that implements the semantics of schema-element(name) or schema-attribute(name) applied to this element or attribute declaration.
      Specified by:
      makeSchemaNodeTest in interface SchemaDeclaration
      Throws:
      MissingComponentException - if the type of the declaration is not present in the schema.
    • setInheritable

      public void setInheritable(boolean inherit)
      Say whether this attribute is inheritable
      Parameters:
      inherit - true if it is inheritable
    • isInheritable

      public boolean isInheritable()
      Ask whether this attribute is inheritable
      Returns:
      true if it is inheritable
    • hasTypeAlternatives

      public boolean hasTypeAlternatives()
      Determine, in the case of an Element Declaration, whether there are type alternatives defined
      Specified by:
      hasTypeAlternatives in interface SchemaDeclaration
      Returns:
      false for an attribute declaration
    • fixup

      public boolean fixup(SchemaCompiler compiler) throws SchemaException
      Check references from this component to other components
      Specified by:
      fixup in interface UserSchemaComponent
      Overrides:
      fixup in class SchemaStructure
      Parameters:
      compiler - used for error reporting
      Returns:
      true if all is well, false if errors found
      Throws:
      SchemaException
    • validate

      public boolean validate(SchemaCompiler compiler) throws SchemaException
      Checks the validity of this Attribute declaration
      Specified by:
      validate in interface UserSchemaComponent
      Overrides:
      validate in class SchemaStructure
      Parameters:
      compiler - the schema compiler
      Returns:
      true when this Schema definition is valid, otherwise false.
      Throws:
      SchemaException - if the error listener decides an error is fatal
    • isSameDeclaration

      public boolean isSameDeclaration(AttributeDecl other)
      Test whether this is the same declaration as another attribute declaration. They are considered to be the same declaration if they came from the same xs:attribute element in the same schema document
      Parameters:
      other - the other attribute declaration
      Returns:
      true if the two attribute declarations are considered identical
    • isNillable

      public boolean isNillable()
      Determine, in the case of an Element Declaration, whether it is nillable. For an Attribute declaration, always return false;
      Specified by:
      isNillable in interface SchemaDeclaration
    • isAbstract

      public boolean isAbstract()
      Determine, in the case of an Element Declaration, whether it is nillable. For an Attribute declaration, always return false;
      Specified by:
      isAbstract in interface SchemaDeclaration
    • serialize

      public void serialize(SchemaModelSerializer serializer) throws XPathException
      Serialize the schema component
      Specified by:
      serialize in interface SerializableSchemaComponent
      Parameters:
      serializer - the object responsible for performing the serialization
      Throws:
      XPathException - if serialization fails
    • getComponentAsFunction

      public FunctionItem getComponentAsFunction()
      Description copied from interface: SchemaComponent
      Get the schema component in the form of a function item. This allows schema information to be made visible to XSLT or XQuery code. The function makes available the contents of the schema component as defined in the XSD specification. The function takes a string as argument representing a property name, and returns the corresponding property of the schema component. There is also a property "class" which returns the kind of schema component, for example "Attribute Declaration".
      Specified by:
      getComponentAsFunction in interface SchemaComponent
      Overrides:
      getComponentAsFunction in class SchemaStructure
      Returns:
      the schema component represented as a function from property names to property values.
    • toString

      public String toString()
      Overrides:
      toString in class Object