Hi all,

I've been stumped for this for some time now. I need to include some character entities that I have in a separate DTD. As far as my knowledge about XML goes, it should be straightforward. Just suppose I have a DTD called t.dtd containing one line:
<!ENTITY test "TEST">

Get an inkscape SVG, add an extra namespace and insert the entity:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   (...)
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   xmlns:chrtr="t.dtd"
   (...)>
 (...)
 <text (...)>
   <tspan (...)>
        &test;
   </tspan>
 </text>
(...)
</svg>
(N.B. Large parts removed for readability)

Well, this doesn't load in inkscape (no reason given). After A LOT of experimentation I found that this actually loads as I want it in Inkscape 0.44 (Linux):
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg [
      <!ENTITY % getme SYSTEM "t.dtd">
      %getme;
      ]>

<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   (...)
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   xmlns:chrtr="t.dtd"
   (...)>
 (...)
 <text (...)>
   <tspan (...)>
        &test;
   </tspan>
 </text>
(...)
</svg>

Which is, I believe, a piece of incorrectly formed XML. The equivalent <!DOCTYPE svg SYSTEM "t.dtd"> doesn't work, which is odd. But somehow the entity is ignored in Inkscape 0.45 (windows). I don't know if it is the version or the OS. At the moment I have something that works therefore I'm not finding out.

Could somebody please shed some light on this?