xsl-list
[Top] [All Lists]

Re: [xsl] Copy the Document Type Definition of XML file

2009-12-15 04:42:37
2009/12/15 Rossen Kovachev <kovachev(_at_)dosco(_dot_)de>:
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/

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>