Xerces-C++: XSTypeDefinition Class Reference

Xerces-C++ 3.2.3

Public Types | List of all members
XSTypeDefinition Class Referenceabstract

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

Inheritance diagram for XSTypeDefinition:

## 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. More...
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. More...
virtual const XMLCh * | getNamespace () const =0
| The [target namespace] of this object, or `null` if it is unspecified. More...
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. More...
Public Member Functions inherited from XSObject
| XSObject (XSConstants::COMPONENT_TYPE compType, XSModel *const xsModel, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
| The default constructor. More...
virtual | ~XSObject ()
XSConstants::COMPONENT_TYPE | getType () const
| The `type` of this object, i.e. More...
virtual XMLSize_t | getId () const
| Optional. More...
void | setId (XMLSize_t id)
| methods needed by implementation More...
Public Member Functions inherited from XMemory
void * | operator new (size_t size)
| This method overrides operator new. More...
void * | operator new (size_t size, MemoryManager *memMgr)
| This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
void * | operator new (size_t size, void *ptr)
| This method overrides placement operator new. More...
void | operator delete (void *p)
| This method overrides operator delete. More...
void | operator delete (void *p, MemoryManager *memMgr)
| This method provides a matching delete for the custom operator new. More...
void | operator delete (void *p, void *ptr)
| This method provides a matching delete for the placement new. More...

## XSTypeDefinition methods
TYPE_CATEGORY | fTypeCategory
short | fFinal
XSTypeDefinition * | fBaseType
TYPE_CATEGORY | getTypeCategory () const
| Return whether this type definition is a simple type or complex type. More...
virtual XSTypeDefinition * | getBaseType ()=0
| {base type definition}: either a simple type definition or a complex type definition. More...
bool | isFinal (short toTest)
| {final}. More...
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`. More...
virtual bool | getAnonymous () const =0
| A boolean that specifies if the type definition is anonymous. More...
virtual bool | derivedFromType (const XSTypeDefinition *const ancestorType)=0
| Convenience method: check if this type is derived from the given `ancestorType`. More...
bool | derivedFrom (const XMLCh *typeNamespace, const XMLCh *name)
| Convenience method: check if this type is derived from the given ancestor type. More...

## Additional Inherited Members
Protected Member Functions inherited from XMemory
| XMemory ()
| Protected default constructor. More...
Protected Attributes inherited from XSObject
XSConstants::COMPONENT_TYPE | fComponentType
XSModel * | fXSModel
MemoryManager * | fMemoryManager
XMLSize_t | fId

## 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

## ◆ TYPE_CATEGORY

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::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

## ◆ ~XSTypeDefinition()

virtual XSTypeDefinition::~XSTypeDefinition | ( |  | ) |
| virtual

## Member Function Documentation

## ◆ derivedFrom()

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`.

## ◆ derivedFromType()

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 XSSimpleTypeDefinition, and XSComplexTypeDefinition.

## ◆ getAnonymous()

virtual bool XSTypeDefinition::getAnonymous | ( |  | ) | const
| pure virtual

A boolean that specifies if the type definition is anonymous.

Convenience attribute.

Implemented in XSSimpleTypeDefinition, and XSComplexTypeDefinition.

## ◆ getBaseType()

virtual XSTypeDefinition* XSTypeDefinition::getBaseType | ( |  | ) |
| pure virtual

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

Implemented in XSSimpleTypeDefinition, and XSComplexTypeDefinition.

## ◆ getFinal()

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.

## ◆ getName()

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 XSSimpleTypeDefinition, and XSComplexTypeDefinition.

## ◆ getNamespace()

virtual const XMLCh* XSTypeDefinition::getNamespace | ( |  | ) | const
| pure virtual

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

Reimplemented from XSObject.

Implemented in XSSimpleTypeDefinition, and XSComplexTypeDefinition.

## ◆ getNamespaceItem()

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 XSSimpleTypeDefinition, and XSComplexTypeDefinition.

## ◆ getTypeCategory()

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

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

References fTypeCategory.

## ◆ isFinal()

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.

## Member Data Documentation

## ◆ fBaseType

XSTypeDefinition* XSTypeDefinition::fBaseType
| protected

## ◆ fFinal

short XSTypeDefinition::fFinal
| protected

Referenced by getFinal().

## ◆ fTypeCategory

TYPE_CATEGORY XSTypeDefinition::fTypeCategory
| protected

Referenced by getTypeCategory().

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

- XSTypeDefinition.hpp