Xerces-C++  3.1.3
XSNamespaceItem.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: XSNamespaceItem.hpp 527149 2007-04-10 14:56:39Z amassari $
20  */
21 
22 #if !defined(XERCESC_INCLUDE_GUARD_XSNAMESPACEITEM_HPP)
23 #define XERCESC_INCLUDE_GUARD_XSNAMESPACEITEM_HPP
24 
28 
30 
42 // forward declarations
43 class XSAnnotation;
49 class XSTypeDefinition;
50 class SchemaGrammar;
51 class XSModel;
52 
54 {
55 public:
56 
57  // Constructors and Destructor
58  // -----------------------------------------------------------------------
61 
70  (
71  XSModel* const xsModel
72  , SchemaGrammar* const grammar
74  );
75 
77  (
78  XSModel* const xsModel
79  , const XMLCh* const schemaNamespace
81  );
82 
84 
87  ~XSNamespaceItem();
89 
90  //---------------------
94 
99  const XMLCh *getSchemaNamespace() const;
100 
111  XSNamedMap<XSObject> *getComponents(XSConstants::COMPONENT_TYPE objectType);
112 
116  XSAnnotationList *getAnnotations();
117  const XSAnnotationList *getAnnotations() const;
118 
125  XSElementDeclaration *getElementDeclaration(const XMLCh *name);
126 
133  XSAttributeDeclaration *getAttributeDeclaration(const XMLCh *name);
134 
142  XSTypeDefinition *getTypeDefinition(const XMLCh *name);
143 
150  XSAttributeGroupDefinition *getAttributeGroup(const XMLCh *name);
151 
158  XSModelGroupDefinition *getModelGroupDefinition(const XMLCh *name);
159 
166  XSNotationDeclaration *getNotationDeclaration(const XMLCh *name);
167 
172  const StringList *getDocumentLocations();
173 
175 
176  //----------------------------------
180 
181 
183 private:
184 
185  // -----------------------------------------------------------------------
186  // Unimplemented constructors and operators
187  // -----------------------------------------------------------------------
189  XSNamespaceItem & operator=(const XSNamespaceItem &);
190 
191 protected:
192  friend class XSModel;
193  friend class XSObjectFactory;
194  // -----------------------------------------------------------------------
195  // data members
196  // -----------------------------------------------------------------------
197  // fMemoryManager:
198  // used for any memory allocations
200  SchemaGrammar* fGrammar;
202 
203  /* Need a XSNamedMap for each component top-level?
204  that is top level.
205  ATTRIBUTE_DECLARATION = 1,
206  ELEMENT_DECLARATION = 2,
207  TYPE_DEFINITION = 3,
208  ATTRIBUTE_USE = 4, no
209  ATTRIBUTE_GROUP_DEFINITION= 5,
210  MODEL_GROUP_DEFINITION = 6,
211  MODEL_GROUP = 7, no
212  PARTICLE = 8, no
213  WILDCARD = 9, no
214  IDENTITY_CONSTRAINT = 10, no
215  NOTATION_DECLARATION = 11,
216  ANNOTATION = 12, no
217  FACET = 13, no
218  MULTIVALUE_FACET = 14 no
219  */
222  RefHashTableOf<XSObject>* fHashMap[XSConstants::MULTIVALUE_FACET];
224 };
225 
227 {
228  return fXSAnnotationList;
229 }
230 
232 {
233  return fXSAnnotationList;
234 }
235 
237 {
238  return fSchemaNamespace;
239 }
240 
241 
242 
244 
245 #endif