The %key; and %value; parameter entities are declared in the Internal dtd as follows;
<?xml version="1.0"?>
<!DOCTYPE a SYSTEM "c:\Documents and Settings\...\coke.dtd" [
<!ENTITY % key "Coke">
<!ENTITY % value "Good">
<!ELEMENT a (#PCDATA)>]>
<a>&Coke;</a>
There should be no error message here. If <!ENTITY %key; "%value;"> were declared in an internal dtd, then yes, this would be an error. However, because it has been declared in an EXTERNAL dtd it should be fine. In the xml document the a element will contail the text "Good".
I'm using Stylus Studio 5.3/build 179g.
The same error occurs in the Stylus Studio 2006 Release 2 XML Enterprise Edition (evaluation).
Brian Hanrahan
P.S. This example comes coutesy of XML Essentials by Don Box, Aaron Skonnard and John Lam.
Subject:Parse Bug for external dtds Author:Minollo I. Date:10 Apr 2006 02:33 PM
Well, we dug a bit deeper (sections 4.4 and 4.4.8 of the same document I mentioned earlier); and we believe you are right. That syntax should work the way you expect.
Looking at the Apache XercesC code (which is the XML parser that Stylus Studio uses) we believe we have identified the problem; and we will work with the Apache community to address it.
The other validation engines embedded in Stylus Studio that support DTD validation seem to work fine with that syntax.
Hopefully you'll have a 5.3 maintenance release after you fix this.
I tried twice, over several months, to alert your competitor
of this bug, but got absolutely nowhere. I took you guys less than
one day to address it. Great Support.
Subject:Parse Bug for external dtds Author:Minollo I. Date:10 Apr 2006 04:28 PM
Good news is that the problem will be fixed in the coming 2006 Release 2 maintenance update (available later this month).
Bad news is that 5.3 is at this point unsupported (we are 2 releases later); you will be able to try 2006 release 2 for free for two weeks, but eventually you will need to upgrade if you want to keep using it. Feel free to contact stylusstudio@stylusstudio.com for details about the upgrade paths available to you.
If you are interested we can make a pre-release of BL591c (the next 2006 rel 2 maintenance update) available to you quickly.