gareth 2003/08/22 01:42:34
Modified: c/src/xercesc/parsers AbstractDOMParser.cpp
Log:
Not all unknown attributes are faulted in. In these cases the DOMTypeINfo should
report AnySimpleType, not AnyURI as they were.
Revision Changes Path
1.50 +9 -3 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.49
retrieving revision 1.50
diff -u -r1.49 -r1.50
--- AbstractDOMParser.cpp 20 Aug 2003 22:15:29 -0000 1.49
+++ AbstractDOMParser.cpp 22 Aug 2003 08:42:34 -0000 1.50
@@ -836,8 +836,11 @@
const XMLAttr* oneAttrib = attrList.elementAt(index);
unsigned int attrURIId = oneAttrib -> getURIId();
namespaceURI = 0;
- if (XMLString::equals(oneAttrib -> getName(), XMLNS)) //for xmlns=...
+ bool foundXMLNS = false;
+ if (XMLString::equals(oneAttrib -> getName(), XMLNS)) { //for
xmlns=...
attrURIId = fScanner->getXMLNSNamespaceId();
+ foundXMLNS = true;
+ }
if (attrURIId != fScanner->getEmptyNamespaceId()) { //TagName has a
prefix
namespaceURI = fScanner->getURIText(attrURIId); //get namespaceURI
}
@@ -887,9 +890,12 @@
attr->setTypeInfo(SchemaSymbols::fgDT_ANYURI,
SchemaSymbols::fgURI_SCHEMAFORSCHEMA);
}
}
- else {
+ else if(foundXMLNS || XMLString::equals(oneAttrib->getPrefix(),
XMLUni::fgXMLNSString)){
//for normal ns attrs
attr->setTypeInfo(SchemaSymbols::fgDT_ANYURI,
SchemaSymbols::fgURI_SCHEMAFORSCHEMA);
+ }
+ else {
+ attr->setTypeInfo(SchemaSymbols::fgDT_ANYSIMPLETYPE,
SchemaSymbols::fgURI_SCHEMAFORSCHEMA);
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]