Package com.saxonica.ee.schema

## Interface UserSchemaComponent

- All Superinterfaces:
    `SchemaComponent`
  All Known Implementing Classes:
    `AllModelGroup`, `AttributeDecl`, `AttributeGroupDecl`, `AttributeUse`, `AttributeWildcard`, `ChoiceModelGroup`, `Edge.MaxOccursParticle`, `ElementDecl`, `ElementParticle`, `ElementWildcard`, `IdentityConstraint`, `Key`, `KeyRef`, `ModelGroup`, `ModelGroupDefinition`, `ModelGroupParticle`, `Notation`, `Particle`, `SequenceModelGroup`, `SimpleTypeDefinition`, `Unique`, `UserAtomicType`, `UserComplexType`, `UserDefinedType`, `UserListType`, `UserSimpleType`, `UserUnionType`, `Wildcard`

      public interface UserSchemaComponent
      extends SchemaComponent

  A SchemaComponent is an object in a schema. While the schema is being built, a list of such objects is maintained, and on completion, the fixup method is called to resolve forwards references. Subsequently, the validate method is called to invoke validation

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface net.sf.saxon.type.SchemaComponent

      `SchemaComponent.ValidationStatus`

  - ### Field Summary

    - ### Fields inherited from interface net.sf.saxon.type.SchemaComponent

      `COMPONENT_FUNCTION_TYPE`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `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.
    `boolean` | `fixup​(SchemaCompiler compiler)` | Check references from this component to other components
    `void` | `lookForCycles​(java.util.Stack references, SchemaCompiler compiler)` | This method is called to look for cycles.
    `boolean` | `validate​(SchemaCompiler compiler)` | Checks the validity of this Schema component.

    - ### Methods inherited from interface net.sf.saxon.type.SchemaComponent

      `getComponentAsFunction, getRedefinitionLevel, getValidationStatus`

- - ### Method Detail

    - #### fixup

          boolean fixup​(SchemaCompiler compiler)
                 throws SchemaException

      Check references from this component to other components
      Parameters:
        `compiler` -
      Returns:
        true if all is well, false if errors found
      Throws:
        `SchemaException`

    - #### lookForCycles

          void lookForCycles​(java.util.Stack references,
                             SchemaCompiler compiler)
                      throws SchemaException,
                             MissingComponentException

      This method is called to look for cycles. The object implementing this method is required (a) to raise an exception if the object itself appears in the list of references, (b) to add itself to the list of references, and (c) to call the lookForCycles method on all the objects that it references.
      Parameters:
        `references` - A stack of objects that contain direct or indirect references to this object, and that must therefore not be referred to from this object.
        `compiler` -
      Throws:
        `SchemaException`
        `MissingComponentException`

    - #### validate

          boolean validate​(SchemaCompiler compiler)
                    throws SchemaException

      Checks the validity of this Schema component.
      Parameters:
        `compiler` -
      Returns:
        true when this Schema definition is valid, otherwise false.
      Throws:
        `SchemaException` - if the ErrorListener decides that an error is fatal.

    - #### elaborate

          void elaborate​(SchemaCompiler compiler)
                  throws SchemaException

      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.
      Parameters:
        `compiler` -
      Throws:
        `SchemaException`