[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

[xsl] Declaring entities in output XML DOCTYPE


Subject: [xsl] Declaring entities in output XML DOCTYPE
From: Peter Desjardins <peter.desjardins.us@xxxxxxxxx>
Date: Tue, 21 Dec 2010 11:29:34 -0500

Hi. I'm trying to generate olink maps for DocBook publishing and I
need to declare entities like the following in the output XML file.

[
<!ENTITY MyDoc SYSTEM "MyDoc.db">
]

I haven't been able to find a technique for controlling the entity
declarations in the DOCTYPE. Does anyone know a way to do that? I'm
using XSLT 2.0 and Saxon HE 9.2.1.1.

Here are my stylesheet, actual output, and desired output. Thanks for your help!

********************************
My stylesheet
********************************
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE stylesheet [
<!ENTITY MyDoc
"<xsl:text disable-output-escaping='yes'>&amp;MyDoc;</xsl:text>" >
]>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="xml" indent="yes"
doctype-system="http://docbook.sourceforge.net/release/xsl/current/common/targetdatabase.dtd"/>
	<xsl:template match="/">
		<xsl:element name="targetset">
			<xsl:element name="sitemap">
				<xsl:element name="dir">
					<xsl:element name="document">
						<xsl:attribute name="targetdoc">MyDoc</xsl:attribute>
						<xsl:attribute name="baseuri">MyDoc.htm</xsl:attribute>&MyDoc;
					</xsl:element>
				</xsl:element>
			</xsl:element>
		</xsl:element>
	</xsl:template>
</xsl:stylesheet>

********************************
Actual output
********************************

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE targetset
  SYSTEM "http://docbook.sourceforge.net/release/xsl/current/common/targetdatabase.dtd">
<targetset>
   <sitemap>
      <dir>
         <document targetdoc="MyDoc" baseuri="MyDoc.htm">&MyDoc;</document>
      </dir>
   </sitemap>
</targetset>

********************************
Desired output
********************************

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE targetset
  SYSTEM "http://docbook.sourceforge.net/release/xsl/current/common/targetdatabase.dtd"
[
<!ENTITY MyDoc SYSTEM "MyDoc.db">
]>
<targetset>
   <sitemap>
      <dir>
         <document targetdoc="MyDoc" baseuri="MyDoc.htm">&MyDoc;</document>
      </dir>
   </sitemap>
</targetset>


Current Thread
Keywords