neilg 2003/12/30 13:35:46
Modified: c/src/xercesc/framework/psvi XSModel.cpp
Log:
even if there are no grammars to add to an XSModel, the S4S grammar must be included
Revision Changes Path
1.17 +32 -31 xml-xerces/c/src/xercesc/framework/psvi/XSModel.cpp
Index: XSModel.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSModel.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- XSModel.cpp 29 Dec 2003 16:15:42 -0000 1.16
+++ XSModel.cpp 30 Dec 2003 21:35:46 -0000 1.17
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.17 2003/12/30 21:35:46 neilg
+ * even if there are no grammars to add to an XSModel, the S4S grammar must be
included
+ *
* Revision 1.16 2003/12/29 16:15:42 knoaman
* More PSVI updates
*
@@ -214,27 +217,30 @@
}
// Now loop through all of the NamespaceItem's
- // First, we add S4S namespace
- unsigned int numberOfNamespaces = fXSNamespaceItemList->size();
- if (numberOfNamespaces)
- {
- namespaceItem = new (manager) XSNamespaceItem
- (
- this, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, manager
- );
+ // First, we add S4S namespace (irrespective of whether we have any grammars)
+ namespaceItem = new (manager) XSNamespaceItem
+ (
+ this, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, manager
+ );
- fNamespaceStringList->addElement
- (
- XMLString::replicate(SchemaSymbols::fgURI_SCHEMAFORSCHEMA,manager)
- );
- fXSNamespaceItemList->addElement(namespaceItem);
- fHashNamespace->put
- (
- (void*) SchemaSymbols::fgURI_SCHEMAFORSCHEMA
- , namespaceItem
- );
- }
+ fNamespaceStringList->addElement
+ (
+ XMLString::replicate(SchemaSymbols::fgURI_SCHEMAFORSCHEMA,manager)
+ );
+ fXSNamespaceItemList->addElement(namespaceItem);
+ fHashNamespace->put
+ (
+ (void*) SchemaSymbols::fgURI_SCHEMAFORSCHEMA
+ , namespaceItem
+ );
+ fDeleteNamespace->addElement(namespaceItem);
+ addS4SToXSModel
+ (
+ getNamespaceItem(SchemaSymbols::fgURI_SCHEMAFORSCHEMA)
+ , namespaceItem->fGrammar->getDatatypeRegistry()->getBuiltInRegistry()
+ );
+ unsigned int numberOfNamespaces = fXSNamespaceItemList->size();
for (unsigned int j = 0; j < numberOfNamespaces; j++)
addGrammarToXSModel(fXSNamespaceItemList->elementAt(j));
}
@@ -380,7 +386,7 @@
}
// Add S4S namespace if needed
- if (numberOfNamespacesToAdd && !fAddedS4SGrammar)
+ if (!fAddedS4SGrammar)
{
XSNamespaceItem* namespaceItem = new (manager) XSNamespaceItem
(
@@ -397,6 +403,11 @@
(void*) SchemaSymbols::fgURI_SCHEMAFORSCHEMA , namespaceItem
);
fDeleteNamespace->addElement(namespaceItem);
+ addS4SToXSModel
+ (
+ getNamespaceItem(SchemaSymbols::fgURI_SCHEMAFORSCHEMA)
+ , namespaceItem->fGrammar->getDatatypeRegistry()->getBuiltInRegistry()
+ );
}
// Now loop through all of the newly created NamespaceItem's
@@ -516,16 +527,6 @@
void XSModel::addGrammarToXSModel(XSNamespaceItem* namespaceItem)
{
- // populate S4S namespace if needed
- if (!fAddedS4SGrammar)
- {
- addS4SToXSModel
- (
- getNamespaceItem(SchemaSymbols::fgURI_SCHEMAFORSCHEMA)
- , namespaceItem->fGrammar->getDatatypeRegistry()->getBuiltInRegistry()
- );
- }
-
// Loop through top-level attribute declarations in the grammar...
RefHashTableOfEnumerator<XMLAttDef> attrEnum =
RefHashTableOfEnumerator<XMLAttDef>
(namespaceItem->fGrammar->getAttributeDeclRegistry(), false, fMemoryManager);
while (attrEnum.hasMoreElements())
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]