This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: ?XSL & XML inside one file
- To: serg_stone at iname dot com
- Subject: RE: ?XSL & XML inside one file
- From: Jeni Tennison <jeni at friday dot u-net dot com>
- Date: Thu, 27 Jul 2000 18:48:05 +0100
- Cc: xsl-list at mulberrytech dot com
- Reply-To: xsl-list at mulberrytech dot com
Serg,
>Is it possible to write XML and XSL stylesheet not in different files
>but in one?
This is covered in the XSLT Recommendation at
http://www.w3.org/TR/xslt#section-Embedding-Stylesheets. You can embed a
stylesheet within an XML document, but you still need to use the
xml-stylesheet processing instruction to *use* it for that document.
Here is a skeletal XML document with an embedded stylesheet that you can
expand:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xml" href="#stylesheet"?>
<!DOCTYPE doc [
<!ATTLIST xsl:stylesheet
id ID #REQUIRED>
]>
<doc>
<xsl:stylesheet id="stylesheet"
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- any xsl:import elements -->
<xsl:template match="xsl:stylesheet" />
<!-- rest of your stylesheet -->
</xsl:stylesheet>
<!-- rest of your XML document -->
</doc>
There are two things particularly of note.
Firstly, you have to have a DTD that defines the xsl:stylesheet element as
having an 'id' attribute of type ID - otherwise the 'href' pseudo-attribute
in the xml-stylesheet processing instruction won't be able to find the
stylesheet.
Secondly, you should almost certainly have a template matching
xsl:stylesheet that does nothing so that the stylesheet is ignored when it
runs - otherwise it will try to run on itself.
I hope this helps,
Jeni
Dr Jeni Tennison
Epistemics Ltd * Strelley Hall * Nottingham * NG8 6PE
tel: 0115 906 1301 * fax: 0115 906 1304 * email: jeni.tennison@epistemics.co.uk
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list