Re: [xsl] Adding entity declarations to DOCTYPE in xml output

Subject: Re: [xsl] Adding entity declarations to DOCTYPE in xml output
From: "Eliot Kimber ekimber@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 26 Feb 2019 19:50:13 -0000
For the record, retaining external and internal text entities in XML was a
mistake. It's something I fought for at the time and now regret every time it
comes up.

The XML community has been wise in forgetting that text entities were ever a
feature.

Cheers,

Eliot
--
Eliot Kimber
http://contrext.com


o;?On 2/26/19, 12:27 PM, "Michele R Combs mrrothen@xxxxxxx"
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:

    Yeah, I was afraid that was the only way to do it :P  Thanks --

    Michele

    -----Original Message-----
    From: Michael Kay mike@xxxxxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
    Sent: Monday, February 25, 2019 4:35 PM
    To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
    Subject: Re: [xsl] Adding entity declarations to DOCTYPE in xml output

    If you're able to use Saxon, consider using the saxon:doctype extension
instruction.

    It can't be done with any version of standard XSLT, except by generating
the DTD "by hand" using disable-output-escaping.

    Michael Kay
    Saxonica

    > On 25 Feb 2019, at 21:15, Michele R Combs mrrothen@xxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
    >
    > Hello collective wisdom -
    >
    > I would like to have several entity declarations in my output XML.
Here's what I currently have in my XSL:
    >
    > <xsl:output
    >   method="xml"
    >   indent="yes"
    >   encoding="utf-8"
    >   exclude-result-prefixes="ns"
    >   omit-xml-declaration="yes"
    >   doctype-system="../ead_dtd/ead.dtd"
    >   doctype-public="+//ISBN 1-931666-00-8//DTD ead.dtd (Encoded Archival
    > Description (EAD) Version 2002)//EN"/>
    >
    >
    > The output XML looks like this:
    >
    > <!DOCTYPE ead PUBLIC "+//ISBN 1-931666-00-8//DTD ead.dtd (Encoded
    > Archival Description (EAD) Version 2002)//EN" "../ead_dtd/ead.dtd">
    >
    >
    > I would like it to look like this:
    >
    > <!DOCTYPE ead PUBLIC "+//ISBN 1-931666-00-8//DTD ead.dtd (Encoded
    > Archival Description (EAD) Version 2002)//EN" "../ead_dtd/ead.dtd" [
    > <!ENTITY sua_name SYSTEM "sua_name.txt"> <!ENTITY sua_address SYSTEM
    > "sua_address.txt"> <!ENTITY subjindex SYSTEM "sua_index.txt"> <!ENTITY
    > summitref SYSTEM "summit_ref.txt"> ]>
    >
    >
    > Is this doable with XSL 1.1?
    >
    > Thanks --
    >
    > Michele
    > +++++++++
    > Michele Combs | Lead Archivist
    > Special Collections Research Center
    > Syracuse University Libraries
    > 222 Waverly Ave
    > Syracuse, New York 13244
    > t 315.443-2081 | e mrrothen@xxxxxxx<mailto:mrrothen@xxxxxxx> | w
    > scrc.syr.edu SYRACUSE UNIVERSITY syr.edu <winmail.dat>

Current Thread