#19562 [Com]: xml_parse_into_struct does not follow XML 1.0 specs w.r.t. default attributes
| From: | qwer70019 at hotmail dot com | Date: | Mon, 26 Jul 2004 15:55:36 +0000 |
| Subject: | #19562 [Com]: xml_parse_into_struct does not follow XML 1.0 specs w.r.t. default attributes | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-63572@lists.php.net to get a copy of this message | ||
ID: 19562
Comment by: qwer70019 at hotmail dot com
Reported By: mmicu at voyanttech dot com
Status: Closed
Bug Type: XML related
Operating System: Solaris 2.8
PHP Version: 4.2.3
New Comment:
hamad
Previous Comments:
------------------------------------------------------------------------
[2002-11-28 07:30:35] chregu@php.net
xml_parse_into_struct uses expat as xml-parser and expat is a
non-validating parser which does not care about DTDs (AFAIK)
chregu
------------------------------------------------------------------------
[2002-09-23 13:21:52] mmicu at voyanttech dot com
XML 1.0 specs say that default attribute values will be parsed as if
those attributes were directly specified:
From the XML 1.0 Spec
(http://www.w3.org/TR/2000/REC-xml-20001006#attdecls)
"[Definition: If the declaration is neither #REQUIRED nor #IMPLIED,
then the AttValue value contains the declared default value; the #FIXED
keyword states that the attribute must always have the default value. If
a default value is declared, when an XML processor encounters an omitted
attribute, it is to behave as though the attribute were present with the
declared default value.]"
I have the following DTD:
<!ELEMENT J ...>
<!ATTLIST J att #FIXED 20>
and the following XML:
<J>
...
</J>
The xml_parse_into_struct function does NOT place the attribute
"att=20" into the struct. Furthermore, if I change the XML to read:
<J att=45>
...
</J>
xml_parse_into_struct WILL place the attribute "att=45" into the struct
(so non-default attributes DO work), but in actuality, this should fail,
because the #FIXED keyword specifies that the value cannot be changed.
-MM
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=19562&edit=1