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

Re: Preserving inline DTD

Subject: Re: Preserving inline DTD
From: Graydon <graydon@xxxxxxxxx>
Date: Mon, 27 Jan 2014 18:56:01 -0500
Re:  Preserving inline DTD
On Mon, Jan 27, 2014 at 03:35:33PM -0800, Martin Holmes scripsit:
> On 14-01-27 03:33 PM, David Carlisle wrote:
> >On 27/01/2014 23:26, Piotr Fusik wrote:
> >>How do I make xsltproc preserve the DTD that is in the input XML ?
> >
> >Unless it has a non-standard extension (which I don't recall is the
> >case) then this is not possible. Standard XSLT can not do this as the
> >DTD is expanded out by the XML parser and not reported to XSLT which
> >just sees a tree of element text and attribute nodes.
> 
> Couldn't the XSLT re-read the source document as text, using the
> document() function, and recover the DTD section with string
> manipulation?

document() will insist on parsing the document, so I don't think so, no.  

If you have unparsed-text() (which xsltproc won't because it's XSLT 1.0)
you can do that to get the contents of the DOCTYPE declaration.

If it will always be the same DTD, or you know what DTD it will be at
run time, you can get the xsl:output to create a DOCTYPE declaration in
the result document by setting the doctype-public and possibly
doctype-system attributes on xsl:output to the values you want, which
might have been what the original question was about.

-- Graydon

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.