Subject: Re: [xsl] Copy the Document Type Definition of XML file From: Andrew Welch <andrew.j.welch@xxxxxxxxx> Date: Tue, 15 Dec 2009 09:42:13 +0000 |
2009/12/15 Rossen Kovachev <kovachev@xxxxxxxx>: > Hi! > > I'm trying to copy resp. to modify an XML document via XSL. Here I use > the usual identity template: > > <xsl:template match="@*|node()"> > <xsl:copy> > <xsl:apply-templates select="@*|node()"/> > </xsl:copy> > </xsl:template> > > Unfortunately the DTD definition of the source document is not copied at > this way. > > Does anybody know how can I accomplish this? I would say that unless you absolutely have to, don't bother. If you need the XML validated again at a subsequent step then do it in that step, rather than each and every time the XML is parsed... If you do really have to :) then you could use LexEv (http://andrewjwelch.com/lexev/) which will add the values as processing instructions to the input, for example: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> will become: <?doctype-public -//W3C//DTD XHTML 1.0 Transitional//EN?> <?doctype-system http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd?> which you can then use like this: <xsl:result-document doctype-public="{processing-instruction('doctype-public')}" doctype-system="{processing-instruction('doctype-system')}"> LexEv is also part of Kernow, so to try this out just enable it in the options. -- Andrew Welch http://andrewjwelch.com Kernow: http://kernowforsaxon.sf.net/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Copy the Document Type De, David Carlisle | Thread | [xsl] extension functions returning, Brian Newman |
Re: [xsl] Copy the Document Type De, David Carlisle | Date | RE: [xsl] Trying to understand XSLT, Michael Kay |
Month |