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  

XSObject.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: XSObject.hpp,v $
00019  * Revision 1.12  2004/09/08 13:56:09  peiyongz
00020  * Apache License Version 2.0
00021  *
00022  * Revision 1.11  2004/05/04 19:02:40  cargilld
00023  * Enable IDs to work on all kinds of schema components
00024  *
00025  * Revision 1.10  2003/12/01 23:23:26  neilg
00026  * fix for bug 25118; thanks to Jeroen Witmond
00027  *
00028  * Revision 1.9  2003/11/25 15:10:44  jberry
00029  * Eliminate some compiler warnings concerning comments inside of comments
00030  *
00031  * Revision 1.8  2003/11/21 17:34:04  knoaman
00032  * PSVI update
00033  *
00034  * Revision 1.7  2003/11/15 21:18:39  neilg
00035  * fixes for compilation under gcc
00036  *
00037  * Revision 1.6  2003/11/14 22:47:53  neilg
00038  * fix bogus log message from previous commit...
00039  *
00040  * Revision 1.5  2003/11/14 22:33:30  neilg
00041  * Second phase of schema component model implementation.  
00042  * Implement XSModel, XSNamespaceItem, and the plumbing necessary
00043  * to connect them to the other components.
00044  * Thanks to David Cargill.
00045  *
00046  * Revision 1.4  2003/11/06 15:30:04  neilg
00047  * first part of PSVI/schema component model implementation, thanks to David Cargill.  This covers setting the PSVIHandler on parser objects, as well as implementing XSNotation, XSSimpleTypeDefinition, XSIDCDefinition, and most of XSWildcard, XSComplexTypeDefinition, XSElementDeclaration, XSAttributeDeclaration and XSAttributeUse.
00048  *
00049  * Revision 1.3  2003/10/24 10:59:26  gareth
00050  * changed C comments to C++ comments to prevent compiler warnings.
00051  *  (rephrased that message to eliminate compiler warnings on the message--this is recursive!)
00052  *
00053  * Revision 1.2  2003/10/10 18:37:51  neilg
00054  * update XSModel and XSObject interface so that IDs can be used to query components in XSModels, and so that those IDs can be recovered from components
00055  *
00056  * Revision 1.1  2003/09/16 14:33:36  neilg
00057  * PSVI/schema component model classes, with Makefile/configuration changes necessary to build them
00058  *
00059  */
00060 
00061 #if !defined(XSOBJECT_HPP)
00062 #define XSOBJECT_HPP
00063 
00064 #include <xercesc/util/PlatformUtils.hpp>
00065 #include <xercesc/framework/psvi/XSConstants.hpp>
00066 
00067 XERCES_CPP_NAMESPACE_BEGIN
00068 
00077 // forward declarations
00078 class XSNamespaceItem;
00079 class XSModel;
00080 
00081 class  XSObject : public XMemory
00082 {
00083 public:
00084 
00085     //  Constructors and Destructor
00086     // -----------------------------------------------------------------------
00089 
00097     XSObject
00098     (
00099         XSConstants::COMPONENT_TYPE compType
00100         , XSModel* const xsModel
00101         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00102     );
00103 
00105 
00108     virtual ~XSObject();
00110 
00111     //---------------------
00115 
00120     XSConstants::COMPONENT_TYPE getType() const;
00121 
00126     virtual const XMLCh* getName();
00127 
00132     virtual const XMLCh* getNamespace();
00133 
00139     virtual XSNamespaceItem *getNamespaceItem();
00140 
00147     virtual unsigned int getId() const;
00148 
00150 
00151     //----------------------------------
00158     void setId(unsigned int id);
00160 
00161 private:
00162 
00163     // -----------------------------------------------------------------------
00164     //  Unimplemented constructors and operators
00165     // -----------------------------------------------------------------------
00166     XSObject(const XSObject&);
00167     XSObject & operator=(const XSObject &);
00168 
00169 protected:
00170 
00171     // -----------------------------------------------------------------------
00172     //  data members
00173     // -----------------------------------------------------------------------
00174     // fMemoryManager:
00175     //  used for any memory allocations
00176     // fComponentType
00177     //  the type of the actual component
00178     XSConstants::COMPONENT_TYPE fComponentType;
00179     XSModel*                    fXSModel;
00180     MemoryManager*              fMemoryManager;
00181     unsigned int                fId;
00182 };
00183 
00184 inline XSConstants::COMPONENT_TYPE XSObject::getType() const
00185 {
00186     return fComponentType;
00187 }
00188 
00189 XERCES_CPP_NAMESPACE_END
00190 
00191 #endif


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