neilg 2003/11/23 21:14:18
Modified: c/src/xercesc/parsers AbstractDOMParser.cpp
Log:
change the way DOMTypeInfo for attributes is implemented so that it is stateless
Revision Changes Path
1.56 +4 -38 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.55
retrieving revision 1.56
diff -u -r1.55 -r1.56
--- AbstractDOMParser.cpp 21 Nov 2003 22:38:50 -0000 1.55
+++ AbstractDOMParser.cpp 24 Nov 2003 05:14:18 -0000 1.56
@@ -898,35 +898,7 @@
attr->setSpecified(oneAttrib->getSpecified());
- XMLAttDef *attDef = 0;
- if(defAttrs != 0)
- attDef = defAttrs->findAttDef(attrURIId, oneAttrib->getQName());
-
- if(attDef != 0) {
- attr->setTypeInfo(attDef->getDOMTypeInfoName(),
attDef->getDOMTypeInfoUri());
- attDef->reset();
- }
- else {
- const XMLCh *name = oneAttrib->getName();
- if (XMLString::equals(oneAttrib->getPrefix(), XSI)) {
- if(XMLString::equals(name, SchemaSymbols::fgXSI_TYPE)) {
- attr->setTypeInfo(SchemaSymbols::fgDT_QNAME,
SchemaSymbols::fgURI_SCHEMAFORSCHEMA);
- }
- else if(XMLString::equals(name, SchemaSymbols::fgATT_NILL)) {
- attr->setTypeInfo(SchemaSymbols::fgDT_BOOLEAN,
SchemaSymbols::fgURI_SCHEMAFORSCHEMA);
- }
- else if(XMLString::equals(name,
SchemaSymbols::fgXSI_NONAMESPACESCHEMALOCACTION)) {
- attr->setTypeInfo(SchemaSymbols::fgDT_ANYURI,
SchemaSymbols::fgURI_SCHEMAFORSCHEMA);
- }
- }
- 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);
- }
- }
+ attr->setTypeInfo(oneAttrib->getValidatingTypeName(),
oneAttrib->getValidatingTypeURI());
}
}
else { //DOM Level 1
@@ -954,14 +926,7 @@
attr->fNode.isIdAttr(true);
}
- XMLAttDef *attDef = 0;
- if(defAttrs != 0)
- attDef = defAttrs->findAttDef(oneAttrib -> getURIId(),
oneAttrib->getQName());
-
- if(attDef != 0) {
- attr->setTypeInfo(attDef->getDOMTypeInfoName(),
attDef->getDOMTypeInfoUri());
- attDef->reset();
- }
+ attr->setTypeInfo(oneAttrib->getValidatingTypeName(),
oneAttrib->getValidatingTypeURI());
}
}
@@ -1033,6 +998,7 @@
}
}
+ // REVISIT: this won't work in multithreaded code...
insertAttr->setTypeInfo(attr->getDOMTypeInfoName(),
attr->getDOMTypeInfoUri());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]