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_XSATTRIBUTEGROUPDEFINITION_HPP)
23 #define XERCESC_INCLUDE_GUARD_XSATTRIBUTEGROUPDEFINITION_HPP
24
25 #include <xercesc/framework/psvi/XSObject.hpp>
26
27 XERCES_CPP_NAMESPACE_BEGIN
28
29 /**
30 * This class describes all properties of a Schema Attribute
31 * Group Definition component.
32 * This is *always* owned by the validator /parser object from which
33 * it is obtained.
34 */
35
36 // forward declarations
37 class XSAnnotation;
38 class XSAttributeUse;
39 class XSWildcard;
40 class XercesAttGroupInfo;
41
42 class XMLPARSER_EXPORT XSAttributeGroupDefinition : public XSObject
43 {
44 public:
45
46 // Constructors and Destructor
47 // -----------------------------------------------------------------------
48 /** @name Constructors */
49 //@{
50
51 /**
52 * The default constructor
53 *
54 * @param xercesAttGroupInfo
55 * @param xsAttList
56 * @param xsWildcard
57 * @param xsAnnot
58 * @param xsModel
59 * @param manager The configurable memory manager
60 */
61 XSAttributeGroupDefinition
62 (
63 XercesAttGroupInfo* const xercesAttGroupInfo
64 , XSAttributeUseList* const xsAttList
65 , XSWildcard* const xsWildcard
66 , XSAnnotation* const xsAnnot
67 , XSModel* const xsModel
68 , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
69 );
70
71 //@};
72
73 /** @name Destructor */
74 //@{
75 ~XSAttributeGroupDefinition();
76 //@}
77
78 //---------------------
79 /** @name overridden XSObject methods */
80 //@{
81
82 /**
83 * The name of type <code>NCName</code> of this declaration as defined in
84 * XML Namespaces.
85 */
86 const XMLCh* getName() const;
87
88 /**
89 * The [target namespace] of this object, or <code>null</code> if it is
90 * unspecified.
91 */
92 const XMLCh* getNamespace() const;
93
94 /**
95 * A namespace schema information item corresponding to the target
96 * namespace of the component, if it's globally declared; or null
97 * otherwise.
98 */
99 XSNamespaceItem* getNamespaceItem();
100
101 //@}
102
103 //---------------------
104 /** @name XSAttributeGroupDefinition methods */
105
106 //@{
107
108 /**
109 * A set of [attribute uses].
110 */
111 XSAttributeUseList *getAttributeUses();
112
113 /**
114 * Optional. A [wildcard].
115 */
116 XSWildcard *getAttributeWildcard() const;
117
118 /**
119 * Optional. An [annotation].
120 */
121 XSAnnotation *getAnnotation() const;
122
123 //@}
124
125 //----------------------------------
126 /** methods needed by implementation */
127
128 //@{
129
130 //@}
131 private:
132
133 // -----------------------------------------------------------------------
134 // Unimplemented constructors and operators
135 // -----------------------------------------------------------------------
136 XSAttributeGroupDefinition(const XSAttributeGroupDefinition&);
137 XSAttributeGroupDefinition & operator=(const XSAttributeGroupDefinition &);
138
139 protected:
140
141 // -----------------------------------------------------------------------
142 // data members
143 // -----------------------------------------------------------------------
144 XercesAttGroupInfo* fXercesAttGroupInfo;
145 XSAttributeUseList* fXSAttributeUseList;
146 XSWildcard* fXSWildcard;
147 XSAnnotation* fAnnotation;
148 };
149
getAttributeUses()150 inline XSAttributeUseList* XSAttributeGroupDefinition::getAttributeUses()
151 {
152 return fXSAttributeUseList;
153 }
154
getAttributeWildcard() const155 inline XSWildcard* XSAttributeGroupDefinition::getAttributeWildcard() const
156 {
157 return fXSWildcard;
158 }
159
getAnnotation() const160 inline XSAnnotation* XSAttributeGroupDefinition::getAnnotation() const
161 {
162 return fAnnotation;
163 }
164
165 XERCES_CPP_NAMESPACE_END
166
167 #endif
168