#19562 [Opn->Csd]: xml_parse_into_struct does not follow XML 1.0 specs w.r.t. default attributes

From: Date: Thu, 28 Nov 2002 13:30:35 +0000
Subject: #19562 [Opn->Csd]: 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-26089@lists.php.net to get a copy of this message
ID: 19562 Updated by: chregu@php.net Reported By: mmicu@voyanttech.com -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] mmicu@voyanttech.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

« previous php.bugs (#26089) next »