Xerces-C++ 3.1.3

- Main Page
- Related Pages
- Classes
- Files

- File List
- File Members

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 527149 2007-04-10 14:56:39Z amassari $
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();
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