How to declare escape character as DTD Entities in external file and import in XML files
Asked Answered
V

1

2

In a web project, I have a lot of XML files with non-escaped characters. I declare these characters as DTD Entities and include the list of declaration internally in each XML file, like so:

!DOCTYPE article SYSTEM "../../pubmedref/archivearticle.dtd" [
   <!ENTITY bull "&#8226;">
   <!ENTITY copy "&#169;">
   ... a long list ...
]>

Is there any way I can have these declarations in an external file and import it in the XML files? The XML files are rendered to the browser using XSLT.

FWIW, I've tried referencing a .ent file but it does not work on any of the browsers.

Varlet answered 10/7, 2015 at 14:47 Comment(0)
D
6

Normally you would use a parameter entity...

XML File

<!DOCTYPE article SYSTEM "../../pubmedref/archivearticle.dtd" [
<!ENTITY % ents SYSTEM "../../pubmedref/entities.ent">
%ents;
]>
<article>...</article>

Entity File (you could have multiple files)

<!ENTITY bull "&#8226;">
<!ENTITY copy "&#169;">

However, most browsers will not resolve an external entity reference so you're stuck with having the entity declarations directly in the internal subset (between [ and ] in your doctype declaration).

Dipsomania answered 10/7, 2015 at 16:41 Comment(4)
I am really shocked. I can't believe this is not supported by the browsers. Any particular reason?Varlet
i stumbled across this old answer for kind of the same reasons. if think this part <!ENTITY ents % should be corrected this way: <!ENTITY % entsBeloved
@MauroPanzeri - Excellent catch! Thank you!Dipsomania
@Varlet > Some browsers(like FireFox and Chrome) have very strict security settings and will not load files entity references and XSLT processing instructions that reference files on the filesystm. > #7784078Arlettaarlette

© 2022 - 2024 — McMap. All rights reserved.