http://xml.apache.org/http://www.apache.org/http://www.w3.org/

Home

Readme
Release Info

Installation
Download
Build

FAQs
Samples
API Docs

DOM C++ Binding
Programming
Migration Guide

Feedback
Bug-Reporting
PDF Document

CVS Repository
Mail Archive

API Docs for SAX and DOM
 

Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

XSModelGroup.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright 2003,2004 The Apache Software Foundation.
00003  * 
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  * 
00008  *      http://www.apache.org/licenses/LICENSE-2.0
00009  * 
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00017 /*
00018  * $Log: XSModelGroup.hpp,v $
00019  * Revision 1.6  2004/09/08 13:56:08  peiyongz
00020  * Apache License Version 2.0
00021  *
00022  * Revision 1.5  2003/12/01 23:23:26  neilg
00023  * fix for bug 25118; thanks to Jeroen Witmond
00024  *
00025  * Revision 1.4  2003/11/21 17:29:53  knoaman
00026  * PSVI update
00027  *
00028  * Revision 1.3  2003/11/14 22:47:53  neilg
00029  * fix bogus log message from previous commit...
00030  *
00031  * Revision 1.2  2003/11/14 22:33:30  neilg
00032  * Second phase of schema component model implementation.  
00033  * Implement XSModel, XSNamespaceItem, and the plumbing necessary
00034  * to connect them to the other components.
00035  * Thanks to David Cargill.
00036  *
00037  * Revision 1.1  2003/09/16 14:33:36  neilg
00038  * PSVI/schema component model classes, with Makefile/configuration changes necessary to build them
00039  *
00040  */
00041 
00042 #if !defined(XSMODELGROUP_HPP)
00043 #define XSMODELGROUP_HPP
00044 
00045 #include <xercesc/framework/psvi/XSObject.hpp>
00046 
00047 XERCES_CPP_NAMESPACE_BEGIN
00048 
00056 // forward declarations
00057 class XSAnnotation;
00058 class XSParticle;
00059 
00060 class  XSModelGroup : public XSObject
00061 {
00062 public:
00063 
00064     // Content model compositors
00065     enum COMPOSITOR_TYPE {
00069         COMPOSITOR_SEQUENCE       = 1,
00073         COMPOSITOR_CHOICE         = 2,
00079         COMPOSITOR_ALL            = 3
00080     };
00081     
00082     //  Constructors and Destructor
00083     // -----------------------------------------------------------------------
00086 
00096     XSModelGroup
00097     (
00098         COMPOSITOR_TYPE compositorType
00099         , XSParticleList* const particleList
00100         , XSAnnotation* const annot
00101         , XSModel* const xsModel
00102         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00103     );
00104 
00106 
00109     ~XSModelGroup();
00111 
00112     //---------------------
00115 
00121     COMPOSITOR_TYPE getCompositor() const;
00122 
00126     XSParticleList *getParticles() const;
00127 
00131     XSAnnotation *getAnnotation() const;
00132 
00134 
00135     //----------------------------------
00139 
00141 private:
00142 
00143     // -----------------------------------------------------------------------
00144     //  Unimplemented constructors and operators
00145     // -----------------------------------------------------------------------
00146     XSModelGroup(const XSModelGroup&);
00147     XSModelGroup & operator=(const XSModelGroup &);
00148 
00149 protected:
00150 
00151     // -----------------------------------------------------------------------
00152     //  data members
00153     // -----------------------------------------------------------------------
00154     COMPOSITOR_TYPE fCompositorType;
00155     XSParticleList* fParticleList;
00156     XSAnnotation*   fAnnotation;
00157 };
00158 
00159 inline XSModelGroup::COMPOSITOR_TYPE XSModelGroup::getCompositor() const
00160 {
00161     return fCompositorType;
00162 }
00163 
00164 inline XSParticleList* XSModelGroup::getParticles() const
00165 {
00166     return fParticleList;
00167 }
00168 
00169 inline XSAnnotation* XSModelGroup::getAnnotation() const
00170 {
00171     return fAnnotation;
00172 }
00173 
00174 XERCES_CPP_NAMESPACE_END
00175 
00176 #endif


Copyright © 1994-2004 The Apache Software Foundation. All Rights Reserved.