knoaman     2003/11/21 09:25:09

  Modified:    c/src/xercesc/framework/psvi XSModel.hpp XSModel.cpp
  Log:
  Use XSObjectFactory to create various components.
  
  Revision  Changes    Path
  1.7       +28 -6     xml-xerces/c/src/xercesc/framework/psvi/XSModel.hpp
  
  Index: XSModel.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSModel.hpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- XSModel.hpp       15 Nov 2003 21:18:39 -0000      1.6
  +++ XSModel.hpp       21 Nov 2003 17:25:09 -0000      1.7
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.7  2003/11/21 17:25:09  knoaman
  + * Use XSObjectFactory to create various components.
  + *
    * Revision 1.6  2003/11/15 21:18:39  neilg
    * fixes for compilation under gcc
    *
  @@ -114,6 +117,7 @@
   class XSNamespaceItem;
   class XSNotationDeclaration;
   class XSTypeDefinition;
  +class XSObjectFactory;
   
   class XMLPARSER_EXPORT XSModel : public XMemory
   {
  @@ -287,6 +291,9 @@
   
       //@{
       XMLStringPool*  getURIStringPool();
  +
  +    XSNamespaceItem* getNamespaceItem(const XMLCh* const key);
  +
       //@}
   private:
   
  @@ -297,7 +304,8 @@
       XSModel & operator=(const XSModel &);
   
   protected:
  -    friend class XSObject;
  +    friend class PSVIUtil;
  +
       // -----------------------------------------------------------------------
       //  data members
       // -----------------------------------------------------------------------
  @@ -308,7 +316,6 @@
       StringList*                             fNamespaceStringList;
       XSNamespaceItemList*                    fXSNamespaceItemList;
   
  -    RefVectorOf<XSObject>*                  fDeleteVector;
       RefVectorOf<XSElementDeclaration>*      fElementDeclarationVector;
       RefVectorOf<XSAttributeDeclaration>*    fAttributeDeclarationVector;
   
  @@ -333,13 +340,28 @@
       // the mapping of Xerces Object to XS Objects
       //  facets, mulitvaluefacets and xsattributegroupdefinitions are not stored in 
the 
       //  the mapping
  -    RefHashTableOf<XSObject>*               fXercesToXSMap;
       XMLStringPool*                          fURIStringPool;
  -
       XSAnnotationList*                       fXSAnnotationList;
  -
       RefHashTableOf<XSNamespaceItem>*        fHashNamespace;
  +    XSObjectFactory*                        fObjFactory;
   };
  +
  +inline XMLStringPool*  XSModel::getURIStringPool()
  +{
  +    return fURIStringPool;
  +}
  +
  +inline StringList *XSModel::getNamespaces()
  +{
  +    return fNamespaceStringList;
  +}
  +
  +inline XSNamespaceItemList *XSModel::getNamespaceItems()
  +{
  +    return fXSNamespaceItemList;
  +}
  +
  +
   
   XERCES_CPP_NAMESPACE_END
   
  
  
  
  1.7       +71 -141   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.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- XSModel.cpp       17 Nov 2003 18:38:51 -0000      1.6
  +++ XSModel.cpp       21 Nov 2003 17:25:09 -0000      1.7
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.7  2003/11/21 17:25:09  knoaman
  + * Use XSObjectFactory to create various components.
  + *
    * Revision 1.6  2003/11/17 18:38:51  neilg
    * work around HP compiler bug
    *
  @@ -84,7 +87,7 @@
   #include <xercesc/internal/XMLGrammarPoolImpl.hpp>
   #include <xercesc/validators/schema/SchemaGrammar.hpp>
   #include <xercesc/validators/schema/XercesAttGroupInfo.hpp>
  -#include <xercesc/util/HashPtr.hpp>
  +#include <xercesc/internal/XSObjectFactory.hpp>
   #include <xercesc/framework/psvi/XSAttributeDeclaration.hpp>
   #include <xercesc/framework/psvi/XSElementDeclaration.hpp>
   #include <xercesc/framework/psvi/XSAttributeGroupDefinition.hpp>
  @@ -101,10 +104,19 @@
     * @param  manager     The configurable memory manager
     */
   XSModel::XSModel( XMLGrammarPool *grammarPool
  -            , MemoryManager* const manager ):
  -        fMemoryManager(manager)
  +                , MemoryManager* const manager)
  +    : fMemoryManager(manager)
  +    , fNamespaceStringList(0)
  +    , fXSNamespaceItemList(0)
  +    , fElementDeclarationVector(0)
  +    , fAttributeDeclarationVector(0)
  +    , fURIStringPool(0)
  +    , fXSAnnotationList(0)
  +    , fHashNamespace(0)
  +    , fObjFactory(0)
   {
       fURIStringPool = grammarPool->getURIStringPool();
  +    fObjFactory = new XSObjectFactory(manager);
   
       // Populate XSNamedMaps by going through the components
       for (unsigned int i=0; i<XSConstants::MULTIVALUE_FACET; i++)
  @@ -141,16 +153,9 @@
           }
       }
      
  -    // REVISIT: what size & modulus
  -    fXercesToXSMap = new (fMemoryManager) RefHashTableOf<XSObject> 
  -            (
  -                29, false, new (fMemoryManager) HashPtr(), fMemoryManager
  -            );
  -
       // Revisit: size of vector
       fNamespaceStringList = new (manager) RefArrayVectorOf <XMLCh>(10, true, 
manager);
       fXSNamespaceItemList = new (manager) RefVectorOf <XSNamespaceItem>(10, true, 
manager);
  -    fDeleteVector        = new (manager) RefVectorOf<XSObject>(10, true, manager);
       fXSAnnotationList    = new (manager) RefVectorOf <XSAnnotation> (10, false, 
manager);
   
       fHashNamespace = new (manager) RefHashTableOf<XSNamespaceItem> (29, false, 
manager);
  @@ -171,7 +176,7 @@
           XMLCh* NameSpace = XMLString::replicate(sGrammar.getTargetNamespace(), 
manager);
           fNamespaceStringList->addElement(NameSpace);
           
  -        XSNamespaceItem* namespaceItem = new XSNamespaceItem(this, &sGrammar, 
manager);
  +        XSNamespaceItem* namespaceItem = new (manager) XSNamespaceItem(this, 
&sGrammar, manager);
           fXSNamespaceItemList->addElement(namespaceItem);
   
           fHashNamespace->put(NameSpace, namespaceItem);
  @@ -186,25 +191,17 @@
           // First loop through top-level BUILTIN simple type definitions in the 
