Bug #67350 [NEW]: An XML DTD with an external parameter failes to include the subset
| From: | rjlaustin at teksavvy dot com | Date: | Wed, 28 May 2014 02:10:26 +0000 |
| Subject: | Bug #67350 [NEW]: An XML DTD with an external parameter failes to include the subset | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-185941@lists.php.net to get a copy of this message | ||
From: rjlaustin at teksavvy dot com
Operating system: Linux
PHP version: 5.4.28
Package: DOM XML related
Bug Type: Bug
Bug description:An XML DTD with an external parameter failes to include the subset
Description:
------------
This problem occurs on two Linux systems where my code is used but over
which I have no control and limited information. One is on version
5.4.28, built May 5 2014, the other is on 5.5.3-1, built April 4 2014.
The problem did not occur on whatever versions they were running before
last week.
The validation of XML against a DTD fails, complaining that one or more
entities has no declaration. The message is:
DOMDocument::validate(): No declaration for element xxxx
All the elements complained of are in subsets that are (or rather were,
because I have had to change them all) included in the outer DTD by
means of the external parameter notation, e.g.
<!ENTITY % theatre SYSTEM "theatre.dtd">
later followed by
%theatre;
It appears that the contents of (in this case) "theatre.dtd" are simply
lost.
Putting the contents of the file inline in the outer DTD is a successful
workaround.
I have tested the latest Mac version of PHP available from XAMPP (5.5.11
built April 9) and it does NOT have this bug.
Since I have to support my code on any system, even if this problem gets
fixed I will never be able to use this feature again because I will
never know when a all the potential users have moved up to the fixed
release. It's an annoying loss of a convenient feature but it isn't a
show-stopper.
Test script:
---------------
I'm afraid I am not in a position to ask the people who got the problem
to restore their code so as to demonstrate it now. And I haven't got a
system of my own that displays the problem. A fix will be of no use to
me now, but if there is interest in getting it fixed and you need more
documentation I could probably work up a little demonstration script.
--
Edit bug report at https://bugs.php.net/bug.php?id=67350&edit=1
--
Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=67350&r=trysnapshot54
Try a snapshot (PHP 5.5): https://bugs.php.net/fix.php?id=67350&r=trysnapshot55
Try a snapshot (trunk): https://bugs.php.net/fix.php?id=67350&r=trysnapshottrunk
Fixed in SVN: https://bugs.php.net/fix.php?id=67350&r=fixed
Fixed in release: https://bugs.php.net/fix.php?id=67350&r=alreadyfixed
Need backtrace: https://bugs.php.net/fix.php?id=67350&r=needtrace
Need Reproduce Script: https://bugs.php.net/fix.php?id=67350&r=needscript
Try newer version: https://bugs.php.net/fix.php?id=67350&r=oldversion
Not developer issue: https://bugs.php.net/fix.php?id=67350&r=support
Expected behavior: https://bugs.php.net/fix.php?id=67350&r=notwrong
Not enough info: https://bugs.php.net/fix.php?id=67350&r=notenoughinfo
Submitted twice: https://bugs.php.net/fix.php?id=67350&r=submittedtwice
register_globals: https://bugs.php.net/fix.php?id=67350&r=globals
PHP 4 support discontinued: https://bugs.php.net/fix.php?id=67350&r=php4
Daylight Savings: https://bugs.php.net/fix.php?id=67350&r=dst
IIS Stability: https://bugs.php.net/fix.php?id=67350&r=isapi
Install GNU Sed: https://bugs.php.net/fix.php?id=67350&r=gnused
Floating point limitations: https://bugs.php.net/fix.php?id=67350&r=float
No Zend Extensions: https://bugs.php.net/fix.php?id=67350&r=nozend
MySQL Configuration Error: https://bugs.php.net/fix.php?id=67350&r=mysqlcfg