Package net.sf.saxon.type

## Interface SchemaDeclaration

- All Known Implementing Classes:
    `AttributeDecl`, `ElementDecl`

      public interface SchemaDeclaration

  This is a marker interface that acts as a surrogate for an object representing a global element or attribute declaration. The real implementation of these declarations is available in the schema-aware version of the Saxon product.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `StructuredQName` | `getComponentName()` | Get the name of the schema component
    `int` | `getFingerprint()` | Get the name of the schema component
    `SchemaType` | `getType()` | Get the simple or complex type associated with the element or attribute declaration
    `boolean` | `hasTypeAlternatives()` | Determine, in the case of an Element Declaration, whether there are type alternatives defined
    `boolean` | `isAbstract()` | Determine, in the case of an Element Declaration, whether the declaration is abstract
    `boolean` | `isNillable()` | Determine, in the case of an Element Declaration, whether it is nillable.
    `NodeTest` | `makeSchemaNodeTest()` | Create a NodeTest that implements the semantics of schema-element(name) or schema-attribute(name) applied to this element or attribute declaration.

- - ### Method Detail

    - #### getFingerprint

          int getFingerprint()

      Get the name of the schema component
      Returns:
        the fingerprint of the component name

    - #### getComponentName

          StructuredQName getComponentName()

      Get the name of the schema component
      Returns:
        the component name as a structured QName

    - #### getType

          SchemaType getType()
                      throws MissingComponentException

      Get the simple or complex type associated with the element or attribute declaration
      Returns:
        the simple or complex type
      Throws:
        `MissingComponentException`

    - #### makeSchemaNodeTest

          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.
      Throws:
        `MissingComponentException` - if the type of the declaration is not present in the schema.

    - #### isNillable

          boolean isNillable()

      Determine, in the case of an Element Declaration, whether it is nillable.

    - #### isAbstract

          boolean isAbstract()

      Determine, in the case of an Element Declaration, whether the declaration is abstract

    - #### hasTypeAlternatives

          boolean hasTypeAlternatives()

      Determine, in the case of an Element Declaration, whether there are type alternatives defined
      Returns:
        true if the element uses conditional type assignment