ID:               19562
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
-Status:           Open
+Status:           Closed
 Bug Type:         XML related
 Operating System: Solaris 2.8
 PHP Version:      4.2.3
 New Comment:

xml_parse_into_struct uses expat as xml-parser and expat is a
non-validating parser which does not care about DTDs (AFAIK)

chregu


Previous Comments:
------------------------------------------------------------------------

[2002-09-23 13:21:52] [EMAIL PROTECTED]

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