Xerces-C++ 3.2.0

XSAttributeDeclaration.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: XSAttributeDeclaration.hpp 1804272 2017-08-06 20:25:24Z scantor $
20 */
21
22 #if !defined(XERCESC_INCLUDE_GUARD_XSATTRIBUTEDECLARATION_HPP)
23 #define XERCESC_INCLUDE_GUARD_XSATTRIBUTEDECLARATION_HPP
24
25 #include <xercesc/framework/psvi/XSObject.hpp>
26
27 XERCES_CPP_NAMESPACE_BEGIN
28
36 // forward declarations
37 class XSAnnotation;
38 class XSComplexTypeDefinition;
39 class XSSimpleTypeDefinition;
40 class SchemaAttDef;
41
42 class XMLPARSER_EXPORT XSAttributeDeclaration : public XSObject
43 {
44 public:
45
46 // Constructors and Destructor
47 // -----------------------------------------------------------------------
50
62 XSAttributeDeclaration
63 (
64 SchemaAttDef* const attDef
65 , XSSimpleTypeDefinition* const typeDef
66 , XSAnnotation* const annot
67 , XSModel* const xsModel
68 , XSConstants::SCOPE scope
69 , XSComplexTypeDefinition* enclosingCTDefinition
70 , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
71 );
72
74
77 ~XSAttributeDeclaration();
79
80 //---------------------
84
89 const XMLCh* getName() const;
90
95 const XMLCh* getNamespace() const;
96
102 XSNamespaceItem* getNamespaceItem();
103
105
109
113 XSSimpleTypeDefinition *getTypeDefinition() const;
114
120 XSConstants::SCOPE getScope() const;
121
126 XSComplexTypeDefinition *getEnclosingCTDefinition();
127
131 XSConstants::VALUE_CONSTRAINT getConstraintType() const;
132
137 const XMLCh *getConstraintValue();
138
142 XSAnnotation *getAnnotation() const;
143
145
146 //----------------------------------
150
151 bool getRequired() const;
153
154 private:
155
156 void setEnclosingCTDefinition(XSComplexTypeDefinition* const toSet);
157 friend class XSObjectFactory;
158
159 // -----------------------------------------------------------------------
160 // Unimplemented constructors and operators
161 // -----------------------------------------------------------------------
162 XSAttributeDeclaration(const XSAttributeDeclaration&);
163 XSAttributeDeclaration & operator=(const XSAttributeDeclaration &);
164
165 protected:
166
167 // -----------------------------------------------------------------------
168 // data members
169 // -----------------------------------------------------------------------
170 SchemaAttDef* fAttDef;
171 XSSimpleTypeDefinition* fTypeDefinition;
172 XSAnnotation* fAnnotation;
173 XSConstants::SCOPE fScope;
174 XSComplexTypeDefinition* fEnclosingCTDefinition;
175 };
176
177 // ---------------------------------------------------------------------------
178 // XSAttributeDeclaration: inline methods
179 // ---------------------------------------------------------------------------
180 inline XSSimpleTypeDefinition* XSAttributeDeclaration::getTypeDefinition() const
181 {
182 return fTypeDefinition;
183 }
184
185 inline XSAnnotation *XSAttributeDeclaration::getAnnotation() const
186 {
187 return fAnnotation;
188 }
189
190 inline XSConstants::SCOPE XSAttributeDeclaration::getScope() const
191 {
192 return fScope;
193 }
194
195 inline XSComplexTypeDefinition *XSAttributeDeclaration::getEnclosingCTDefinition()
196 {
197 return fEnclosingCTDefinition;
198 }
199
200 inline void XSAttributeDeclaration::setEnclosingCTDefinition
201 (
202 XSComplexTypeDefinition* const toSet
203 )
204 {
205 fEnclosingCTDefinition = toSet;
206 }
207
208 XERCES_CPP_NAMESPACE_END
209
210 #endif
XSAttributeDeclaration::fTypeDefinition
XSSimpleTypeDefinition * fTypeDefinition
Definition: XSAttributeDeclaration.hpp:171
XSComplexTypeDefinition
Definition: XSComplexTypeDefinition.hpp:45
XMLPlatformUtils::fgMemoryManager
static MemoryManager * fgMemoryManager
The configurable memory manager.
Definition: PlatformUtils.hpp:121
XSObject::getName
virtual const XMLCh * getName() const
The name of type NCName of this declaration as defined in XML Namespaces.
XSAttributeDeclaration::fAttDef
SchemaAttDef * fAttDef
Definition: XSAttributeDeclaration.hpp:170
XSAttributeDeclaration::fEnclosingCTDefinition
XSComplexTypeDefinition * fEnclosingCTDefinition
Definition: XSAttributeDeclaration.hpp:174
XSObject::getNamespaceItem
virtual XSNamespaceItem * getNamespaceItem()
A namespace schema information item corresponding to the target namespace of the component, if it&#39;s globally declared; or null otherwise.
XSNamespaceItem
Definition: XSNamespaceItem.hpp:53
XSAttributeDeclaration::fScope
XSConstants::SCOPE fScope
Definition: XSAttributeDeclaration.hpp:173
XSAttributeDeclaration::getAnnotation
XSAnnotation * getAnnotation() const
Optional.
Definition: XSAttributeDeclaration.hpp:185
XMLPARSER_EXPORT
#define XMLPARSER_EXPORT
Definition: XercesDefs.hpp:163
XSModel
Definition: XSModel.hpp:59
XSAnnotation
Definition: XSAnnotation.hpp:41
MemoryManager
Configurable memory manager.
Definition: MemoryManager.hpp:39
XSSimpleTypeDefinition
Definition: XSSimpleTypeDefinition.hpp:43
XSAttributeDeclaration::getScope
XSConstants::SCOPE getScope() const
Optional.
Definition: XSAttributeDeclaration.hpp:190
XSObject::getNamespace
virtual const XMLCh * getNamespace() const
The [target namespace] of this object, or null if it is unspecified.
XMLCh
uint16_t XMLCh
Definition: Xerces_autoconf_config.hpp:118
XERCES_CPP_NAMESPACE_BEGIN
#define XERCES_CPP_NAMESPACE_BEGIN
Definition: XercesDefs.hpp:112
XSAttributeDeclaration::fAnnotation
XSAnnotation * fAnnotation
Definition: XSAttributeDeclaration.hpp:172
XSConstants::SCOPE
SCOPE
Definition: XSConstants.hpp:152
XSObject
Definition: XSObject.hpp:42
XERCES_CPP_NAMESPACE_END
#define XERCES_CPP_NAMESPACE_END
Definition: XercesDefs.hpp:113
XSObject.hpp
XSConstants::VALUE_CONSTRAINT
VALUE_CONSTRAINT
Definition: XSConstants.hpp:172
XSAttributeDeclaration::getEnclosingCTDefinition
XSComplexTypeDefinition * getEnclosingCTDefinition()
The complex type definition for locally scoped declarations (see scope).
Definition: XSAttributeDeclaration.hpp:195
XSAttributeDeclaration
Definition: XSAttributeDeclaration.hpp:42
XSAttributeDeclaration::getTypeDefinition
XSSimpleTypeDefinition * getTypeDefinition() const
[type definition]: A simple type definition
Definition: XSAttributeDeclaration.hpp:180