From: andrew at operationaldynamics dot com
Operating system: Gentoo Linux
PHP version: 4.3.2
PHP Bug Type: XML related
Bug description: Sablotron incorrectly erroring on DOCTYPE SYSTEM http

When using the Sablotron XSLT processor, it would not let me reference a
SYSTEM DTD via http. I was using:

<!DOCTYPE plan SYSTEM "plan.dtd">

just fine, but when I needed to make the reference not rely on my location
on the filesystem, I switched to this:

<!DOCTYPE plan SYSTEM "http://goals/plan.dtd">

which no longer worked. Error below.

Reproduce code:
Calling PHP code:

xslt_process($xh, $srcfile, $xslfile, $outfile)

Expected result:
http references should work in SYSTEM declarations!

Actual result:
Warning: Sablotron error on line 1: XML pr error 4: not well-formed
(invalid token) in /home/andrew/Sites/local/goals/goalsDriver.php on line


By changing the DOCTYPE line to

<!DOCTYPE plan PUBLIC "-" "http://goals/plan.dtd">

It worked exactly as expected. I looked around, and saw many W3C examples
which used SYSTEM in conjunction with an http method.

The PUBLIC specification is only supposed to be used when one has done the
right thing in naming a public DTD (ie, "-" isn't really an appropriate

Methinks that this is an upstream bug in Sablotron.


Edit bug report at [url][/url]
Try a CVS snapshot (php4): [url][/url]
Try a CVS snapshot (php5): [url][/url]
Fixed in CVS: [url][/url]
Fixed in release: [url][/url]
Need backtrace: [url][/url]
Try newer version: [url][/url]
Not developer issue: [url][/url]
Expected behavior: [url][/url]
Not enough info: [url][/url]
Submitted twice: [url][/url]
register_globals: [url][/url]
PHP 3 support discontinued: [url][/url]
Daylight Savings: [url][/url]
IIS Stability: [url][/url]
Install GNU Sed: [url][/url]
Floating point limitations: [url][/url]