# XSTypeDefinition Class Reference

This class represents a complexType or simpleType definition. More...

Inheritance diagram for XSTypeDefinition:

List of all members.

## Public Types

enum | TYPE_CATEGORY { COMPLEX_TYPE = 15, SIMPLE_TYPE = 16 }

## Public Member Functions

Constructors
| XSTypeDefinition (TYPE_CATEGORY typeCategory, XSTypeDefinition *const xsBaseType, XSModel *const xsModel, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
| The default constructor.
Destructor
virtual | ~XSTypeDefinition ()
overloaded XSObject methods
virtual const XMLCh * | getName () const =0
| The name of type `NCName` of this declaration as defined in XML Namespaces.
virtual const XMLCh * | getNamespace ()=0
| The [target namespace] of this object, or `null` if it is unspecified.
virtual XSNamespaceItem * | getNamespaceItem ()=0
| A namespace schema information item corresponding to the target namespace of the component, if it's globally declared; or null otherwise.
XSTypeDefinition methods
TYPE_CATEGORY | getTypeCategory () const
| Return whether this type definition is a simple type or complex type.
virtual XSTypeDefinition * | getBaseType ()=0
| {base type definition}: either a simple type definition or a complex type definition.
bool | isFinal (short toTest)
| {final}.
short | getFinal () const
| For complex types the returned value is a bit combination of the subset of {`DERIVATION_EXTENSION, DERIVATION_RESTRICTION`} corresponding to `final` set of this type or `DERIVATION_NONE`.
virtual bool | getAnonymous () const =0
| A boolean that specifies if the type definition is anonymous.
virtual bool | derivedFromType (const XSTypeDefinition *const ancestorType)=0
| Convenience method: check if this type is derived from the given `ancestorType`.
bool | derivedFrom (const XMLCh *typeNamespace, const XMLCh *name)
| Convenience method: check if this type is derived from the given ancestor type.

## Protected Attributes

TYPE_CATEGORY | fTypeCategory
short | fFinal
XSTypeDefinition * | fBaseType

## Detailed Description

This class represents a complexType or simpleType definition.

This is *always* owned by the validator /parser object from which it is obtained.

## Member Enumeration Documentation

enum XSTypeDefinition::TYPE_CATEGORY

Enumerator:

  COMPLEX_TYPE | This constant value signifies a complex type.
  SIMPLE_TYPE | This constant value signifies a simple type.

## Constructor & Destructor Documentation

XSTypeDefinition::XSTypeDefinition | ( | TYPE_CATEGORY | typeCategory,
|  | XSTypeDefinition *const | xsBaseType,
|  | XSModel *const | xsModel,
|  | MemoryManager *const | manager = `XMLPlatformUtils::fgMemoryManager` |
| ) |  |  |

The default constructor.

Parameters:

  | typeCategory |
  | xsBaseType |
  | xsModel |
  | manager | The configurable memory manager

virtual XSTypeDefinition::~XSTypeDefinition | ( |  | ) | `[virtual]`

## Member Function Documentation

virtual const XMLCh* XSTypeDefinition::getName | ( |  | ) | const`[pure virtual]`

The name of type `NCName` of this declaration as defined in XML Namespaces.

Reimplemented from XSObject.

Implemented in XSComplexTypeDefinition, and XSSimpleTypeDefinition.

virtual const XMLCh* XSTypeDefinition::getNamespace | ( |  | ) | `[pure virtual]`

The [target namespace] of this object, or `null` if it is unspecified.

Reimplemented from XSObject.

Implemented in XSComplexTypeDefinition, and XSSimpleTypeDefinition.

virtual XSNamespaceItem* XSTypeDefinition::getNamespaceItem | ( |  | ) | `[pure virtual]`

A namespace schema information item corresponding to the target namespace of the component, if it's globally declared; or null otherwise.

Reimplemented from XSObject.

Implemented in XSComplexTypeDefinition, and XSSimpleTypeDefinition.

XSTypeDefinition::TYPE_CATEGORY XSTypeDefinition::getTypeCategory | ( |  | ) | const

Return whether this type definition is a simple type or complex type.

References fTypeCategory.

virtual XSTypeDefinition* XSTypeDefinition::getBaseType | ( |  | ) | `[pure virtual]`

{base type definition}: either a simple type definition or a complex type definition.

Implemented in XSComplexTypeDefinition, and XSSimpleTypeDefinition.

bool XSTypeDefinition::isFinal | ( | short | toTest | ) |

{final}.

For complex type definition it is a subset of {extension, restriction}. For simple type definition it is a subset of {extension, list, restriction, union}.

Parameters:

  | toTest | Extension, restriction, list, union constants (defined in `XSObject`).

Returns:
  True if toTest is in the final set, otherwise false.

short XSTypeDefinition::getFinal | ( |  | ) | const

For complex types the returned value is a bit combination of the subset of {`DERIVATION_EXTENSION, DERIVATION_RESTRICTION`} corresponding to `final` set of this type or `DERIVATION_NONE`.

For simple types the returned value is a bit combination of the subset of { `DERIVATION_RESTRICTION, DERIVATION_EXTENSION, DERIVATION_UNION, DERIVATION_LIST` } corresponding to `final` set of this type or `DERIVATION_NONE`.

References fFinal.

virtual bool XSTypeDefinition::getAnonymous | ( |  | ) | const`[pure virtual]`

A boolean that specifies if the type definition is anonymous.

Convenience attribute.

Implemented in XSComplexTypeDefinition, and XSSimpleTypeDefinition.

virtual bool XSTypeDefinition::derivedFromType | ( | const XSTypeDefinition *const | ancestorType | ) | `[pure virtual]`

Convenience method: check if this type is derived from the given `ancestorType`.

Parameters:

  | ancestorType | An ancestor type definition.

Returns:
  Return true if this type is derived from `ancestorType`.

Implemented in XSComplexTypeDefinition, and XSSimpleTypeDefinition.

bool XSTypeDefinition::derivedFrom | ( | const XMLCh * | typeNamespace,
|  | const XMLCh * | name |
| ) |  |  |

Convenience method: check if this type is derived from the given ancestor type.

Parameters:

  | typeNamespace | An ancestor type namespace.
  | name | An ancestor type name.

Returns:
  Return true if this type is derived from the ancestor defined by `typeNamespace` and `name`.

## Member Data Documentation

TYPE_CATEGORY XSTypeDefinition::fTypeCategory`[protected]`

Referenced by getTypeCategory().

short XSTypeDefinition::fFinal`[protected]`

Referenced by getFinal().

XSTypeDefinition* XSTypeDefinition::fBaseType`[protected]`

The documentation for this class was generated from the following file:

- XSTypeDefinition.hpp