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]