Xerces-C++ 3.3.0
XSTypeDefinition Class Referenceabstract

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

#include <xercesc/framework/psvi/XSTypeDefinition.hpp>

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.
 
Destructor
virtual ~XSTypeDefinition ()
 
overloaded XSObject methods
virtual const XMLChgetName () const =0
 The name of type NCName of this declaration as defined in XML Namespaces.
 
virtual const XMLChgetNamespace () const =0
 The [target namespace] of this object, or null if it is unspecified.
 
virtual XSNamespaceItemgetNamespaceItem ()=0
 A namespace schema information item corresponding to the target namespace of the component, if it's globally declared; or null otherwise.
 
- Public Member Functions inherited from XSObject
 XSObject (XSConstants::COMPONENT_TYPE compType, XSModel *const xsModel, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 The default constructor.
 
virtual ~XSObject ()
 
XSConstants::COMPONENT_TYPE getType () const
 The type of this object, i.e.
 
virtual XMLSize_t getId () const
 Optional.
 
void setId (XMLSize_t id)
 methods needed by implementation
 
- Public Member Functions inherited from XMemory
void * operator new (size_t size)
 This method overrides operator new.
 
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.
 
void * operator new (size_t size, void *ptr)
 This method overrides placement operator new.
 
void operator delete (void *p)
 This method overrides operator delete.
 
void operator delete (void *p, MemoryManager *memMgr)
 This method provides a matching delete for the custom operator new.
 
void operator delete (void *p, void *ptr)
 This method provides a matching delete for the placement new.
 

XSTypeDefinition methods

TYPE_CATEGORY fTypeCategory
 
short fFinal
 
XSTypeDefinitionfBaseType
 
TYPE_CATEGORY getTypeCategory () const
 Return whether this type definition is a simple type or complex type.
 
virtual XSTypeDefinitiongetBaseType ()=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.
 

Additional Inherited Members

- Protected Member Functions inherited from XMemory
 XMemory ()
 Protected default constructor.
 
- Protected Attributes inherited from XSObject
XSConstants::COMPONENT_TYPE fComponentType
 
XSModelfXSModel
 
MemoryManagerfMemoryManager
 
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

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
managerThe 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
typeNamespaceAn ancestor type namespace.
nameAn 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
ancestorTypeAn ancestor type definition.
Returns
Return true if this type is derived from ancestorType.

Implemented in XSComplexTypeDefinition, and XSSimpleTypeDefinition.

◆ getAnonymous()

virtual bool XSTypeDefinition::getAnonymous ( ) const
pure virtual

A boolean that specifies if the type definition is anonymous.

Convenience attribute.

Implemented in XSComplexTypeDefinition, and XSSimpleTypeDefinition.

◆ getBaseType()

virtual XSTypeDefinition * XSTypeDefinition::getBaseType ( )
pure virtual

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

Implemented in XSComplexTypeDefinition, and XSSimpleTypeDefinition.

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

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

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

◆ 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
toTestExtension, 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: