## org.eclipse.xsd
Interface XSDTypeDefinition

All Superinterfaces:
  EObject, Notifier, XSDComponent, XSDConcreteComponent, XSDNamedComponent, XSDRedefinableComponent, XSDRedefineContent, XSDSchemaContent

All Known Subinterfaces:
  XSDComplexTypeDefinition, XSDSimpleTypeDefinition

All Known Implementing Classes:
  XSDComplexTypeDefinitionImpl, XSDSimpleTypeDefinitionImpl, XSDTypeDefinitionImpl

    public interface XSDTypeDefinition

extends XSDRedefinableComponent, XSDRedefineContent

A representation of the model object 'Type Definition'. It is used to represent aspects common to '`Simple Type Definitions`' and '`Complex Type Definitions`'.

The following features are supported:

- `Annotation`
- `Derivation Annotation`
- `Annotations`
- `Root Type`
- `Base Type`
- `Simple Type`
- `Complex Type`

See Also:
  `XSDPackage.getXSDTypeDefinition()`

Method Summary
`XSDAnnotation` `getAnnotation()` Returns the value of the 'Annotation' containment reference
`EList<XSDAnnotation>` `getAnnotations()` Returns the value of the 'Annotations' reference list.
`XSDTypeDefinition` `getBadTypeDerivation(XSDTypeDefinition xsdTypeDefinition, boolean extension, boolean restriction)` Returns the first type between this and the given one, that derives from it's base in a way not permitted as constrained by Type Derivation OK Complex and Simple.
`XSDTypeDefinition` `getBaseType()` Returns the value of the 'Base Type' reference
`XSDParticle` `getComplexType()` Returns the value of the 'Complex Type' reference
`XSDAnnotation` `getDerivationAnnotation()` Returns the value of the 'Derivation Annotation' containment reference
`XSDTypeDefinition` `getRootType()` Returns the value of the 'Root Type' reference
`XSDSimpleTypeDefinition` `getSimpleType()` Returns the value of the 'Simple Type' reference
`void` `setAnnotation(XSDAnnotation value)` Sets the value of the '`Annotation`' containment reference
`void` `setDerivationAnnotation(XSDAnnotation value)` Sets the value of the '`Derivation Annotation`' containment reference

Methods inherited from interface org.eclipse.xsd.XSDRedefinableComponent
`isCircular`

Methods inherited from interface org.eclipse.xsd.XSDNamedComponent
`getAliasName, getAliasURI, getName, getQName, getQName, getTargetNamespace, getURI, hasNameAndTargetNamespace, hasSameNameAndTargetNamespace, hasURI, setName, setTargetNamespace`

Methods inherited from interface org.eclipse.xsd.XSDConcreteComponent

`clearDiagnostics, cloneConcreteComponent, contains, elementAttributesChanged, elementChanged, elementContentsChanged, getComponentsWithApplicationInformation, getComponentsWithUserInformation, getContainer, getDiagnostics, getElement, getRootContainer, getSchema, resolveAttributeDeclaration, resolveAttributeDeclaration, resolveAttributeDeclarationURI, resolveAttributeGroupDefinition, resolveAttributeGroupDefinition, resolveAttributeGroupDefinitionURI, resolveComplexTypeDefinition, resolveComplexTypeDefinition, resolveComplexTypeDefinitionURI, resolveElementDeclaration, resolveElementDeclaration, resolveElementDeclarationURI, resolveIdentityConstraintDefinition, resolveIdentityConstraintDefinition, resolveIdentityConstraintDefinitionURI, resolveModelGroupDefinition, resolveModelGroupDefinition, resolveModelGroupDefinitionURI, resolveNotationDeclaration, resolveNotationDeclaration, resolveNotationDeclarationURI, resolveSimpleTypeDefinition, resolveSimpleTypeDefinition, resolveSimpleTypeDefinitionURI, resolveTypeDefinition, resolveTypeDefinition, resolveTypeDefinitionURI, setElement, updateElement, updateElement, validate`

Methods inherited from interface org.eclipse.emf.ecore.EObject
`eAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eIsProxy, eIsSet, eResource, eSet, eUnset`

Methods inherited from interface org.eclipse.emf.common.notify.Notifier
`eAdapters, eDeliver, eNotify, eSetDeliver`

Methods inherited from interface org.eclipse.xsd.XSDConcreteComponent