grammar...
           // all grammar's would be the same...    
           RefHashTableOfEnumerator<DatatypeValidator> simpleEnum = 
RefHashTableOfEnumerator<DatatypeValidator> 
(namespaceItem->getSchemaGrammar()->getDatatypeRegistry()->getBuiltInRegistry());
  -
           while (simpleEnum.hasMoreElements())
           {
  +            // REVISIT
               DatatypeValidator& curSimple = simpleEnum.nextElement();
  -            XSSimpleTypeDefinition* xsSimple;
  +            XSSimpleTypeDefinition* xsSimple = fObjFactory->addOrFind(&curSimple, 
this);
  +
               if (j == 0)
  -            {
  -                xsSimple = new (fMemoryManager) XSSimpleTypeDefinition(&curSimple, 
this, fMemoryManager);
  -                fXercesToXSMap->put((void *)&curSimple, xsSimple);
                   fComponentMap[XSConstants::TYPE_DEFINITION 
-1]->addElement(xsSimple, xsSimple->getName(), namespaceItem->getSchemaNamespace());
   
  -                fDeleteVector->addElement(xsSimple);
  -            }
  -            else
  -            {
  -                xsSimple = (XSSimpleTypeDefinition*) fXercesToXSMap->get((void 
*)&curSimple);
  -            }
               namespaceItem->fComponentMap[XSConstants::TYPE_DEFINITION 
-1]->addElement(xsSimple, xsSimple->getName(), namespaceItem->getSchemaNamespace());
  -            namespaceItem->fHashMap[XSConstants::TYPE_DEFINITION -1]->put((void *) 
xsSimple->getName(), xsSimple);                                                  
  +            namespaceItem->fHashMap[XSConstants::TYPE_DEFINITION -1]->put((void *) 
xsSimple->getName(), xsSimple);
           }
           // end of simple BuiltIn loop
   
  @@ -213,51 +210,33 @@
           
           while (attrEnum.hasMoreElements())
           {
  -            XMLAttDef&  curAttr = attrEnum.nextElement();
  -            SchemaAttDef* attDef = (SchemaAttDef*) &curAttr;
  -            
  -  //          XSAttributeDeclaration* xsAttrDecl = (XSAttributeDeclaration*) 
fXercesToXSMap->get((void *) attDef);
  -  //          if (!xsAttrDecl)
  -  //          {
  -                // not in map need to add it..
  -                XSAttributeDeclaration* xsAttrDecl = new (fMemoryManager) 
XSAttributeDeclaration(attDef, this, fMemoryManager);
  -                fXercesToXSMap->put((void *)attDef, xsAttrDecl);
  -                fComponentMap[XSConstants::ATTRIBUTE_DECLARATION 
-1]->addElement(xsAttrDecl, xsAttrDecl->getName(), 
namespaceItem->getSchemaNamespace());
  -
  -                fDeleteVector->addElement(xsAttrDecl);
  -
  -                //also need to add to vector of attribute Id's!
  -                xsAttrDecl->setId(fAttributeDeclarationVector->size());
  -                fAttributeDeclarationVector->addElement(xsAttrDecl);
  -    //        }
  -            namespaceItem->fComponentMap[XSConstants::ATTRIBUTE_DECLARATION 
-1]->addElement(xsAttrDecl, xsAttrDecl->getName(), 
namespaceItem->getSchemaNamespace());
  -            namespaceItem->fHashMap[XSConstants::ATTRIBUTE_DECLARATION 
-1]->put((void *) xsAttrDecl->getName(), xsAttrDecl);
  +            SchemaAttDef* attDef = (SchemaAttDef*) &(attrEnum.nextElement());
  +            XSAttributeDeclaration* xsAttrDecl = fObjFactory->addOrFind(attDef, 
this);
   
  +            fComponentMap[XSConstants::ATTRIBUTE_DECLARATION-1]->addElement
  +            (
  +                xsAttrDecl
  +                , xsAttrDecl->getName()
  +                , namespaceItem->getSchemaNamespace()
  +            );
  +            xsAttrDecl->setId(fAttributeDeclarationVector->size());
  +            fAttributeDeclarationVector->addElement(xsAttrDecl);
  +            
namespaceItem->fComponentMap[XSConstants::ATTRIBUTE_DECLARATION-1]->addElement(xsAttrDecl,
 xsAttrDecl->getName(), namespaceItem->getSchemaNamespace());
  +            namespaceItem->fHashMap[XSConstants::ATTRIBUTE_DECLARATION 
-1]->put((void *) xsAttrDecl->getName(), xsAttrDecl);
           } // end of attribute loop
   
           // Loop through top-level elements in the grammar...
           RefHash3KeysIdPoolEnumerator<SchemaElementDecl> elemEnum = 
