Xerces-C++  3.1.2
Public Types | Protected Attributes | List of all members
XSTypeDefinition Class Referenceabstract

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

Inheritance diagram for XSTypeDefinition:
XSObject XMemory XSComplexTypeDefinition XSSimpleTypeDefinition

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 XMLChgetName () const =0
 The name of type NCName of this declaration as defined in XML Namespaces. More...
 
virtual const XMLChgetNamespace ()=0
 The [target namespace] of this object, or null if it is unspecified. More...
 
virtual XSNamespaceItemgetNamespaceItem ()=0
 A namespace schema information item corresponding to the target namespace of the component, if it's globally declared; or null otherwise. More...
 
XSTypeDefinition methods
TYPE_CATEGORY getTypeCategory () const
 Return whether this type definition is a simple type or complex type. More...
 
virtual XSTypeDefinitiongetBaseType ()=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...
 
- 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...
 

Protected Attributes

TYPE_CATEGORY fTypeCategory
 
short fFinal
 
XSTypeDefinitionfBaseType
 
- Protected Attributes inherited from XSObject
XSConstants::COMPONENT_TYPE fComponentType
 
XSModelfXSModel
 
MemoryManagerfMemoryManager
 
XMLSize_t fId
 

Additional Inherited Members

- Protected Member Functions inherited from XMemory
 XMemory ()
 Protected default constructor. More...
 

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

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
managerThe configurable memory manager
virtual XSTypeDefinition::~XSTypeDefinition ( )
virtual

Member Function Documentation

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

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

Parameters
typeNamespaceAn ancestor type namespace.
nameAn ancestor type name.
Returns
Return true if this type is derived from the ancestor defined by typeNamespace and name.
virtual bool XSTypeDefinition::derivedFromType ( const XSTypeDefinition *const  ancestorType)
pure virtual

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

Parameters
ancestorTypeAn ancestor type definition.
Returns
Return true if this type is derived from ancestorType.

Implemented in XSSimpleTypeDefinition, and XSComplexTypeDefinition.

virtual bool XSTypeDefinition::getAnonymous ( ) const
pure virtual

A boolean that specifies if the type definition is anonymous.

Convenience attribute.

Implemented in XSSimpleTypeDefinition, and XSComplexTypeDefinition.

virtual XSTypeDefinition* XSTypeDefinition::getBaseType ( )
pure virtual

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

Implemented in XSSimpleTypeDefinition, and XSComplexTypeDefinition.

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

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

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

Reimplemented from XSObject.

Implemented in XSSimpleTypeDefinition, and XSComplexTypeDefinition.

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.

XSTypeDefinition::TYPE_CATEGORY XSTypeDefinition::getTypeCategory ( ) const

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

References fTypeCategory.

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
toTestExtension, restriction, list, union constants (defined in XSObject).
Returns
True if toTest is in the final set, otherwise false.

Member Data Documentation

XSTypeDefinition* XSTypeDefinition::fBaseType
protected
short XSTypeDefinition::fFinal
protected

Referenced by getFinal().

TYPE_CATEGORY XSTypeDefinition::fTypeCategory
protected

Referenced by getTypeCategory().


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