source: NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSModelGroupDefinition.hpp @ 2674

Revision 2674, 3.8 KB checked in by mattausch, 16 years ago (diff)
Line 
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: XSModelGroupDefinition.hpp 568078 2007-08-21 11:43:25Z amassari $
20 */
21
22#if !defined(XSMODELGROUPDEFINITION_HPP)
23#define XSMODELGROUPDEFINITION_HPP
24
25#include <xercesc/framework/psvi/XSObject.hpp>
26
27XERCES_CPP_NAMESPACE_BEGIN
28
29/**
30 * This class describes all properties of a Schema Model Group
31 * Definition component.
32 * This is *always* owned by the validator /parser object from which
33 * it is obtained. 
34 */
35
36// forward declarations
37class XSAnnotation;
38class XSModelGroup;
39class XSParticle;
40class XercesGroupInfo;
41
42class XMLPARSER_EXPORT XSModelGroupDefinition : public XSObject
43{
44public:
45
46    //  Constructors and Destructor
47    // -----------------------------------------------------------------------
48    /** @name Constructors */
49    //@{
50
51    /**
52      * The default constructor
53      *
54      * @param  groupInfo
55      * @param  groupParticle
56      * @param  annot
57      * @param  xsModel
58      * @param  manager     The configurable memory manager
59      */
60    XSModelGroupDefinition
61    (
62        XercesGroupInfo* const groupInfo
63        , XSParticle* const    groupParticle
64        , XSAnnotation* const  annot
65        , XSModel* const       xsModel
66        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
67    );
68
69    //@};
70
71    /** @name Destructor */
72    //@{
73    ~XSModelGroupDefinition();
74    //@}
75
76    //---------------------
77    /** @name overridden XSXSObject methods */
78    //@{
79
80    /**
81     * The name of type <code>NCName</code> of this declaration as defined in
82     * XML Namespaces.
83     */
84    const XMLCh* getName();
85
86    /**
87     *  The [target namespace] of this object, or <code>null</code> if it is
88     * unspecified.
89     */
90    const XMLCh* getNamespace();
91
92    /**
93     * A namespace schema information item corresponding to the target
94     * namespace of the component, if it's globally declared; or null
95     * otherwise.
96     */
97    XSNamespaceItem *getNamespaceItem();
98
99    //@}
100
101    //---------------------
102    /** @name XSModelGroupDefinition methods */
103
104    //@{
105
106    /**
107     * A model group.
108     */
109    XSModelGroup *getModelGroup();
110
111    /**
112     * Optional. An [annotation].
113     */
114    XSAnnotation *getAnnotation() const;
115
116    //@}
117
118    //----------------------------------
119    /** methods needed by implementation */
120    //@{
121
122    //@}
123private:
124
125    // -----------------------------------------------------------------------
126    //  Unimplemented constructors and operators
127    // -----------------------------------------------------------------------
128    XSModelGroupDefinition(const XSModelGroupDefinition&);
129    XSModelGroupDefinition & operator=(const XSModelGroupDefinition &);
130
131protected:
132
133    // -----------------------------------------------------------------------
134    //  data members
135    // -----------------------------------------------------------------------
136    XercesGroupInfo* fGroupInfo;
137    XSParticle*      fModelGroupParticle;
138    XSAnnotation*    fAnnotation;
139};
140
141inline XSAnnotation* XSModelGroupDefinition::getAnnotation() const
142{
143    return fAnnotation;
144}
145
146
147
148XERCES_CPP_NAMESPACE_END
149
150#endif
Note: See TracBrowser for help on using the repository browser.