knoaman     2002/07/30 06:26:56

  Modified:    c/src/xercesc/parsers AbstractDOMParser.cpp
  Log:
  Create default attributes with the namespace URI mapped to the
  attributes' prefixes.
  
  Revision  Changes    Path
  1.16      +6 -34     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.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- AbstractDOMParser.cpp     26 Jul 2002 20:30:48 -0000      1.15
  +++ AbstractDOMParser.cpp     30 Jul 2002 13:26:56 -0000      1.16
  @@ -724,42 +724,14 @@
                           // So as long as the XML parser doesn't do it, it needs to
                           // done here.
                           const XMLCh* qualifiedName = attr->getFullName();
  -                        int index = 
DOMDocumentImpl::indexofQualifiedName(qualifiedName);
  -
  +                        XMLBufBid bbPrefixQName(&fBufMgr);
                           XMLBufBid bbQName(&fBufMgr);
  -                        XMLBuffer& buf = bbQName.getBuffer();
  -                        static const XMLCh XMLNS[] = {
  -                            chLatin_x, chLatin_m, chLatin_l, chLatin_n, chLatin_s, 
chNull};
  -
  -                        if (index > 0) {
  -                            // there is prefix
  -                            // map to XML URI for all cases except when prefix == 
"xmlns"
  -                            XMLCh* prefix;
  -                            XMLCh temp[1000];
  -
  -                            if (index > 999)
  -                                prefix = new XMLCh[index+1];
  -                            else
  -                                prefix = temp;
  -
  -                            XMLString::subString(prefix ,qualifiedName, 0, index);
  -
  -                            if (!XMLString::compareString(prefix,XMLNS))
  -                                buf.append(XMLUni::fgXMLNSURIName);
  -                            else
  -                                buf.append(XMLUni::fgXMLURIName);
  -
  -                            if (index > 999)
  -                                delete prefix;
  -                        }
  -                        else {
  -                            //   No prefix
  -                            if (!XMLString::compareString(qualifiedName,XMLNS))
  -                                buf.append(XMLUni::fgXMLNSURIName);
  -                        }
  +                        XMLBuffer& prefixBuf = bbPrefixQName.getBuffer();
  +                        XMLBuffer& nameBuf = bbQName.getBuffer();
  +                        unsigned int uriId = fScanner->resolveQName(qualifiedName, 
nameBuf, prefixBuf, ElemStack::Mode_Attribute);
   
                           insertAttr = (DOMAttrImpl *) fDocument->createAttributeNS(
  -                           buf.getRawBuffer(),     // NameSpaceURI
  +                           fScanner->getURIText(uriId),     // 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