namespaceItem->getSchemaGrammar()->getElemEnumerator();
  -
           while (elemEnum.hasMoreElements())
           {
               SchemaElementDecl& curElem = elemEnum.nextElement();
  -
               if (curElem.getEnclosingScope() == Grammar::TOP_LEVEL_SCOPE) 
               {
  -                XSElementDeclaration* xsElemDecl = (XSElementDeclaration*) 
fXercesToXSMap->get((void *)&curElem);
  -                if (!xsElemDecl)
  -                {
  -                    // not in map need to add it..
  -                    xsElemDecl = new (fMemoryManager) 
XSElementDeclaration(&curElem, this, fMemoryManager);
  -                    fXercesToXSMap->put((void *)&curElem, xsElemDecl);
  -                    fComponentMap[XSConstants::ELEMENT_DECLARATION 
-1]->addElement(xsElemDecl, xsElemDecl->getName(), 
namespaceItem->getSchemaNamespace());
  -
  -                    fDeleteVector->addElement(xsElemDecl);
  -
  -                    //also need to add to vector of elem Id's!
  -                    xsElemDecl->setId(fElementDeclarationVector->size());
  -                    fElementDeclarationVector->addElement(xsElemDecl);
  -                }
  +                XSElementDeclaration* xsElemDecl = fObjFactory->addOrFind(&curElem, 
this);
  +
  +                
fComponentMap[XSConstants::ELEMENT_DECLARATION-1]->addElement(xsElemDecl, 
xsElemDecl->getName(), namespaceItem->getSchemaNamespace());
  +                xsElemDecl->setId(fElementDeclarationVector->size());
  +                fElementDeclarationVector->addElement(xsElemDecl);
                   namespaceItem->fComponentMap[XSConstants::ELEMENT_DECLARATION 
-1]->addElement(xsElemDecl, xsElemDecl->getName(), 
namespaceItem->getSchemaNamespace());
                   namespaceItem->fHashMap[XSConstants::ELEMENT_DECLARATION 
-1]->put((void *) xsElemDecl->getName(), xsElemDecl);
               }
  @@ -265,22 +244,14 @@
   
           // Now loop through top-level User Defined simple type definitions in the 
grammar...   
           RefHashTableOfEnumerator<DatatypeValidator> simpleUserEnum = 
RefHashTableOfEnumerator<DatatypeValidator> 
(namespaceItem->getSchemaGrammar()->getDatatypeRegistry()->getUserDefinedRegistry());
  -
           while (simpleUserEnum.hasMoreElements())
           {
               DatatypeValidator& curSimple = simpleUserEnum.nextElement();
               if (!curSimple.getAnonymous())
               {
  -                XSSimpleTypeDefinition* xsSimple = (XSSimpleTypeDefinition*) 
fXercesToXSMap->get((void *)&curSimple);
  -                if (!xsSimple)
  -                {
  -                    // not in map need to add it..
  -                    xsSimple = new (fMemoryManager) 
XSSimpleTypeDefinition(&curSimple, this, fMemoryManager);
  -                    fXercesToXSMap->put((void *)&curSimple, xsSimple);
  -                    fComponentMap[XSConstants::TYPE_DEFINITION 
-1]->addElement(xsSimple, xsSimple->getName(), namespaceItem->getSchemaNamespace());
  +                XSSimpleTypeDefinition* xsSimple = 
fObjFactory->addOrFind(&curSimple, this);
   
  -                    fDeleteVector->addElement(xsSimple);
  -                }
  +                fComponentMap[XSConstants::TYPE_DEFINITION 
-1]->addElement(xsSimple, xsSimple->getName(), namespaceItem->getSchemaNamespace());
                   namespaceItem->fComponentMap[XSConstants::TYPE_DEFINITION 
-1]->addElement(xsSimple, xsSimple->getName(), namespaceItem->getSchemaNamespace());
                   namespaceItem->fHashMap[XSConstants::TYPE_DEFINITION -1]->put((void 
*) xsSimple->getName(), xsSimple);                
               }            
  @@ -288,23 +259,14 @@
           // end of simple User loop
   
           // Loop through top-level COMPLEX type definitions in the grammar...        
  -        RefHashTableOfEnumerator<ComplexTypeInfo> complexEnum = 
RefHashTableOfEnumerator<ComplexTypeInfo> 
(namespaceItem->getSchemaGrammar()->getComplexTypeRegistry());   
  -      
  +        RefHashTableOfEnumerator<ComplexTypeInfo> complexEnum = 
RefHashTableOfEnumerator<ComplexTypeInfo> 
(namespaceItem->getSchemaGrammar()->getComplexTypeRegistry());      
           while (complexEnum.hasMoreElements())
           {
               ComplexTypeInfo&  curComplex = complexEnum.nextElement();           
               if (!curComplex.getAnonymous())
               {
  -                XSComplexTypeDefinition* xsComplex = (XSComplexTypeDefinition*) 
fXercesToXSMap->get((void *) &curComplex);
  -                if (!xsComplex)
  -                {
  -                    // not in map need to add it..
  -                    xsComplex = new (fMemoryManager) 
XSComplexTypeDefinition(&curComplex, this, fMemoryManager);
  -                    fXercesToXSMap->put((void *)&curComplex, xsComplex);
  -                    fComponentMap[XSConstants::TYPE_DEFINITION 
-1]->addElement(xsComplex, xsComplex->getName(), namespaceItem->getSchemaNamespace());
  -
  -                    fDeleteVector->addElement(xsComplex);
  -                }
  +                XSComplexTypeDefinition* xsComplex = 
fObjFactory->addOrFind(&curComplex, this);
  +                fComponentMap[XSConstants::TYPE_DEFINITION 
-1]->addElement(xsComplex, xsComplex->getName(), namespaceItem->getSchemaNamespace());
                   namespaceItem->fComponentMap[XSConstants::TYPE_DEFINITION 
-1]->addElement(xsComplex, xsComplex->getName(), namespaceItem->getSchemaNamespace());
                   namespaceItem->fHashMap[XSConstants::TYPE_DEFINITION -1]->put((void 
*) xsComplex->getName(), xsComplex);                
               }            
  @@ -312,19 +274,14 @@
   
           // Loop through top-level attribute group definitions in the grammar...
           RefHashTableOfEnumerator<XercesAttGroupInfo> attrGroupEnum = 
RefHashTableOfEnumerator<XercesAttGroupInfo> 
(namespaceItem->getSchemaGrammar()->getAttGroupInfoRegistry());
  -      
           while (attrGroupEnum.hasMoreElements())
           {
  -            XercesAttGroupInfo&  curAttrGroup = attrGroupEnum.nextElement();
  +            XercesAttGroupInfo& curAttrGroup = attrGroupEnum.nextElement();
   
               // NOTE: There is no need to store the mapping between 
XercesAttGroupInfo
               //       objects and XSAttributeGroupDefinition objects
  -
  -            XSAttributeGroupDefinition* xsAttrGroupDecl = new (fMemoryManager) 
XSAttributeGroupDefinition(&curAttrGroup, this, fMemoryManager);
  +            XSAttributeGroupDefinition* xsAttrGroupDecl = 
fObjFactory->createXSAttGroupDefinition(&curAttrGroup, this);
               fComponentMap[XSConstants::ATTRIBUTE_GROUP_DEFINITION 
-1]->addElement(xsAttrGroupDecl, xsAttrGroupDecl->getName(), 
namespaceItem->getSchemaNamespace());
  -
  -            fDeleteVector->addElement(xsAttrGroupDecl);
  -
               namespaceItem->fComponentMap[XSConstants::ATTRIBUTE_GROUP_DEFINITION 
-1]->addElement(xsAttrGroupDecl, xsAttrGroupDecl->getName(), 
namespaceItem->getSchemaNamespace());
               namespaceItem->fHashMap[XSConstants::ATTRIBUTE_GROUP_DEFINITION 
-1]->put((void *) xsAttrGroupDecl->getName(), xsAttrGroupDecl);                
           } // end of attribute group loop
  @@ -339,16 +296,13 @@
           NameIdPoolEnumerator<XMLNotationDecl> notationEnum = 
namespaceItem->getSchemaGrammar()->getNotationEnumerator();
           while (notationEnum.hasMoreElements())
           {
  -            XMLNotationDecl& notationDecl = notationEnum.nextElement();            
               // REVISIT: do we need to store mapping between XMLNotationDecl objects 
and
               //          XSNotationDeclaration objects?  PSVIElement may need it to 
               //          get the XSNotationDecl...
  -            XSNotationDeclaration* xsNotationDecl = new (fMemoryManager) 
XSNotationDeclaration(&notationDecl, this, fMemoryManager);
  -            fXercesToXSMap->put((void *)&notationDecl, xsNotationDecl);
  -            fComponentMap[XSConstants::NOTATION_DECLARATION 
-1]->addElement(xsNotationDecl, xsNotationDecl->getName(), 
namespaceItem->getSchemaNamespace());
  -
  -            fDeleteVector->addElement(xsNotationDecl);
  +            XMLNotationDecl& notationDecl = notationEnum.nextElement();            
  +            XSNotationDeclaration* xsNotationDecl = 
fObjFactory->addOrFind(&notationDecl, this);
   
  +            fComponentMap[XSConstants::NOTATION_DECLARATION 
-1]->addElement(xsNotationDecl, xsNotationDecl->getName(), 
namespaceItem->getSchemaNamespace());
               namespaceItem->fComponentMap[XSConstants::NOTATION_DECLARATION 
-1]->addElement(xsNotationDecl, xsNotationDecl->getName(), 
namespaceItem->getSchemaNamespace());
               namespaceItem->fHashMap[XSConstants::NOTATION_DECLARATION 
-1]->put((void *) xsNotationDecl->getName(), xsNotationDecl);                
           } // end of notation loop
  @@ -356,14 +310,13 @@
           // Loop through annotations in the grammar...
           // As annotations are already created as XSAnnotations no need to create 
them
           // or store them in the XercesToXSMap.
  -        XSAnnotation* annot = namespaceItem->getSchemaGrammar()->getAnnotation();   
    
  +        XSAnnotation* annot = namespaceItem->getSchemaGrammar()->getAnnotation();
           while (annot)
           {     
               fXSAnnotationList->addElement(annot);
               namespaceItem->fXSAnnotationList->addElement(annot);
               annot = annot->getNext();        
           } // end of annotation loop
  -
       } // end of namespaceItem loop
   }
   
  @@ -377,9 +330,17 @@
     * @param  manager     The configurable memory manager
     */
   XSModel::XSModel( XSModel *baseModel
  -            , Grammar *grammar
  -            , MemoryManager* const manager ):
  -        fMemoryManager(manager)
  +                , Grammar *grammar
  +                , MemoryManager* const manager)
  +    : fMemoryManager(manager)
  +    , fNamespaceStringList(0)
  +    , fXSNamespaceItemList(0)
  +    , fElementDeclarationVector(0)
  +    , fAttributeDeclarationVector(0)
  +    , fURIStringPool(0)
  +    , fXSAnnotationList(0)
  +    , fHashNamespace(0)
  +    , fObjFactory(0)
   {
   }
   
  @@ -402,40 +363,16 @@
           }
       }
      
  -    delete fXercesToXSMap;
       delete fNamespaceStringList; 
       delete fXSNamespaceItemList;
  -    delete fDeleteVector; 
       delete fXSAnnotationList;
       delete fHashNamespace;
  +    delete fObjFactory;
   }
   
   
   // XSModel methods
   
  -/**
  - * Convenience method. Returns a list of all namespaces that belong to 
  - * this schema. The value <code>null</code> is not a valid namespace 
  - * name, but if there are components that don't have a target namespace, 
  - * <code>null</code> is included in this list. 
  - */
  -StringList *XSModel::getNamespaces()
  -{
  -    return fNamespaceStringList;
  -}
  -
  -/**
  - * A set of namespace schema information information items ( of type 
  - * <code>XSNamespaceItem</code>), one for each namespace name which 
  - * appears as the target namespace of any schema component in the schema 
  - * used for that assessment, and one for absent if any schema component 
  - * in the schema had no target namespace. For more information see 
  - * schema information. 
  - */
  -XSNamespaceItemList *XSModel::getNamespaceItems()
  -{
  -    return fXSNamespaceItemList;
  -}
   
   /**
    * [schema components]: a list of top-level components, i.e. element 
  @@ -469,9 +406,8 @@
   {
       XSNamespaceItem* namespaceItem = fHashNamespace->get(compNamespace);
       if (namespaceItem)
  -    {
           namespaceItem->getComponents(objectType);
  -    }
  +
       return 0;
   }
   
  @@ -495,9 +431,8 @@
   {
       XSNamespaceItem* namespaceItem = fHashNamespace->get(compNamespace);
       if (namespaceItem)
  -    {
           namespaceItem->getElementDeclaration(name);
  -    }
  +
       return 0;
   }
   
  @@ -513,9 +448,8 @@
   {
       XSNamespaceItem* namespaceItem = fHashNamespace->get(compNamespace);
       if (namespaceItem)
  -    {
           namespaceItem->getAttributeDeclaration(name);
  -    }
  +
       return 0;
   }
   
  @@ -532,9 +466,8 @@
   {
       XSNamespaceItem* namespaceItem = fHashNamespace->get(compNamespace);
       if (namespaceItem)
  -    {
           namespaceItem->getTypeDefinition(name);
  -    }
  +
       return 0;
   }
   
  @@ -550,9 +483,8 @@
   {
       XSNamespaceItem* namespaceItem = fHashNamespace->get(compNamespace);
       if (namespaceItem)
  -    {
           namespaceItem->getAttributeGroup(name);
  -    }
  +
       return 0;
   }
   
  @@ -568,9 +500,8 @@
   {
       XSNamespaceItem* namespaceItem = fHashNamespace->get(compNamespace);
       if (namespaceItem)
  -    {
           namespaceItem->getModelGroupDefinition(name);
  -    }
  +
       return 0;
   }
   
  @@ -586,9 +517,8 @@
   {
       XSNamespaceItem* namespaceItem = fHashNamespace->get(compNamespace);
       if (namespaceItem)
  -    {
           namespaceItem->getNotationDeclaration(name);
  -    }
  +
       return 0;
   }
   
  @@ -618,11 +548,11 @@
       return 0;
   }
   
  -
  -XMLStringPool*  XSModel::getURIStringPool()
  +XSNamespaceItem* XSModel::getNamespaceItem(const XMLCh* const key)
   {
  -    return fURIStringPool;
  +    return fHashNamespace->get(key);
   }
  +
   
   XERCES_CPP_NAMESPACE_END
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to