XSTypeDefinition Class Reference

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

Inheritance diagram for XSTypeDefinition:

XSObject XMemory XSComplexTypeDefinition XSSimpleTypeDefinition

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 XMLChgetName () const =0
 The name of type NCName of this declaration as defined in XML Namespaces.
virtual const XMLChgetNamespace ()=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.
XSTypeDefinition methods
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.

Protected Attributes

TYPE_CATEGORY fTypeCategory
short fFinal
XSTypeDefinitionfBaseType


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

Referenced by getTypeCategory().

short XSTypeDefinition::fFinal [protected]

Referenced by getFinal().


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

Generated on Fri Jan 29 15:30:49 2010 for Xerces-C++ by  doxygen 1.5.6