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] [EMAIL PROTECTED]

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

Reply via email to