Xerces-C++ 3.3.0
XSComplexTypeDefinition.hpp
Go to the documentation of this file.
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18/*
19 * $Id$
20 */
21
22#if !defined(XERCESC_INCLUDE_GUARD_XSCOMPLEXTYPEDEFINITION_HPP)
23#define XERCESC_INCLUDE_GUARD_XSCOMPLEXTYPEDEFINITION_HPP
24
26
28
37// forward declarations
38class XSAnnotation;
39class XSAttributeUse;
41class XSParticle;
42class XSWildcard;
43class ComplexTypeInfo;
44
46{
47public:
48
49 // Content Model Types
56 CONTENTTYPE_EMPTY = 0,
61 CONTENTTYPE_SIMPLE = 1,
67 CONTENTTYPE_ELEMENT = 2,
71 CONTENTTYPE_MIXED = 3
72 };
73
74 // Constructors and Destructor
75 // -----------------------------------------------------------------------
78
93 (
94 ComplexTypeInfo* const complexTypeInfo
95 , XSWildcard* const xsWildcard
96 , XSSimpleTypeDefinition* const xsSimpleType
97 , XSAttributeUseList* const xsAttList
98 , XSTypeDefinition* const xsBaseType
99 , XSParticle* const xsParticle
100 , XSAnnotation* const headAnnot
101 , XSModel* const xsModel
103 );
104
106
111
112 //---------------------
116
123
129 bool getAbstract() const;
130
134 XSAttributeUseList *getAttributeUses();
135
139 XSWildcard *getAttributeWildcard() const;
140
148
153 XSSimpleTypeDefinition *getSimpleType() const;
154
159 XSParticle *getParticle() const;
160
169
175 short getProhibitedSubstitutions() const;
176
181
186 const XMLCh* getName() const;
187
192 const XMLCh* getNamespace() const;
193
200
205 bool getAnonymous() const;
206
212
220 bool derivedFromType(const XSTypeDefinition* const ancestorType);
221
223
224 //----------------------------------
228
229
231
232private:
233
237 void setBaseType(XSTypeDefinition* const xsBaseType);
238 friend class XSObjectFactory;
239
240 // -----------------------------------------------------------------------
241 // Unimplemented constructors and operators
242 // -----------------------------------------------------------------------
245
246protected:
247
248 // -----------------------------------------------------------------------
249 // data members
250 // -----------------------------------------------------------------------
251 ComplexTypeInfo* fComplexTypeInfo;
258};
259
260
265
270
275
280
282{
283 return fParticle;
284}
285
286inline void
287XSComplexTypeDefinition::setBaseType(XSTypeDefinition* const xsBaseType)
288{
289 fBaseType = xsBaseType;
290}
291
293
294#endif
RefVectorOf< XSAnnotation > XSAnnotationList
Definition XSConstants.hpp:47
RefVectorOf< XSAttributeUse > XSAttributeUseList
Definition XSConstants.hpp:48
#define XMLPARSER_EXPORT
Definition XercesDefs.hpp:163
#define XERCES_CPP_NAMESPACE_BEGIN
Definition XercesDefs.hpp:112
#define XERCES_CPP_NAMESPACE_END
Definition XercesDefs.hpp:113
char16_t XMLCh
Definition Xerces_autoconf_config.hpp:120
Configurable memory manager.
Definition MemoryManager.hpp:40
static MemoryManager * fgMemoryManager
The configurable memory manager.
Definition PlatformUtils.hpp:121
Definition XSAnnotation.hpp:42
Definition XSAttributeUse.hpp:40
Definition XSComplexTypeDefinition.hpp:46
XSAnnotationList * getAnnotations()
A set of [annotations].
XSSimpleTypeDefinition * fXSSimpleTypeDefinition
Definition XSComplexTypeDefinition.hpp:254
XSConstants::DERIVATION_TYPE getDerivationMethod() const
[derivation method]: either DERIVATION_EXTENSION, DERIVATION_RESTRICTION, or DERIVATION_NONE (see XSO...
XSComplexTypeDefinition(ComplexTypeInfo *const complexTypeInfo, XSWildcard *const xsWildcard, XSSimpleTypeDefinition *const xsSimpleType, XSAttributeUseList *const xsAttList, XSTypeDefinition *const xsBaseType, XSParticle *const xsParticle, XSAnnotation *const headAnnot, XSModel *const xsModel, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
The default constructor.
bool derivedFromType(const XSTypeDefinition *const ancestorType)
Convenience method: check if this type is derived from the given ancestorType.
XSWildcard * fXSWildcard
Definition XSComplexTypeDefinition.hpp:252
XSParticle * fParticle
Definition XSComplexTypeDefinition.hpp:256
short getProhibitedSubstitutions() const
[prohibited substitutions]: A subset of {extension, restriction} or DERIVATION_NONE represented as a ...
Definition XSComplexTypeDefinition.hpp:276
XSSimpleTypeDefinition * getSimpleType() const
A simple type definition corresponding to simple content model, otherwise null
Definition XSComplexTypeDefinition.hpp:271
CONTENT_TYPE
Definition XSComplexTypeDefinition.hpp:50
XSWildcard * getAttributeWildcard() const
Optional.An attribute wildcard.
Definition XSComplexTypeDefinition.hpp:266
const XMLCh * getNamespace() const
The [target namespace] of this object, or null if it is unspecified.
CONTENT_TYPE getContentType() const
[content type]: one of empty (CONTENTTYPE_EMPTY), a simple type definition (CONTENTTYPE_SIMPLE),...
bool getAbstract() const
[abstract]: a boolean.
ComplexTypeInfo * fComplexTypeInfo
Definition XSComplexTypeDefinition.hpp:251
const XMLCh * getName() const
The name of type NCName of this declaration as defined in XML Namespaces.
short fProhibitedSubstitution
Definition XSComplexTypeDefinition.hpp:257
bool isProhibitedSubstitution(XSConstants::DERIVATION_TYPE toTest)
[prohibited substitutions]: a subset of {extension, restriction}
bool getAnonymous() const
A boolean that specifies if the type definition is anonymous.
XSParticle * getParticle() const
A particle for mixed or element-only content model, otherwise null
Definition XSComplexTypeDefinition.hpp:281
XSAttributeUseList * getAttributeUses()
A set of attribute uses.
Definition XSComplexTypeDefinition.hpp:261
XSNamespaceItem * getNamespaceItem()
A namespace schema information item corresponding to the target namespace of the component,...
XSTypeDefinition * getBaseType()
{base type definition}: either a simple type definition or a complex type definition.
XSAnnotationList * fXSAnnotationList
Definition XSComplexTypeDefinition.hpp:255
XSAttributeUseList * fXSAttributeUseList
Definition XSComplexTypeDefinition.hpp:253
DERIVATION_TYPE
Definition XSConstants.hpp:122
Definition XSModel.hpp:60
Definition XSNamespaceItem.hpp:54
Definition XSParticle.hpp:42
Definition XSSimpleTypeDefinition.hpp:44
This class represents a complexType or simpleType definition.
Definition XSTypeDefinition.hpp:40
XSTypeDefinition * fBaseType
Definition XSTypeDefinition.hpp:198
Definition XSWildcard.hpp:42