This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: XSLT/FO Newbie Question
- From: "Stuart Celarier" <stuart at ferncrk dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Mon, 20 May 2002 09:32:27 -0700
- Subject: RE: [xsl] XSLT/FO Newbie Question
- Reply-to: xsl-list at lists dot mulberrytech dot com
Scott, you have declared the XML namespace prefix 'xsl' on the document
(root) element, so it is in scope within the <xsl:stylesheet> element.
However you have declared the 'fo' namespace prefix only on the
<fo:root> element within the <xsl:template match="/"> element, so it is
only in scope within that element. To make the 'fo' namespace prefix
visible throughout the stylesheet, move the declaration to the
<xsl:stylesheet> element.
This is basic XML namespace stuff, covered in any XML textbook or
tutorial on the topic, or see the specification [1].
If you want to suppress namespace declarations in the output of an XSLT
transformation, see exclude-result-prefixes at [2].
Cheers,
Stuart
[1] http://www.w3.org/TR/REC-xml-names/
[2] http://www.w3.org/TR/xslt#stylesheet-element
-----Original Message-----
From: owner-xsl-list@lists.mulberrytech.com
[mailto:owner-xsl-list@lists.mulberrytech.com] On Behalf Of Scott
Meadows
Sent: Monday, May 20, 2002 09:06
To: XSL-List@lists.mulberrytech.com
Subject: [xsl] XSLT/FO Newbie Question
I'm trying to create a simple XSL-FO document, but the following code
produces a syntax error when I try to view it in IE.
Error: reference to undeclared namespace
The resulting FO document also adds xmlns:fo="" to each of the prefixed
block elements. I'm assuming these problems are one and the same
(something
to do with my fo:block nesting), but I don't know enough about XSLT and
namespaces to understand how to correct it.
Can anybody help me with this one?
----------------------
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"/>
<xsl:template match="/">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="II_18">
<fo:region-body margin-left=".5in" margin-right=".5in"
margin-top="1in" margin-bottom="1in"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-name="II_18">
<fo:flow flow-name="xsl-region-body">
<xsl:apply-templates/>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
<xsl:template match="chapter">
<fo:block
space-after.optimum="10pt"
font-weight="bold"
font-size="12pt"
text-align="center">
<xsl:value-of select="."/>
</fo:block>
</xsl:template>
<xsl:template match="title">
<fo:block
space-after.optimum="10pt"
font-weight="bold"
font-size="16pt"
text-align="center">
<xsl:value-of select="."/>
</fo:block>
</xsl:template>
<xsl:template match="para">
<fo:block
text-align="left"
font-size="10px"
font-family="Helvetica">
<xsl:value-of select="."/>
</fo:block>
</xsl:template>
</xsl:stylesheet>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list