XSElementDeclaration Class Reference

`#include <xercesc/framework/psvi/XSElementDeclaration.hpp>`

Inheritance diagram for XSElementDeclaration:

## Public Member Functions

Constructors

XSElementDeclaration (SchemaElementDecl *const schemaElementDecl, XSTypeDefinition *const typeDefinition, XSElementDeclaration *const substitutionGroupAffiliation, XSAnnotation *const annot, XSNamedMap< XSIDCDefinition > *const identityConstraints, XSModel *const xsModel, XSConstants::SCOPE elemScope=XSConstants::SCOPE_ABSENT, XSComplexTypeDefinition *const enclosingTypeDefinition=0, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)

| The default constructor.
Destructor
| ~XSElementDeclaration ()
overridden XSXSObject methods
const XMLCh * | getName () const
| The name of type `NCName` of this declaration as defined in XML Namespaces.
const XMLCh * | getNamespace () const
| The [target namespace] of this object, or `null` if it is unspecified.
XSNamespaceItem * | getNamespaceItem ()
| 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.

## XSElementDeclaration methods

class | XSObjectFactory
short | fDisallowedSubstitutions
short | fSubstitutionGroupExclusions
XSConstants::SCOPE | fScope
SchemaElementDecl * | fSchemaElementDecl
XSTypeDefinition * | fTypeDefinition
XSComplexTypeDefinition * | fEnclosingTypeDefinition
XSElementDeclaration * | fSubstitutionGroupAffiliation
XSAnnotation * | fAnnotation
XSNamedMap< XSIDCDefinition > * | fIdentityConstraints
XSTypeDefinition * | getTypeDefinition () const
| [type definition]: either a simple type definition or a complex type definition.
XSConstants::SCOPE | getScope () const
| Optional.
XSComplexTypeDefinition * | getEnclosingCTDefinition () const
| The complex type definition for locally scoped declarations (see `scope`).
XSConstants::VALUE_CONSTRAINT | getConstraintType () const
| [Value constraint]: one of `VC_NONE, VC_DEFAULT, VC_FIXED`.
const XMLCh * | getConstraintValue ()
| [Value constraint]: the actual value with respect to the [type definition].
bool | getNillable () const
| If nillable is true, then an element may also be valid if it carries the namespace qualified attribute with local name `nil` from namespace `http://www.w3.org/2001/XMLSchema-instance` and value `true` (xsi:nil) even if it has no text or element content despite a `content type` which would otherwise require content.
XSNamedMap< XSIDCDefinition > * | getIdentityConstraints ()
| identity-constraint definitions: a set of constraint definitions.
XSElementDeclaration * | getSubstitutionGroupAffiliation () const
| [substitution group affiliation]: optional.
bool | isSubstitutionGroupExclusion (XSConstants::DERIVATION_TYPE exclusion)
| Convenience method.
short | getSubstitutionGroupExclusions () const
| [substitution group exclusions]: the returned value is a bit combination of the subset of { `DERIVATION_EXTENSION, DERIVATION_RESTRICTION`} or `DERIVATION_NONE`.
bool | isDisallowedSubstitution (XSConstants::DERIVATION_TYPE disallowed)
| Convenience method.
short | getDisallowedSubstitutions () const
| [disallowed substitutions]: the returned value is a bit combination of the subset of { `DERIVATION_SUBSTITUTION, DERIVATION_EXTENSION, DERIVATION_RESTRICTION` } corresponding to substitutions disallowed by this `XSElementDeclaration` or `DERIVATION_NONE`.
bool | getAbstract () const
| {abstract} A boolean.
XSAnnotation * | getAnnotation () const
| Optional.
void | setTypeDefinition (XSTypeDefinition *typeDefinition)
| methods needed by implementation

## Additional Inherited Members

Protected Member Functions inherited from XMemory
| XMemory ()
| Protected default constructor.
XSConstants::COMPONENT_TYPE | fComponentType
XSModel * | fXSModel
MemoryManager * | fMemoryManager
XMLSize_t | fId

## Constructor & Destructor Documentation

## XSElementDeclaration()

