[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: saxon:output doctype inherits xsl:output doctype

Subject: RE: saxon:output doctype inherits xsl:output doctype
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 3 Oct 2006 08:47:41 +0100
xsl output doctype xhtml
I don't think there's a solution to this, though it's so long since I worked
with Saxon 6.5.5 that I may have forgotten something. I'd suggest moving to
Saxon 8.x and xsl:result-document, which gives you much more control; you're
also on much more secure ground using a standard XSLT 2.0 feature rather
than a vendor extension in a 1.0 product that isn't being developed any
further.

(The issue here is that doctype-system and doctype-public, unlike other
serialization attributes, have no way to specify the default value "absent"
by means of explicit syntax. The problem still exists in 2.0 with
xsl:result-document, but you can avoid it by using named output
definitions). 

Michael Kay
http://www.saxonica.com/
 

> -----Original Message-----
> From: Bob Stayton [mailto:bobs@xxxxxxxxxxxx] 
> Sent: 03 October 2006 01:24
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject:  saxon:output doctype inherits xsl:output doctype
> 
> Perhaps this has come up before, but I couldn't find it in 
> the archives.
> 
> I have an XSL stylesheet that I'm processing with Saxon 
> 6.5.5.  It's xsl:output includes doctype-public and 
> doctype-system to generate XHTML output with a correct 
> DOCTYPE declaration.  In the stylesheet I'm also using the 
> extension element saxon:output to generate a separate XML 
> file that is not XHTML, and should actually have no DOCTYPE 
> declaration because it is intended to be used as a system entity file.
> 
> I have found that saxon:output seems to inherit the 
> doctype-public and doctype-system from the xsl:output 
> element.  If my separate file had its own doctype, I could 
> override those by specifying the attributes on saxon:output.  
> But I need to it to have no DOCTYPE.  I've tried every 
> combination I could think of, but I can't turn off the 
> inherited doctype-public and doctype-system inherited from 
> the xsl:output element of the stylesheet.
> 
> Here is a boiled down stylesheet:
> 
> <?xml version="1.0"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>                 xmlns:saxon="http://icl.com/saxon"
>                 extension-element-prefixes="saxon"
>                 exclude-result-prefixes="saxon"
>                 version="1.0">
> 
> <xsl:output method="xml" doctype-public="FOO" doctype-system="BAR"/>
> 
> <xsl:template match="/*">
>   <section>
>     <xsl:apply-templates/>
>   </section>
>   <saxon:output href="side.out">
>     <appendix>
>       <xsl:apply-templates/>
>     </appendix>
>   </saxon:output>
> </xsl:template>
> 
> </xsl:stylesheet>
> 
> With this small sample input file:
> 
> <?xml version="1.0"?>
> <text>Some text</text>
> 
> The main output file has the doctypes from xsl:output:
> 
> <?xml version="1.0" encoding="utf-8"?>
> <!DOCTYPE section
>   PUBLIC "FOO" "BAR">
> <section>Some text</section>
> 
> The side.out output file also has these doctypes:
> 
> <?xml version="1.0" encoding="utf-8"?>
> <!DOCTYPE appendix
>   PUBLIC "FOO" "BAR">
> <appendix>Some text</appendix>
> 
> If I change the stylesheet to use:
> 
> <saxon:output href="side.out" doctype-public="" doctype-system="">
> 
> Then the side.out contains:
> 
> <?xml version="1.0" encoding="utf-8"?>
> <!DOCTYPE appendix
>   PUBLIC "" "">
> <appendix>Some text</appendix>
> 
> Is there any way to tell saxon:output to not inherit from xsl:output?
> 
> Bob Stayton
> Sagehill Enterprises
> DocBook Consulting
> bobs@xxxxxxxxxxxx

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.