`clearDiagnostics, cloneConcreteComponent, contains, elementAttributesChanged, elementChanged, elementContentsChanged, getComponentsWithApplicationInformation, getComponentsWithUserInformation, getContainer, getDiagnostics, getElement, getRootContainer, getSchema, resolveAttributeDeclaration, resolveAttributeDeclaration, resolveAttributeDeclarationURI, resolveAttributeGroupDefinition, resolveAttributeGroupDefinition, resolveAttributeGroupDefinitionURI, resolveComplexTypeDefinition, resolveComplexTypeDefinition, resolveComplexTypeDefinitionURI, resolveElementDeclaration, resolveElementDeclaration, resolveElementDeclarationURI, resolveIdentityConstraintDefinition, resolveIdentityConstraintDefinition, resolveIdentityConstraintDefinitionURI, resolveModelGroupDefinition, resolveModelGroupDefinition, resolveModelGroupDefinitionURI, resolveNotationDeclaration, resolveNotationDeclaration, resolveNotationDeclarationURI, resolveSimpleTypeDefinition, resolveSimpleTypeDefinition, resolveSimpleTypeDefinitionURI, resolveTypeDefinition, resolveTypeDefinition, resolveTypeDefinitionURI, setElement, updateElement, updateElement, validate`

Methods inherited from interface org.eclipse.emf.ecore.EObject
`eAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eIsProxy, eIsSet, eResource, eSet, eUnset`

Methods inherited from interface org.eclipse.emf.common.notify.Notifier
`eAdapters, eDeliver, eNotify, eSetDeliver`

Method Detail

### getAnnotation

    XSDAnnotation getAnnotation()

  Returns the value of the 'Annotation' containment reference.

  This concrete reference represents the direct annotation content of a complexType element or a simpleType element.

  Returns:
    the value of the 'Annotation' containment reference.
  See Also:
    `setAnnotation(XSDAnnotation)`, `XSDPackage.getXSDTypeDefinition_Annotation()`

### setAnnotation

    void setAnnotation(XSDAnnotation value)

  Sets the value of the '`Annotation`' containment reference.

  Parameters:
    `value` - the new value of the 'Annotation' containment reference.
  See Also:
    `getAnnotation()`

### getDerivationAnnotation

    XSDAnnotation getDerivationAnnotation()

  Returns the value of the 'Derivation Annotation' containment reference.

  This concrete reference represents the direct annotation content of a complex content extension, complex content restriction, simple content extension, simple content restriction, simple type restriction, simple type list, or simple type union element.

  Returns:
    the value of the 'Derivation Annotation' containment reference.
  See Also:
    `setDerivationAnnotation(XSDAnnotation)`, `XSDPackage.getXSDTypeDefinition_DerivationAnnotation()`

### setDerivationAnnotation

    void setDerivationAnnotation(XSDAnnotation value)

  Sets the value of the '`Derivation Annotation`' containment reference.

  Parameters:
    `value` - the new value of the 'Derivation Annotation' containment reference.
  See Also:
    `getDerivationAnnotation()`

### getAnnotations

    EList<XSDAnnotation> getAnnotations()

  Returns the value of the 'Annotations' reference list. The list contents are of type `XSDAnnotation`.

  This represents the complex type definition annotation or simple type definition annotation infoset property. It is computed from the `annotation`, `content annotation`, `derivationAnnotation` and should typically not be modified directly.

  Returns:
    the value of the 'Annotations' reference list.
  See Also:
    `XSDPackage.getXSDTypeDefinition_Annotations()`

### getRootType

    XSDTypeDefinition getRootType()

  Returns the value of the 'Root Type' reference.

  This walks the `base types` until it hits that one that has the ur-type definition as it's base type.

  Returns:
    the value of the 'Root Type' reference.
  See Also:
    `XSDPackage.getXSDTypeDefinition_RootType()`

### getBaseType

    XSDTypeDefinition getBaseType()

  Returns the value of the 'Base Type' reference.

  This represents the same result as either the simple '`Base Type Definition`' reference or the complex '`Base Type Definition`' reference.

  Returns:
    the value of the 'Base Type' reference.
  See Also:
    `XSDPackage.getXSDTypeDefinition_BaseType()`

### getSimpleType

    XSDSimpleTypeDefinition getSimpleType()

  Returns the value of the 'Simple Type' reference.

  This represents either the '`Simple Type Definition`' itself or the complex '`Content Type`' reference, if it is `simple`.

  Returns:
    the value of the 'Simple Type' reference.
  See Also:
    `XSDPackage.getXSDTypeDefinition_SimpleType()`

### getComplexType

    XSDParticle getComplexType()

  Returns the value of the 'Complex Type' reference.

  This represents the complex '`Content Type`' reference, if it is `complex`, i.e., if it is a '`Particle`'.

  Returns:
    the value of the 'Complex Type' reference.
  See Also:
    `XSDPackage.getXSDTypeDefinition_ComplexType()`

### getBadTypeDerivation

    XSDTypeDefinition getBadTypeDerivation(XSDTypeDefinition xsdTypeDefinition,
                                           boolean extension,
                                           boolean restriction)

  Returns the first type between this and the given one, that derives from it's base in a way not permitted as constrained by Type Derivation OK Complex and Simple. The result is `null` if the derivation is valid; the result is the `UR-type`, if this type is not related to the given type; otherwise, the result is the base with the blocked derivation method.

  Returns:
    the first type between this and the given one, that derives from it's base in a way not permitted.

Copyright 2001-2006 IBM Corporation and others. All Rights Reserved.