XSElementDeclaration::XSElementDeclaration | ( | SchemaElementDecl *const | schemaElementDecl,
|  | XSTypeDefinition *const | typeDefinition,
|  | XSElementDeclaration *const | substitutionGroupAffiliation,
|  | XSAnnotation *const | annot,
|  | XSNamedMap< XSIDCDefinition > *const | identityConstraints,
|  | XSModel *const | xsModel,
|  | XSConstants::SCOPE | elemScope = XSConstants::SCOPE_ABSENT,
|  | XSComplexTypeDefinition *const | enclosingTypeDefinition = 0,
|  | MemoryManager *const | manager = XMLPlatformUtils::fgMemoryManager )

The default constructor.

Parameters

  schemaElementDecl |
  typeDefinition |
  substitutionGroupAffiliation |
  annot |
  identityConstraints |
  xsModel |
  elemScope |
  enclosingTypeDefinition |
  manager | The configurable memory manager

References XMLPlatformUtils::fgMemoryManager, XSConstants::SCOPE_ABSENT, and XSElementDeclaration().

Referenced by getNillable(), getSubstitutionGroupAffiliation(), XSElementDeclaration(), and XSObjectFactory.

## ~XSElementDeclaration()

XSElementDeclaration::~XSElementDeclaration | ( |  | ) |

## Member Function Documentation

## getAbstract()

bool XSElementDeclaration::getAbstract | ( |  | ) | const

{abstract} A boolean.

References getAnnotation(), and setTypeDefinition().

## getAnnotation()

XSAnnotation * XSElementDeclaration::getAnnotation | ( |  | ) | const

Optional.

Annotation.

References fAnnotation.

Referenced by getAbstract().

## getConstraintType()

XSConstants::VALUE_CONSTRAINT XSElementDeclaration::getConstraintType | ( |  | ) | const

[Value constraint]: one of `VC_NONE, VC_DEFAULT, VC_FIXED`.

## getConstraintValue()

const XMLCh * XSElementDeclaration::getConstraintValue | ( |  | ) |

[Value constraint]: the actual value with respect to the [type definition].

## getDisallowedSubstitutions()

short XSElementDeclaration::getDisallowedSubstitutions | ( |  | ) | const

[disallowed substitutions]: the returned value is a bit combination of the subset of { `DERIVATION_SUBSTITUTION, DERIVATION_EXTENSION, DERIVATION_RESTRICTION` } corresponding to substitutions disallowed by this `XSElementDeclaration` or `DERIVATION_NONE`.

References fDisallowedSubstitutions.

Referenced by isDisallowedSubstitution().

## getEnclosingCTDefinition()

XSComplexTypeDefinition * XSElementDeclaration::getEnclosingCTDefinition | ( |  | ) | const

The complex type definition for locally scoped declarations (see `scope`).

References fEnclosingTypeDefinition.

Referenced by getNamespaceItem().

## getIdentityConstraints()

XSNamedMap< XSIDCDefinition > * XSElementDeclaration::getIdentityConstraints | ( |  | ) |

identity-constraint definitions: a set of constraint definitions.

References fIdentityConstraints.

Referenced by getNillable().

## getName()

const XMLCh * XSElementDeclaration::getName | ( |  | ) | const

virtual

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

Reimplemented from XSObject.

## getNamespace()

const XMLCh * XSElementDeclaration::getNamespace | ( |  | ) | const

virtual

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

Reimplemented from XSObject.

## getNamespaceItem()

XSNamespaceItem * XSElementDeclaration::getNamespaceItem | ( |  | ) |

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.

References getEnclosingCTDefinition(), getScope(), and getTypeDefinition().

## getNillable()

bool XSElementDeclaration::getNillable | ( |  | ) | const

If nillable is true, then an element may also be valid if it carries the namespace qualified attribute with local name `nil` from namespace `http://www.w3.org/2001/XMLSchema-instance` and value `true` (xsi:nil) even if it has no text or element content despite a `content type` which would otherwise require content.

References getIdentityConstraints(), getSubstitutionGroupAffiliation(), and XSElementDeclaration().

## getScope()

XSConstants::SCOPE XSElementDeclaration::getScope | ( |  | ) | const

Optional.

