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]