tng         2002/09/05 07:35:31

  Modified:    c/src/xercesc/parsers AbstractDOMParser.cpp
  Log:
  [Bug 12275] DOMCount -n gives DOM Error
  
  Revision  Changes    Path
  1.22      +12 -5     xml-xerces/c/src/xercesc/parsers/AbstractDOMParser.cpp
  
  Index: AbstractDOMParser.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/parsers/AbstractDOMParser.cpp,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- AbstractDOMParser.cpp     19 Aug 2002 14:39:57 -0000      1.21
  +++ AbstractDOMParser.cpp     5 Sep 2002 14:35:31 -0000       1.22
  @@ -616,6 +616,9 @@
   {
       DOMElement     *elem;
       DOMElementImpl *elemImpl;
  +    static const XMLCh XMLNS[] = {
  +    chLatin_x, chLatin_m, chLatin_l, chLatin_n, chLatin_s, chNull
  +    };
   
       if (fScanner -> getDoNamespaces()) {    //DOM Level 2, doNamespaces on
   
  @@ -639,9 +642,6 @@
           elem = createElementNSNode(namespaceURI, elemQName.getRawBuffer());
           elemImpl = (DOMElementImpl *) elem;
           for (unsigned int index = 0; index < attrCount; ++index) {
  -            static const XMLCh XMLNS[] = {
  -            chLatin_x, chLatin_m, chLatin_l, chLatin_n, chLatin_s, chNull
  -            };
               const XMLAttr* oneAttrib = attrList.elementAt(index);
               unsigned int attrURIId = oneAttrib -> getURIId();
               namespaceURI = 0;
  @@ -735,8 +735,15 @@
                           XMLBuffer& nameBuf = bbQName.getBuffer();
                           unsigned int uriId = fScanner->resolveQName(qualifiedName, 
nameBuf, prefixBuf, ElemStack::Mode_Attribute);
   
  +                        const XMLCh* namespaceURI = 0;
  +                        if (!XMLString::compareString(qualifiedName, XMLNS))    
//for xmlns=...
  +                            uriId = fScanner->getXMLNSNamespaceId();
  +                        if (uriId != fScanner->getEmptyNamespaceId()) {  //TagName 
has a prefix
  +                            namespaceURI = fScanner->getURIText(uriId);
  +                         }
  +
                           insertAttr = (DOMAttrImpl *) fDocument->createAttributeNS(
  -                           fScanner->getURIText(uriId),     // NameSpaceURI
  +                           namespaceURI,     // NameSpaceURI
                              qualifiedName);   // qualified name
   
                           DOMNode* remAttr = 
elemImpl->setDefaultAttributeNodeNS(insertAttr);
  
  
  

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

Reply via email to