One of `SCOPE_GLOBAL`, `SCOPE_LOCAL`, or `SCOPE_ABSENT`. If the scope is local, then the `enclosingCTDefinition` is present.

References fScope.

Referenced by getNamespaceItem().

## getSubstitutionGroupAffiliation()

XSElementDeclaration * XSElementDeclaration::getSubstitutionGroupAffiliation | ( |  | ) | const

[substitution group affiliation]: optional.

A top-level element definition.

References fSubstitutionGroupAffiliation, and XSElementDeclaration().

Referenced by getNillable().

## getSubstitutionGroupExclusions()

short XSElementDeclaration::getSubstitutionGroupExclusions | ( |  | ) | const

[substitution group exclusions]: the returned value is a bit combination of the subset of { `DERIVATION_EXTENSION, DERIVATION_RESTRICTION`} or `DERIVATION_NONE`.

References fSubstitutionGroupExclusions.

Referenced by isSubstitutionGroupExclusion().

## getTypeDefinition()

XSTypeDefinition * XSElementDeclaration::getTypeDefinition | ( |  | ) | const

[type definition]: either a simple type definition or a complex type definition.

References fTypeDefinition.

Referenced by getNamespaceItem().

## isDisallowedSubstitution()

bool XSElementDeclaration::isDisallowedSubstitution | ( | XSConstants::DERIVATION_TYPE | disallowed | ) |

Convenience method.

Check if `disallowed` is a disallowed substitution for this element declaration.

Parameters

  disallowed | { `DERIVATION_SUBSTITUTION, DERIVATION_EXTENSION, DERIVATION_RESTRICTION` } or `DERIVATION_NONE`. Represents a block set for the element.

Returns
  True if `disallowed` is a part of the substitution group exclusion subset.

References getDisallowedSubstitutions().

## isSubstitutionGroupExclusion()

bool XSElementDeclaration::isSubstitutionGroupExclusion | ( | XSConstants::DERIVATION_TYPE | exclusion | ) |

Convenience method.

Check if `exclusion` is a substitution group exclusion for this element declaration.

Parameters

  exclusion | `DERIVATION_EXTENSION, DERIVATION_RESTRICTION` or `DERIVATION_NONE`. Represents final set for the element.

Returns
  True if `exclusion` is a part of the substitution group exclusion subset.

References getSubstitutionGroupExclusions().

## setTypeDefinition()

void XSElementDeclaration::setTypeDefinition | ( | XSTypeDefinition * | typeDefinition | ) |

methods needed by implementation

References fTypeDefinition.

Referenced by getAbstract().

## Friends And Related Symbol Documentation

## XSObjectFactory

friend class XSObjectFactory

friend

References XSElementDeclaration(), and XSObjectFactory.

Referenced by XSObjectFactory.

## Member Data Documentation

## fAnnotation

XSAnnotation* XSElementDeclaration::fAnnotation

protected

Referenced by getAnnotation().

## fDisallowedSubstitutions

short XSElementDeclaration::fDisallowedSubstitutions

protected

Referenced by getDisallowedSubstitutions().

## fEnclosingTypeDefinition

XSComplexTypeDefinition* XSElementDeclaration::fEnclosingTypeDefinition

protected

Referenced by getEnclosingCTDefinition().

## fIdentityConstraints

XSNamedMap<XSIDCDefinition>* XSElementDeclaration::fIdentityConstraints

protected

Referenced by getIdentityConstraints().

## fSchemaElementDecl

SchemaElementDecl* XSElementDeclaration::fSchemaElementDecl

protected

## fScope

XSConstants::SCOPE XSElementDeclaration::fScope

protected

Referenced by getScope().

## fSubstitutionGroupAffiliation

XSElementDeclaration* XSElementDeclaration::fSubstitutionGroupAffiliation

protected

Referenced by getSubstitutionGroupAffiliation().

## fSubstitutionGroupExclusions

short XSElementDeclaration::fSubstitutionGroupExclusions

protected

Referenced by getSubstitutionGroupExclusions().

## fTypeDefinition

XSTypeDefinition* XSElementDeclaration::fTypeDefinition

protected

Referenced by getTypeDefinition(), and setTypeDefinition().

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

- XSElementDeclaration.hpp