Package org.apache.xmlbeans

## Interface SchemaComponent

- All Known Subinterfaces:
    `SchemaAnnotation`, `SchemaAttributeGroup`, `SchemaGlobalAttribute`, `SchemaGlobalElement`, `SchemaIdentityConstraint`, `SchemaModelGroup`, `SchemaType`
  All Known Implementing Classes:
    `SchemaAnnotationImpl`, `SchemaAttributeGroupImpl`, `SchemaGlobalAttributeImpl`, `SchemaGlobalElementImpl`, `SchemaIdentityConstraintImpl`, `SchemaModelGroupImpl`, `SchemaTypeImpl`

      public interface SchemaComponent

  Represents a global Schema Component. That is, a type, element, attribute, model group, attribute group, or identity constraint.

  Note that not all types, elements, and attributes are global; local types, element, and attributes do not appear in the global lookup table. Also note that other information items such as particles, facets, and so on are not globally indexed, so are not SchemaComponents.

  See Also:
    `SchemaType`, `SchemaGlobalElement`, `SchemaGlobalAttribute`, `SchemaAttributeGroup`, `SchemaModelGroup`, `SchemaIdentityConstraint`

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface | Description
    --- | --- | ---
    `static class` | `SchemaComponent.Ref` | A lazy reference to a component.

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static int` | `ANNOTATION` | An annotation.
    `static int` | `ATTRIBUTE` | An attribute definition.
    `static int` | `ATTRIBUTE_GROUP` | An attribute group definition.
    `static int` | `ELEMENT` | An element definition.
    `static int` | `IDENTITY_CONSTRAINT` | An identity constraint definition.
    `static int` | `MODEL_GROUP` | A model group definition.
    `static int` | `NOTATION` | A notation definition.
    `static int` | `TYPE` | A type definition.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `SchemaComponent.Ref` | `getComponentRef()` | Used for on-demand loading of schema components.
    `int` | `getComponentType()` | Returns the type code for the schema object, either `TYPE`, `ELEMENT`, `ATTRIBUTE`, `ATTRIBUTE_GROUP`, `MODEL_GROUP`, `IDENTITY_CONSTRAINT`, or `NOTATION`.
    `QName` | `getName()` | The name of the schema component
    `String` | `getSourceName()` | The name of resource that represends the source .xsd in which this component was defined (if known) See: `SchemaTypeLoader.getSourceAsStream(String)` Example:
    `SchemaTypeSystem` | `getTypeSystem()` | Returns the typesystem within which this component definition resides

- - ### Field Detail

    - #### TYPE

          static final int TYPE

      A type definition. See `getComponentType()`
      See Also:
        Constant Field Values

    - #### ELEMENT

          static final int ELEMENT

      An element definition. See `getComponentType()`
      See Also:
        Constant Field Values

    - #### ATTRIBUTE

          static final int ATTRIBUTE

      An attribute definition. See `getComponentType()`
      See Also:
        Constant Field Values

    - #### ATTRIBUTE_GROUP

          static final int ATTRIBUTE_GROUP

      An attribute group definition. See `getComponentType()`
      See Also:
        Constant Field Values

    - #### IDENTITY_CONSTRAINT

          static final int IDENTITY_CONSTRAINT

      An identity constraint definition. See `getComponentType()`
      See Also:
        Constant Field Values

    - #### MODEL_GROUP

          static final int MODEL_GROUP

      A model group definition. See `getComponentType()`
      See Also:
        Constant Field Values

    - #### NOTATION

          static final int NOTATION

      A notation definition. See `getComponentType()`
      See Also:
        Constant Field Values

    - #### ANNOTATION

          static final int ANNOTATION

      An annotation. See `getComponentType()`
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### getComponentType

          int getComponentType()

      Returns the type code for the schema object, either `TYPE`, `ELEMENT`, `ATTRIBUTE`, `ATTRIBUTE_GROUP`, `MODEL_GROUP`, `IDENTITY_CONSTRAINT`, or `NOTATION`.

    - #### getTypeSystem

          SchemaTypeSystem getTypeSystem()

      Returns the typesystem within which this component definition resides

    - #### getName

          QName getName()

      The name of the schema component

    - #### getSourceName

          String getSourceName()

      The name of resource that represends the source .xsd in which this component was defined (if known)
      See: `SchemaTypeLoader.getSourceAsStream(String)`
      Example:

             SchemaType schemaType = ..;
             InputStream is = schemaType.getTypeSystem().getSourceAsStream(schemaType.getSourceName());

    - #### getComponentRef

          SchemaComponent.Ref getComponentRef()

      Used for on-demand loading of schema components.