You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by kn...@apache.org on 2003/11/21 18:29:54 UTC
cvs commit: xml-xerces/c/src/xercesc/framework/psvi XSModelGroupDefinition.hpp XSModelGroupDefinition.cpp XSModelGroup.hpp XSModelGroup.cpp XSIDCDefinition.hpp XSIDCDefinition.cpp XSFacet.hpp XSFacet.cpp XSElementDeclaration.hpp XSElementDeclaration.cpp
knoaman 2003/11/21 09:29:54
Modified: c/src/xercesc/framework/psvi XSModelGroupDefinition.hpp
XSModelGroupDefinition.cpp XSModelGroup.hpp
XSModelGroup.cpp XSIDCDefinition.hpp
XSIDCDefinition.cpp XSFacet.hpp XSFacet.cpp
XSElementDeclaration.hpp XSElementDeclaration.cpp
Log:
PSVI update
Revision Changes Path
1.4 +24 -4 xml-xerces/c/src/xercesc/framework/psvi/XSModelGroupDefinition.hpp
Index: XSModelGroupDefinition.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSModelGroupDefinition.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- XSModelGroupDefinition.hpp 14 Nov 2003 22:47:53 -0000 1.3
+++ XSModelGroupDefinition.hpp 21 Nov 2003 17:29:53 -0000 1.4
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.4 2003/11/21 17:29:53 knoaman
+ * PSVI update
+ *
* Revision 1.3 2003/11/14 22:47:53 neilg
* fix bogus log message from previous commit...
*
@@ -87,6 +90,8 @@
// forward declarations
class XSAnnotation;
class XSModelGroup;
+class XSParticle;
+class XercesGroupInfo;
class XMLPARSER_EXPORT XSModelGroupDefinition : public XSObject
{
@@ -102,8 +107,14 @@
*
* @param manager The configurable memory manager
*/
- XSModelGroupDefinition(XSModel* xsModel,
- MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+ XSModelGroupDefinition
+ (
+ XercesGroupInfo* const groupInfo
+ , XSParticle* const groupParticle
+ , XSAnnotation* const annot
+ , XSModel* const xsModel
+ , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+ );
//@};
@@ -150,7 +161,7 @@
/**
* Optional. An [annotation].
*/
- XSAnnotation *getAnnotation();
+ XSAnnotation *getAnnotation() const;
//@}
@@ -172,8 +183,17 @@
// -----------------------------------------------------------------------
// data members
// -----------------------------------------------------------------------
+ XercesGroupInfo* fGroupInfo;
+ XSParticle* fModelGroupParticle;
+ XSAnnotation* fAnnotation;
};
-inline XSModelGroupDefinition::~XSModelGroupDefinition() {}
+
+inline XSAnnotation* XSModelGroupDefinition::getAnnotation() const
+{
+ return fAnnotation;
+}
+
+
XERCES_CPP_NAMESPACE_END
1.5 +38 -24 xml-xerces/c/src/xercesc/framework/psvi/XSModelGroupDefinition.cpp
Index: XSModelGroupDefinition.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSModelGroupDefinition.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- XSModelGroupDefinition.cpp 14 Nov 2003 22:47:53 -0000 1.4
+++ XSModelGroupDefinition.cpp 21 Nov 2003 17:29:53 -0000 1.5
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.5 2003/11/21 17:29:53 knoaman
+ * PSVI update
+ *
* Revision 1.4 2003/11/14 22:47:53 neilg
* fix bogus log message from previous commit...
*
@@ -74,52 +77,63 @@
*/
#include <xercesc/framework/psvi/XSModelGroupDefinition.hpp>
+#include <xercesc/framework/psvi/XSParticle.hpp>
+#include <xercesc/framework/psvi/XSModel.hpp>
+#include <xercesc/validators/schema/XercesGroupInfo.hpp>
+
XERCES_CPP_NAMESPACE_BEGIN
-XSModelGroupDefinition::XSModelGroupDefinition(XSModel* xsModel,
- MemoryManager * const manager):
- XSObject(XSConstants::MODEL_GROUP_DEFINITION, xsModel, manager )
+// ---------------------------------------------------------------------------
+// XSModelGroupDefinition: Constructors and Destructors
+// ---------------------------------------------------------------------------
+XSModelGroupDefinition::XSModelGroupDefinition(XercesGroupInfo* const groupInfo,
+ XSParticle* const groupParticle,
+ XSAnnotation* const annot,
+ XSModel* const xsModel,
+ MemoryManager* const manager)
+ : XSObject(XSConstants::MODEL_GROUP_DEFINITION, xsModel, manager)
+ , fGroupInfo(groupInfo)
+ , fModelGroupParticle(groupParticle)
+ , fAnnotation(annot)
{
}
-// Overridden XSObject methods
+XSModelGroupDefinition::~XSModelGroupDefinition()
+{
+ if (fModelGroupParticle) // Not owned by XSModel
+ delete fModelGroupParticle;
+}
+
+// ---------------------------------------------------------------------------
+// XSModelGroupDefinition: XSModel virtual methods
+// ---------------------------------------------------------------------------
const XMLCh *XSModelGroupDefinition::getName()
{
- // REVISIT
- return 0;
+ return fXSModel->getURIStringPool()->getValueForId(fGroupInfo->getNameId());
}
const XMLCh *XSModelGroupDefinition::getNamespace()
{
- // REVISIT
- return 0;
+ return fXSModel->getURIStringPool()->getValueForId(fGroupInfo->getNamespaceId());
}
XSNamespaceItem *XSModelGroupDefinition::getNamespaceItem()
{
- return getNamespaceItemFromHash(getNamespace());
+ return fXSModel->getNamespaceItem(getNamespace());
}
-// XSModelGroupDefinition methods
-
-/**
- * A model group.
- */
-XSModelGroup *XSModelGroupDefinition::getModelGroup()
+// ---------------------------------------------------------------------------
+// XSModelGroupDefinition: access methods
+// ---------------------------------------------------------------------------
+XSModelGroup* XSModelGroupDefinition::getModelGroup()
{
- // REVISIT
- return 0;
-}
+ if (fModelGroupParticle)
+ return fModelGroupParticle->getModelGroupTerm();
-/**
- * An of [annotations].
- */
-XSAnnotation *XSModelGroupDefinition::getAnnotation()
-{
- // REVISIT
return 0;
}
+
XERCES_CPP_NAMESPACE_END
1.4 +31 -5 xml-xerces/c/src/xercesc/framework/psvi/XSModelGroup.hpp
Index: XSModelGroup.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSModelGroup.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- XSModelGroup.hpp 14 Nov 2003 22:47:53 -0000 1.3
+++ XSModelGroup.hpp 21 Nov 2003 17:29:53 -0000 1.4
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.4 2003/11/21 17:29:53 knoaman
+ * PSVI update
+ *
* Revision 1.3 2003/11/14 22:47:53 neilg
* fix bogus log message from previous commit...
*
@@ -120,8 +123,14 @@
*
* @param manager The configurable memory manager
*/
- XSModelGroup(XSModel* xsModel,
- MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+ XSModelGroup
+ (
+ COMPOSITOR_TYPE compositorType
+ , XSParticleList* const particleList
+ , XSAnnotation* const annot
+ , XSModel* const xsModel
+ , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+ );
//@};
@@ -144,12 +153,12 @@
/**
* A list of [particles].
*/
- XSParticleList *getParticles();
+ XSParticleList *getParticles() const;
/**
* Optional. An [annotation].
*/
- XSAnnotation *getAnnotation();
+ XSAnnotation *getAnnotation() const;
//@}
@@ -172,8 +181,25 @@
// -----------------------------------------------------------------------
// data members
// -----------------------------------------------------------------------
+ COMPOSITOR_TYPE fCompositorType;
+ XSParticleList* fParticleList;
+ XSAnnotation* fAnnotation;
};
-inline XSModelGroup::~XSModelGroup() {}
+
+inline XSModelGroup::COMPOSITOR_TYPE XSModelGroup::getCompositor() const
+{
+ return fCompositorType;
+}
+
+inline XSParticleList* XSModelGroup::getParticles() const
+{
+ return fParticleList;
+}
+
+inline XSAnnotation* XSModelGroup::getAnnotation() const
+{
+ return fAnnotation;
+}
XERCES_CPP_NAMESPACE_END
1.4 +19 -32 xml-xerces/c/src/xercesc/framework/psvi/XSModelGroup.cpp
Index: XSModelGroup.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSModelGroup.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- XSModelGroup.cpp 14 Nov 2003 22:47:53 -0000 1.3
+++ XSModelGroup.cpp 21 Nov 2003 17:29:53 -0000 1.4
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.4 2003/11/21 17:29:53 knoaman
+ * PSVI update
+ *
* Revision 1.3 2003/11/14 22:47:53 neilg
* fix bogus log message from previous commit...
*
@@ -71,45 +74,29 @@
*/
#include <xercesc/framework/psvi/XSModelGroup.hpp>
+#include <xercesc/framework/psvi/XSParticle.hpp>
XERCES_CPP_NAMESPACE_BEGIN
-XSModelGroup::XSModelGroup(XSModel* xsModel,
- MemoryManager * const manager):
- XSObject(XSConstants::MODEL_GROUP, xsModel, manager )
-{
-}
-
-// XSModelGroup methods
-
-
-/**
- * [compositor]: one of all, choice or sequence. The valid constants
- * values are:
- * <code>COMPOSITOR_SEQUENCE, COMPOSITOR_CHOICE, COMPOSITOR_ALL</code>.
- */
-XSModelGroup::COMPOSITOR_TYPE XSModelGroup::getCompositor() const
-{
- // REVISIT
- return COMPOSITOR_SEQUENCE;
-}
-
-/**
- * A list of [particles].
- */
-XSParticleList *XSModelGroup::getParticles()
+// ---------------------------------------------------------------------------
+// XSModelGroup: Constructors and Destructor
+// ---------------------------------------------------------------------------
+XSModelGroup::XSModelGroup(COMPOSITOR_TYPE compositorType,
+ XSParticleList* const particleList,
+ XSAnnotation* const annot,
+ XSModel* const xsModel,
+ MemoryManager * const manager)
+ : XSObject(XSConstants::MODEL_GROUP, xsModel, manager)
+ , fCompositorType(compositorType)
+ , fParticleList(particleList)
+ , fAnnotation(annot)
{
- // REVISIT
- return 0;
}
-/**
- * Optional. An [annotation].
- */
-XSAnnotation *XSModelGroup::getAnnotation()
+XSModelGroup::~XSModelGroup()
{
- // REVISIT
- return 0;
+ if (fParticleList)
+ delete fParticleList;
}
XERCES_CPP_NAMESPACE_END
1.5 +26 -20 xml-xerces/c/src/xercesc/framework/psvi/XSIDCDefinition.hpp
Index: XSIDCDefinition.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSIDCDefinition.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- XSIDCDefinition.hpp 14 Nov 2003 22:47:53 -0000 1.4
+++ XSIDCDefinition.hpp 21 Nov 2003 17:29:53 -0000 1.5
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.5 2003/11/21 17:29:53 knoaman
+ * PSVI update
+ *
* Revision 1.4 2003/11/14 22:47:53 neilg
* fix bogus log message from previous commit...
*
@@ -89,9 +92,7 @@
// forward declarations
class XSAnnotation;
-
class IdentityConstraint;
-class XMLStringPool;
class XMLPARSER_EXPORT XSIDCDefinition : public XSObject
{
@@ -123,9 +124,15 @@
*
* @param manager The configurable memory manager
*/
- XSIDCDefinition(IdentityConstraint* identityConstraint,
- XSModel* xsModel,
- MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+ XSIDCDefinition
+ (
+ IdentityConstraint* const identityConstraint
+ , XSIDCDefinition* const keyIC
+ , XSAnnotation* const headAnnot
+ , StringList* const stringList
+ , XSModel* const xsModel
+ , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+ );
//@};
@@ -185,7 +192,7 @@
* forbidden otherwise (when an identity-constraint definition with [
* identity-constraint category] equal to IC_KEY or IC_UNIQUE).
*/
- XSIDCDefinition *getRefKey();
+ XSIDCDefinition *getRefKey() const;
/**
* A set of [annotations].
@@ -213,22 +220,21 @@
// -----------------------------------------------------------------------
// data members
// -----------------------------------------------------------------------
- IdentityConstraint* fIdentityConstraint;
- XSIDCDefinition* fKey;
- StringList* fStringList;
- XSAnnotationList* fXSAnnotationList;
+ IdentityConstraint* fIdentityConstraint;
+ XSIDCDefinition* fKey;
+ StringList* fStringList;
+ XSAnnotationList* fXSAnnotationList;
};
-inline XSIDCDefinition::~XSIDCDefinition() {
- if (fStringList)
- {
- delete fStringList;
- }
- // don't delete fKey - deleted by XSModel
- if (fXSAnnotationList)
- {
- delete fXSAnnotationList;
- }
+
+inline StringList* XSIDCDefinition::getFieldStrs()
+{
+ return fStringList;
+}
+
+inline XSIDCDefinition* XSIDCDefinition::getRefKey() const
+{
+ return fKey;
}
XERCES_CPP_NAMESPACE_END
1.6 +44 -69 xml-xerces/c/src/xercesc/framework/psvi/XSIDCDefinition.cpp
Index: XSIDCDefinition.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSIDCDefinition.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- XSIDCDefinition.cpp 14 Nov 2003 22:47:53 -0000 1.5
+++ XSIDCDefinition.cpp 21 Nov 2003 17:29:53 -0000 1.6
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.6 2003/11/21 17:29:53 knoaman
+ * PSVI update
+ *
* Revision 1.5 2003/11/14 22:47:53 neilg
* fix bogus log message from previous commit...
*
@@ -80,46 +83,55 @@
#include <xercesc/validators/schema/identity/IC_KeyRef.hpp>
#include <xercesc/validators/schema/identity/IC_Selector.hpp>
#include <xercesc/validators/schema/identity/XercesXPath.hpp>
-#include <xercesc/util/StringPool.hpp>
#include <xercesc/framework/psvi/XSModel.hpp>
#include <xercesc/framework/psvi/XSAnnotation.hpp>
+#include <xercesc/util/StringPool.hpp>
XERCES_CPP_NAMESPACE_BEGIN
-XSIDCDefinition::XSIDCDefinition(IdentityConstraint* identityConstraint,
- XSModel* xsModel,
- MemoryManager * const manager):
- fIdentityConstraint(identityConstraint),
- fStringList(0),
- fKey(0),
- fXSAnnotationList(0),
- XSObject(XSConstants::IDENTITY_CONSTRAINT, xsModel, manager )
-
+// ---------------------------------------------------------------------------
+// XSIDCDefinition: Constructors and Destructor
+// ---------------------------------------------------------------------------
+XSIDCDefinition::XSIDCDefinition(IdentityConstraint* const identityConstraint,
+ XSIDCDefinition* const keyIC,
+ XSAnnotation* const headAnnot,
+ StringList* const stringList,
+ XSModel* const xsModel,
+ MemoryManager* const manager)
+ : XSObject(XSConstants::IDENTITY_CONSTRAINT, xsModel, manager)
+ , fIdentityConstraint(identityConstraint)
+ , fKey(keyIC)
+ , fStringList(stringList)
+ , fXSAnnotationList(0)
{
- unsigned int fieldCount = fIdentityConstraint->getFieldCount();
-
- if (fieldCount)
+ if (headAnnot)
{
- fStringList = new (manager) RefArrayVectorOf <XMLCh>(fieldCount, true, manager);
-
- for(unsigned int i=0; i<fieldCount; i++) {
- XMLCh* expr = XMLString::replicate(fIdentityConstraint->getFieldAt(i)->getXPath()->getExpression(), manager);
- fStringList->addElement(expr);
- }
- }
+ // REVISIT Size
+ fXSAnnotationList = new (manager) RefVectorOf<XSAnnotation>(3, false, manager);
- if (fIdentityConstraint->getType() == IdentityConstraint::KEYREF)
- {
- fKey = (XSIDCDefinition*) getObjectFromMap((void*)((IC_KeyRef*) fIdentityConstraint)->getKey());
- if (!fKey)
+ XSAnnotation* annot = headAnnot;
+ do
{
- fKey = new (manager) XSIDCDefinition(((IC_KeyRef*) fIdentityConstraint)->getKey(), fXSModel, manager);
- putObjectInMap((void*) ((IC_KeyRef*) fIdentityConstraint)->getKey(), fKey);
- }
+ fXSAnnotationList->addElement(annot);
+ annot = annot->getNext();
+ } while (annot);
}
+
}
-// Overridden XSObject methods
+XSIDCDefinition::~XSIDCDefinition()
+{
+ if (fStringList)
+ delete fStringList;
+
+ // don't delete fKey - deleted by XSModel
+ if (fXSAnnotationList)
+ delete fXSAnnotationList;
+}
+
+// ---------------------------------------------------------------------------
+// XSIDCDefinition: XSObject virtual methods
+// ---------------------------------------------------------------------------
const XMLCh *XSIDCDefinition::getName()
{
return fIdentityConstraint->getIdentityConstraintName();
@@ -132,14 +144,12 @@
XSNamespaceItem *XSIDCDefinition::getNamespaceItem()
{
- return getNamespaceItemFromHash(getNamespace());
+ return fXSModel->getNamespaceItem(getNamespace());
}
-// XSIDCDefinition methods
-
-/**
- * [identity-constraint category]: one of IC_KEY, IC_KEYREF or IC_UNIQUE.
- */
+// ---------------------------------------------------------------------------
+// XSIDCDefinition: access methods
+// ---------------------------------------------------------------------------
XSIDCDefinition::IC_CATEGORY XSIDCDefinition::getCategory() const
{
switch(fIdentityConstraint->getType()) {
@@ -157,49 +167,14 @@
}
}
-/**
- * [selector]: a restricted XPath expression.
- */
const XMLCh *XSIDCDefinition::getSelectorStr()
{
return fIdentityConstraint->getSelector()->getXPath()->getExpression();
}
-/**
- * [fields]: a non-empty list of restricted XPath ([XPath]) expressions.
- */
-StringList *XSIDCDefinition::getFieldStrs()
-{
- return fStringList;
-}
-/**
- * [referenced key]: required if [identity-constraint category] is IC_KEYREF,
- * forbidden otherwise (when an identity-constraint definition with [
- * identity-constraint category] equal to IC_KEY or IC_UNIQUE).
- */
-XSIDCDefinition *XSIDCDefinition::getRefKey()
-{
- return fKey;
-}
-
-/**
- * A set of [annotations].
- */
XSAnnotationList *XSIDCDefinition::getAnnotations()
{
- if (fXSAnnotationList)
- {
- return fXSAnnotationList;
- }
- // REVISIT Size
- fXSAnnotationList = new (fMemoryManager) RefVectorOf <XSAnnotation> (3, false, fMemoryManager);
- XSAnnotation* annot = getAnnotationFromModel(fIdentityConstraint);
- while (annot)
- {
- fXSAnnotationList->addElement(annot);
- annot = annot->getNext();
- }
return fXSAnnotationList;
}
1.5 +39 -14 xml-xerces/c/src/xercesc/framework/psvi/XSFacet.hpp
Index: XSFacet.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSFacet.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- XSFacet.hpp 14 Nov 2003 22:47:53 -0000 1.4
+++ XSFacet.hpp 21 Nov 2003 17:29:53 -0000 1.5
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.5 2003/11/21 17:29:53 knoaman
+ * PSVI update
+ *
* Revision 1.4 2003/11/14 22:47:53 neilg
* fix bogus log message from previous commit...
*
@@ -76,7 +79,6 @@
#if !defined(XSFACET_HPP)
#define XSFACET_HPP
-#include <xercesc/framework/psvi/XSObject.hpp>
#include <xercesc/framework/psvi/XSSimpleTypeDefinition.hpp>
XERCES_CPP_NAMESPACE_BEGIN
@@ -92,8 +94,6 @@
// forward declarations
class XSAnnotation;
-
-
class XMLPARSER_EXPORT XSFacet : public XSObject
{
public:
@@ -108,11 +108,15 @@
*
* @param manager The configurable memory manager
*/
- XSFacet(XSSimpleTypeDefinition::FACET facetKind,
- const XMLCh* lexicalValue,
- bool isFixed,
- XSModel* xsModel,
- MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+ XSFacet
+ (
+ XSSimpleTypeDefinition::FACET facetKind
+ , const XMLCh* const lexicalValue
+ , bool isFixed
+ , XSAnnotation* const annot
+ , XSModel* const xsModel
+ , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+ );
//@};
@@ -134,7 +138,7 @@
/**
* @return Returns a value of a constraining facet.
*/
- const XMLCh *getLexicalFacetValue();
+ const XMLCh *getLexicalFacetValue() const;
/**
* Check whether a facet value is fixed.
@@ -144,7 +148,7 @@
/**
* @return an annotation
*/
- XSAnnotation *getAnnotation();
+ XSAnnotation *getAnnotation() const;
//@}
@@ -167,11 +171,32 @@
// -----------------------------------------------------------------------
// data members
// -----------------------------------------------------------------------
- XSSimpleTypeDefinition::FACET fFacetKind;
- const XMLCh* fLexicalValue;
- bool fIsFixed;
+ XSSimpleTypeDefinition::FACET fFacetKind;
+ bool fIsFixed;
+ const XMLCh* fLexicalValue;
+ XSAnnotation* fAnnotation;
};
-inline XSFacet::~XSFacet() {}
+
+inline XSSimpleTypeDefinition::FACET XSFacet::getFacetKind() const
+{
+ return fFacetKind;
+}
+
+inline const XMLCh* XSFacet::getLexicalFacetValue() const
+{
+ return fLexicalValue;
+}
+
+inline bool XSFacet::isFixed() const
+{
+ return fIsFixed;
+}
+
+inline XSAnnotation* XSFacet::getAnnotation() const
+{
+ return fAnnotation;
+}
+
XERCES_CPP_NAMESPACE_END
1.5 +18 -42 xml-xerces/c/src/xercesc/framework/psvi/XSFacet.cpp
Index: XSFacet.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSFacet.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- XSFacet.cpp 14 Nov 2003 22:47:53 -0000 1.4
+++ XSFacet.cpp 21 Nov 2003 17:29:53 -0000 1.5
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.5 2003/11/21 17:29:53 knoaman
+ * PSVI update
+ *
* Revision 1.4 2003/11/14 22:47:53 neilg
* fix bogus log message from previous commit...
*
@@ -77,52 +80,25 @@
XERCES_CPP_NAMESPACE_BEGIN
-XSFacet::XSFacet(XSSimpleTypeDefinition::FACET facetKind,
- const XMLCh* lexicalValue,
- bool isFixed,
- XSModel* xsModel,
- MemoryManager * const manager):
- fFacetKind(facetKind),
- fLexicalValue(lexicalValue),
- fIsFixed(isFixed),
- XSObject(XSConstants::FACET, xsModel, manager )
+// ---------------------------------------------------------------------------
+// XSFacet: Constructors and Destructor
+// ---------------------------------------------------------------------------
+XSFacet::XSFacet(XSSimpleTypeDefinition::FACET facetKind,
+ const XMLCh* const lexicalValue,
+ bool isFixed,
+ XSAnnotation* const annot,
+ XSModel* const xsModel,
+ MemoryManager* const manager)
+ : XSObject(XSConstants::FACET, xsModel, manager)
+ , fFacetKind(facetKind)
+ , fIsFixed(isFixed)
+ , fLexicalValue(lexicalValue)
+ , fAnnotation(annot)
{
}
-// XSFacet methods
-
-
-/**
- * @return An indication as to the facet's type; see <code>XSSimpleTypeDefinition::FACET</code>
- */
-XSSimpleTypeDefinition::FACET XSFacet::getFacetKind() const
-{
- return fFacetKind;
-}
-
-/**
- * @return Returns a value of a constraining facet.
- */
-const XMLCh *XSFacet::getLexicalFacetValue()
-{
- return fLexicalValue;
-}
-
-/**
- * Check whether a facet value is fixed.
- */
-bool XSFacet::isFixed() const
-{
- return fIsFixed;
-}
-
-/**
- * @return an annotation
- */
-XSAnnotation *XSFacet::getAnnotation()
+XSFacet::~XSFacet()
{
- // REVISIT
- return 0;
}
XERCES_CPP_NAMESPACE_END
1.5 +68 -22 xml-xerces/c/src/xercesc/framework/psvi/XSElementDeclaration.hpp
Index: XSElementDeclaration.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSElementDeclaration.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- XSElementDeclaration.hpp 14 Nov 2003 22:47:53 -0000 1.4
+++ XSElementDeclaration.hpp 21 Nov 2003 17:29:53 -0000 1.5
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.5 2003/11/21 17:29:53 knoaman
+ * PSVI update
+ *
* Revision 1.4 2003/11/14 22:47:53 neilg
* fix bogus log message from previous commit...
*
@@ -93,9 +96,7 @@
class XSComplexTypeDefinition;
class XSIDCDefinition;
class XSTypeDefinition;
-
class SchemaElementDecl;
-class XMLStringPool;
class XMLPARSER_EXPORT XSElementDeclaration : public XSObject
{
@@ -111,9 +112,16 @@
*
* @param manager The configurable memory manager
*/
- XSElementDeclaration(SchemaElementDecl* schemaElementDecl,
- XSModel* xsModel,
- MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+ XSElementDeclaration
+ (
+ SchemaElementDecl* const schemaElementDecl
+ , XSTypeDefinition* const typeDefinition
+ , XSElementDeclaration* const substitutionGroupAffiliation
+ , XSAnnotation* const annot
+ , XSNamedMap<XSIDCDefinition>* const identityConstraints
+ , XSModel* const xsModel
+ , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+ );
//@};
@@ -164,25 +172,25 @@
* [type definition]: either a simple type definition or a complex type
* definition.
*/
- XSTypeDefinition *getTypeDefinition();
+ XSTypeDefinition *getTypeDefinition() const;
/**
* Optional. One of <code>SCOPE_GLOBAL</code>, <code>SCOPE_LOCAL</code>,
* or <code>SCOPE_ABSENT</code>. If the scope is local, then the
* <code>enclosingCTDefinition</code> is present.
*/
- XSConstants::SCOPE getScope();
+ XSConstants::SCOPE getScope() const;
/**
* The complex type definition for locally scoped declarations (see
* <code>scope</code>).
*/
- XSComplexTypeDefinition *getEnclosingCTDefinition();
+ XSComplexTypeDefinition *getEnclosingCTDefinition() const;
/**
* [Value constraint]: one of <code>VC_NONE, VC_DEFAULT, VC_FIXED</code>.
*/
- XSConstants::VALUE_CONSTRAINT getConstraintType();
+ XSConstants::VALUE_CONSTRAINT getConstraintType() const;
/**
* [Value constraint]: the actual value with respect to the [type
@@ -198,7 +206,7 @@
* element content despite a <code>content type</code> which would
* otherwise require content.
*/
- bool getNillable();
+ bool getNillable() const;
/**
* identity-constraint definitions: a set of constraint definitions.
@@ -209,7 +217,7 @@
* [substitution group affiliation]: optional. A top-level element
* definition.
*/
- XSElementDeclaration *getSubstitutionGroupAffiliation();
+ XSElementDeclaration *getSubstitutionGroupAffiliation() const;
/**
* Convenience method. Check if <code>exclusion</code> is a substitution
@@ -228,7 +236,7 @@
* <code>DERIVATION_EXTENSION, DERIVATION_RESTRICTION</code>} or
* <code>DERIVATION_NONE</code>.
*/
- short getSubstitutionGroupExclusions();
+ short getSubstitutionGroupExclusions() const;
/**
* Convenience method. Check if <code>disallowed</code> is a disallowed
@@ -249,17 +257,17 @@
* } corresponding to substitutions disallowed by this
* <code>XSElementDeclaration</code> or <code>DERIVATION_NONE</code>.
*/
- short getDisallowedSubstitutions();
+ short getDisallowedSubstitutions() const;
/**
* {abstract} A boolean.
*/
- bool getAbstract();
+ bool getAbstract() const;
/**
* Optional. Annotation.
*/
- XSAnnotation *getAnnotation();
+ XSAnnotation *getAnnotation() const;
//@}
@@ -271,6 +279,7 @@
* Set the id to be returned on getId().
*/
void setId(unsigned int id);
+
//@}
private:
@@ -285,14 +294,51 @@
// -----------------------------------------------------------------------
// data members
// -----------------------------------------------------------------------
- SchemaElementDecl* fSchemaElementDecl;
- XSTypeDefinition* fTypeDefinition;
- XSElementDeclaration* fSubstitutionGroupAffiliation;
- XSNamedMap <XSIDCDefinition>* fIdentityConstraints;
- short fDisallowedSubstitutions;
- short fSubstitutionGroupExclusions;
- unsigned int fId;
+ short fDisallowedSubstitutions;
+ short fSubstitutionGroupExclusions;
+ unsigned int fId;
+ SchemaElementDecl* fSchemaElementDecl;
+ XSTypeDefinition* fTypeDefinition;
+ XSElementDeclaration* fSubstitutionGroupAffiliation;
+ XSAnnotation* fAnnotation;
+ XSNamedMap<XSIDCDefinition>* fIdentityConstraints;
};
+
+inline XSTypeDefinition* XSElementDeclaration::getTypeDefinition() const
+{
+ return fTypeDefinition;
+}
+
+inline XSNamedMap<XSIDCDefinition>* XSElementDeclaration::getIdentityConstraints()
+{
+ return fIdentityConstraints;
+}
+
+inline XSElementDeclaration* XSElementDeclaration::getSubstitutionGroupAffiliation() const
+{
+ return fSubstitutionGroupAffiliation;
+}
+
+inline short XSElementDeclaration::getSubstitutionGroupExclusions() const
+{
+ return fSubstitutionGroupExclusions;
+}
+
+inline short XSElementDeclaration::getDisallowedSubstitutions() const
+{
+ return fDisallowedSubstitutions;
+}
+
+inline XSAnnotation *XSElementDeclaration::getAnnotation() const
+{
+ return fAnnotation;
+}
+
+inline void XSElementDeclaration::setId(unsigned int id)
+{
+ fId = id;
+}
+
XERCES_CPP_NAMESPACE_END
1.6 +63 -215 xml-xerces/c/src/xercesc/framework/psvi/XSElementDeclaration.cpp
Index: XSElementDeclaration.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSElementDeclaration.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- XSElementDeclaration.cpp 14 Nov 2003 22:47:53 -0000 1.5
+++ XSElementDeclaration.cpp 21 Nov 2003 17:29:53 -0000 1.6
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.6 2003/11/21 17:29:53 knoaman
+ * PSVI update
+ *
* Revision 1.5 2003/11/14 22:47:53 neilg
* fix bogus log message from previous commit...
*
@@ -77,102 +80,59 @@
*/
#include <xercesc/framework/psvi/XSElementDeclaration.hpp>
-#include <xercesc/validators/schema/SchemaElementDecl.hpp>
#include <xercesc/framework/psvi/XSSimpleTypeDefinition.hpp>
#include <xercesc/framework/psvi/XSComplexTypeDefinition.hpp>
#include <xercesc/framework/psvi/XSIDCDefinition.hpp>
-#include <xercesc/util/StringPool.hpp>
#include <xercesc/framework/psvi/XSModel.hpp>
-#include <xercesc/framework/psvi/XSAnnotation.hpp>
+#include <xercesc/validators/schema/SchemaElementDecl.hpp>
+#include <xercesc/util/StringPool.hpp>
XERCES_CPP_NAMESPACE_BEGIN
-XSElementDeclaration::XSElementDeclaration(SchemaElementDecl* schemaElementDecl,
- XSModel* xsModel,
- MemoryManager * const manager):
- fSchemaElementDecl(schemaElementDecl),
- fSubstitutionGroupAffiliation(0),
- fDisallowedSubstitutions(0),
- fSubstitutionGroupExclusions(0),
- fTypeDefinition(0),
- fIdentityConstraints(0),
- XSObject(XSConstants::ELEMENT_DECLARATION, xsModel, manager )
-{
- int blockorfinalset;
- if (blockorfinalset = fSchemaElementDecl->getBlockSet())
+// ---------------------------------------------------------------------------
+// XSElementDeclaration: Constructors and Destructor
+// ---------------------------------------------------------------------------
+XSElementDeclaration::XSElementDeclaration
+(
+ SchemaElementDecl* const schemaElementDecl
+ , XSTypeDefinition* const typeDefinition
+ , XSElementDeclaration* const substitutionGroupAffiliation
+ , XSAnnotation* const annot
+ , XSNamedMap<XSIDCDefinition>* const identityConstraints
+ , XSModel* const xsModel
+ , MemoryManager* const manager
+)
+ : XSObject(XSConstants::ELEMENT_DECLARATION, xsModel, manager)
+ , fDisallowedSubstitutions(0)
+ , fSubstitutionGroupExclusions(0)
+ , fId(0)
+ , fSchemaElementDecl(schemaElementDecl)
+ , fTypeDefinition(typeDefinition)
+ , fSubstitutionGroupAffiliation(substitutionGroupAffiliation)
+ , fIdentityConstraints(identityConstraints)
+{
+ // set block and final information
+ // NOTE: rest of setup will be taken care of in construct()
+ int blockFinalSet = fSchemaElementDecl->getBlockSet();
+ if (blockFinalSet)
{
- if (blockorfinalset & SchemaSymbols::XSD_EXTENSION)
- {
+ if (blockFinalSet & SchemaSymbols::XSD_EXTENSION)
fDisallowedSubstitutions |= XSConstants::DERIVATION_EXTENSION;
- }
- if (blockorfinalset & SchemaSymbols::XSD_RESTRICTION)
- {
+
+ if (blockFinalSet & SchemaSymbols::XSD_RESTRICTION)
fDisallowedSubstitutions |= XSConstants::DERIVATION_RESTRICTION;
- }
- if (blockorfinalset & SchemaSymbols::XSD_SUBSTITUTION)
- {
+
+ if (blockFinalSet & SchemaSymbols::XSD_SUBSTITUTION)
fDisallowedSubstitutions |= XSConstants::DERIVATION_SUBSTITUTION;
- }
}
- if (blockorfinalset = fSchemaElementDecl->getFinalSet())
+ if (blockFinalSet = fSchemaElementDecl->getFinalSet())
{
- if (blockorfinalset & SchemaSymbols::XSD_EXTENSION)
- {
+ if (blockFinalSet & SchemaSymbols::XSD_EXTENSION)
fSubstitutionGroupExclusions |= XSConstants::DERIVATION_EXTENSION;
- }
- if (blockorfinalset & SchemaSymbols::XSD_RESTRICTION)
- {
- fSubstitutionGroupExclusions |= XSConstants::DERIVATION_RESTRICTION;
- }
- }
-
- if (fSchemaElementDecl->getSubstitutionGroupElem())
- {
- fSubstitutionGroupAffiliation = (XSElementDeclaration*) getObjectFromMap((void*)fSchemaElementDecl->getSubstitutionGroupElem());
- if (!fSubstitutionGroupAffiliation)
- {
- fSubstitutionGroupAffiliation = new (manager) XSElementDeclaration(fSchemaElementDecl->getSubstitutionGroupElem(), fXSModel, manager);
- putObjectInMap((void*)fSchemaElementDecl->getSubstitutionGroupElem(),fSubstitutionGroupAffiliation);
- }
- }
-
- if (fSchemaElementDecl->getDatatypeValidator())
- {
- // simple type
- fTypeDefinition = (XSTypeDefinition*) getObjectFromMap((void *)fSchemaElementDecl->getDatatypeValidator());
- if (!fTypeDefinition)
- {
- fTypeDefinition = (XSTypeDefinition*) new (manager) XSSimpleTypeDefinition(fSchemaElementDecl->getDatatypeValidator(), fXSModel, manager);
- putObjectInMap((void *)fSchemaElementDecl->getDatatypeValidator(), fTypeDefinition);
- }
- }
- else if (fSchemaElementDecl->getComplexTypeInfo())
- {
- // complex type
- fTypeDefinition = (XSTypeDefinition*) getObjectFromMap((void *)fSchemaElementDecl->getComplexTypeInfo());
- if (!fTypeDefinition)
- {
- fTypeDefinition = (XSTypeDefinition*) new (manager) XSComplexTypeDefinition(fSchemaElementDecl->getComplexTypeInfo(), fXSModel, manager);
- putObjectInMap((void *)fSchemaElementDecl->getComplexTypeInfo(), fTypeDefinition);
- }
- }
- unsigned int count = fSchemaElementDecl->getIdentityConstraintCount();
- if (count)
- {
- //REVISIT: size of hash table....
- fIdentityConstraints = new (manager) XSNamedMap <XSIDCDefinition> (count, 29, fXSModel->getURIStringPool(), false, manager);
- for (unsigned int i = 0; i < count; i++)
- {
- XSIDCDefinition* definition = (XSIDCDefinition*) getObjectFromMap((void*)fSchemaElementDecl->getIdentityConstraintAt(i));
- if (!definition)
- {
- definition = new (manager) XSIDCDefinition(fSchemaElementDecl->getIdentityConstraintAt(i), fXSModel, manager);
- putObjectInMap((void*) fSchemaElementDecl->getIdentityConstraintAt(i), definition);
- }
- fIdentityConstraints->addElement(definition, definition->getName(), definition->getNamespace());
- }
+ if (blockFinalSet & SchemaSymbols::XSD_RESTRICTION)
+ fSubstitutionGroupExclusions |= XSConstants::DERIVATION_RESTRICTION;
}
}
@@ -181,12 +141,12 @@
// don't delete fTypeDefinition - deleted by XSModel
// don't delete fSubstitutionGroupAffiliation - deleted by XSModel
if (fIdentityConstraints)
- {
delete fIdentityConstraints;
- }
}
-// Overridden XSObject methods
+// ---------------------------------------------------------------------------
+// XSElementDeclaration: XSObject virtual methods
+// ---------------------------------------------------------------------------
const XMLCh *XSElementDeclaration::getName()
{
return fSchemaElementDecl->getElementName()->getLocalPart();
@@ -199,27 +159,19 @@
XSNamespaceItem *XSElementDeclaration::getNamespaceItem()
{
- return getNamespaceItemFromHash(getNamespace());
+ return fXSModel->getNamespaceItem(getNamespace());
}
-// XSElementDeclaration methods
-
-
-/**
- * [type definition]: either a simple type definition or a complex type
- * definition.
- */
-XSTypeDefinition *XSElementDeclaration::getTypeDefinition()
+unsigned int XSElementDeclaration::getId() const
{
- return fTypeDefinition;
+ return fId;
}
-/**
- * Optional. One of <code>SCOPE_GLOBAL</code>, <code>SCOPE_LOCAL</code>,
- * or <code>SCOPE_ABSENT</code>. If the scope is local, then the
- * <code>enclosingCTDefinition</code> is present.
- */
-XSConstants::SCOPE XSElementDeclaration::getScope()
+
+// ---------------------------------------------------------------------------
+// XSElementDeclaration: access methods
+// ---------------------------------------------------------------------------
+XSConstants::SCOPE XSElementDeclaration::getScope() const
{
if (fSchemaElementDecl->getEnclosingScope() == Grammar::TOP_LEVEL_SCOPE)
return XSConstants::SCOPE_GLOBAL;
@@ -227,166 +179,62 @@
return XSConstants::SCOPE_LOCAL;
}
-/**
- * The complex type definition for locally scoped declarations (see
- * <code>scope</code>).
- */
-XSComplexTypeDefinition *XSElementDeclaration::getEnclosingCTDefinition()
+XSComplexTypeDefinition *XSElementDeclaration::getEnclosingCTDefinition() const
{
// REVISIT
return 0;
}
-/**
- * [Value constraint]: one of <code>VC_NONE, VC_DEFAULT, VC_FIXED</code>.
- */
-XSConstants::VALUE_CONSTRAINT XSElementDeclaration::getConstraintType()
+XSConstants::VALUE_CONSTRAINT XSElementDeclaration::getConstraintType() const
{
if (fSchemaElementDecl->getMiscFlags() & SchemaSymbols::XSD_FIXED)
- {
return XSConstants::VC_FIXED;
- }
+
// REVISIT: need to verify this... don't appear to set a DEFAULT flag so thought
// this might work...
if (fSchemaElementDecl->getDefaultValue())
- {
return XSConstants::VC_DEFAULT;
- }
+
return XSConstants::VC_NONE;
}
-/**
- * [Value constraint]: the actual value with respect to the [type
- * definition].
- */
const XMLCh *XSElementDeclaration::getConstraintValue()
{
return fSchemaElementDecl->getDefaultValue();
}
-/**
- * If nillable is true, then an element may also be valid if it carries
- * the namespace qualified attribute with local name <code>nil</code>
- * from namespace <code>http://www.w3.org/2001/XMLSchema-instance</code>
- * and value <code>true</code> (xsi:nil) even if it has no text or
- * element content despite a <code>content type</code> which would
- * otherwise require content.
- */
-bool XSElementDeclaration::getNillable()
+bool XSElementDeclaration::getNillable() const
{
- if (fSchemaElementDecl->getMiscFlags() & SchemaSymbols::XSD_NILLABLE) {
+ if (fSchemaElementDecl->getMiscFlags() & SchemaSymbols::XSD_NILLABLE)
return true;
- }
- return false;
-}
-
-/**
- * identity-constraint definitions: a set of constraint definitions.
- */
-XSNamedMap <XSIDCDefinition> *XSElementDeclaration::getIdentityConstraints()
-{
- return fIdentityConstraints;
-}
-/**
- * [substitution group affiliation]: optional. A top-level element
- * definition.
- */
-XSElementDeclaration *XSElementDeclaration::getSubstitutionGroupAffiliation()
-{
- return fSubstitutionGroupAffiliation;
+ return false;
}
-/**
- * Convenience method. Check if <code>exclusion</code> is a substitution
- * group exclusion for this element declaration.
- * @param exclusion
- * <code>DERIVATION_EXTENSION, DERIVATION_RESTRICTION</code> or
- * <code>DERIVATION_NONE</code>. Represents final set for the element.
- * @return True if <code>exclusion</code> is a part of the substitution
- * group exclusion subset.
- */
bool XSElementDeclaration::isSubstitutionGroupExclusion(XSConstants::DERIVATION_TYPE exclusion)
{
if (fSubstitutionGroupExclusions & exclusion)
- {
return true;
- }
+
return false;
}
-/**
- * [substitution group exclusions]: the returned value is a bit
- * combination of the subset of {
- * <code>DERIVATION_EXTENSION, DERIVATION_RESTRICTION</code>} or
- * <code>DERIVATION_NONE</code>.
- */
-short XSElementDeclaration::getSubstitutionGroupExclusions()
-{
- return fSubstitutionGroupExclusions;
-}
-/**
- * Convenience method. Check if <code>disallowed</code> is a disallowed
- * substitution for this element declaration.
- * @param disallowed {
- * <code>DERIVATION_SUBSTITUTION, DERIVATION_EXTENSION, DERIVATION_RESTRICTION</code>
- * } or <code>DERIVATION_NONE</code>. Represents a block set for the
- * element.
- * @return True if <code>disallowed</code> is a part of the substitution
- * group exclusion subset.
- */
bool XSElementDeclaration::isDisallowedSubstitution(XSConstants::DERIVATION_TYPE disallowed)
{
if (fDisallowedSubstitutions & disallowed)
- {
return true;
- }
- return false;
-}
-
-/**
- * [disallowed substitutions]: the returned value is a bit combination of
- * the subset of {
- * <code>DERIVATION_SUBSTITUTION, DERIVATION_EXTENSION, DERIVATION_RESTRICTION</code>
- * } corresponding to substitutions disallowed by this
- * <code>XSElementDeclaration</code> or <code>DERIVATION_NONE</code>.
- */
-short XSElementDeclaration::getDisallowedSubstitutions()
-{
- return fDisallowedSubstitutions;
-}
-/**
- * {abstract} A boolean.
- */
-bool XSElementDeclaration::getAbstract()
-{
- if (fSchemaElementDecl->getMiscFlags() & SchemaSymbols::XSD_ABSTRACT) {
- return true;
- }
return false;
}
-/**
- * Optional. Annotation.
- */
-XSAnnotation *XSElementDeclaration::getAnnotation()
-{
- return getAnnotationFromModel(fSchemaElementDecl);
-}
-/**
- * Process Id
- */
-void XSElementDeclaration::setId(unsigned int id)
+bool XSElementDeclaration::getAbstract() const
{
- fId = id;
-}
+ if (fSchemaElementDecl->getMiscFlags() & SchemaSymbols::XSD_ABSTRACT)
+ return true;
-unsigned int XSElementDeclaration::getId() const
-{
- return fId;
+ return false;
}
XERCES_CPP_NAMESPACE_END
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org