Class IdentityConstraint

java.lang.Object
com.saxonica.ee.schema.SchemaStructure
com.saxonica.ee.schema.IdentityConstraint
All Implemented Interfaces:
SerializableSchemaComponent, UserSchemaComponent, SourceLocator, Location, SchemaComponent, Locator
Direct Known Subclasses:
Key, KeyRef, Unique

public abstract class IdentityConstraint extends SchemaStructure implements UserSchemaComponent, SerializableSchemaComponent
The base class for the XML Schema Identity Constraints (key, keyref, unique).
  • Constructor Details

    • IdentityConstraint

      protected IdentityConstraint()
      Constructor used by sub-classes. Creates a new IdentityConstraint.
  • Method Details

    • getConstraintCategory

      public abstract String getConstraintCategory()
      The type of constraint: one of "key", "unique", or "keyref"
      Returns:
      one of "key", "unique", or "keyref" (note the spelling)
    • addField

      public void addField(IdentityField field)
      Adds the given IdentityField to this IdentityConstraint
      Parameters:
      field - the IdentityField to add.
    • getFields

      public List<IdentityField> getFields()
      Returns the List of Fields contained within this IdentityConstraint.
      Returns:
      the List of fields
    • getName

      public String getName()
      Return the name of this IdentityConstraint. This value will never be null.
      Returns:
      the name of this IdentityConstraint
    • getTargetNamespace

      public NamespaceUri getTargetNamespace()
      Return the target namespace of this IdentityConstraint.
      Returns:
      the target namespace of this IdentityConstraint. Return null if the target namespace is "absent".
    • getSelector

      public IdentitySelector getSelector()
      Returns the selector of this IdentityConstraint.
      Returns:
      the IdentitySelector of this IdentityConstraint
    • setSelector

      public void setSelector(IdentitySelector selector)
      Sets the selector for this IdentityConstraint.
      Parameters:
      selector - the Selector for this IdentityConstraint. Must not be null.
    • setConstraintName

      public void setConstraintName(StructuredQName nc)
      Set the integer cdde of the name of this identity constraint
      Parameters:
      nc - the namecode
    • getConstraintName

      public StructuredQName getConstraintName()
      Get the name of this identity constraint
      Returns:
      the component's name
    • setOrdered

      public void setOrdered(boolean ordered)
    • isOrdered

      public boolean isOrdered()
    • 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 - the schema compiler
      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 Schema definition.
      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 definition is invalid
    • typeCheck

      public void typeCheck(SchemaCompiler compiler, SchemaType contextType) throws XPathException
      Typecheck the selector and the fields. This reports warnings if the XPath expressions used in defining the constraint cannot select anything, or under similar conditions
      Parameters:
      compiler - the schema compiler
      contextType - the type of the element whose constraint is being defined
      Throws:
      XPathException - if a type error is found
    • isSameDeclaration

      public boolean isSameDeclaration(IdentityConstraint other)
      Test whether this is the same constraint as another. They are considered to be the same component if they are derived from the same definition in the original XML representation (which can happen when there are multiple includes of the same file)
      Parameters:
      other - the notation declaration that we are comparing with
      Returns:
      true if the two notation declarations are identical
    • elaborate

      public void elaborate(SchemaCompiler compiler)
      Elaborate the schema component: after reloading a serialized schema component model, this expands the component with derived information needed during validation episodes. The model is assumed to be valid.
      Specified by:
      elaborate in interface UserSchemaComponent
      Overrides:
      elaborate in class SchemaStructure
      Parameters:
      compiler - the schema compiler
    • serialize

      public void serialize(SchemaModelSerializer serializer) throws XPathException
      Serialize the identity constraint as part of the serialized Schema Component Model
      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.