>Hi,
>   In the attached file I am giving a repeated attr declaration for a1, so
> the first a1 should be chosen and second one ignored, however in this case
> the second attr is being considered and in the start element ns callback >
I am getting a default attribute, which in this case I should not get, since
> a1 should be treated as #IMPLIED, instead it is being treated as #FIXED. >
So I think the problem of the repeated attr declaration in which the second
> attr value is being considered still exists.....
For the above problem I am attaching a patch, but I am not sure whether it
is correct, I might have missed out some flow in which the patch might not
work or cause some problems. I am checking using the hash scan to check if
an attr is being repeated , and in case it is then I return from there
before adding the default attributes, this testcase is passing along with
some other combinations that I tried. Please let me know if this is correct.
Thanks!!
Regards
Ashwin
<!DOCTYPE doc [
<!ATTLIST doc a1 NMTOKENS " 1  	2 	">
<!ELEMENT doc (#PCDATA)>
]>
<doc></doc>
*** orgparser.c 2008-02-27 18:13:22.000000000 -0800
--- parserdefattrfix.c  2008-02-27 18:16:23.626432352 -0800
*************** xmlAddDefAttrs(xmlParserCtxtPtr ctxt,
*** 878,883 ****
--- 878,889 ----
      const xmlChar *name;
      const xmlChar *prefix;
  
+     if (ctxt->attsSpecial != NULL)
+     {
+         if (xmlHashLookup2(ctxt->attsSpecial, fullname, fullattr) != NULL)
+         return;
+     }
+ 
      if (ctxt->attsDefault == NULL) {
          ctxt->attsDefault = xmlHashCreateDict(10, ctxt->dict);
        if (ctxt->attsDefault == NULL)
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to