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

Re: Entity Questions

Subject: Re: Entity Questions
From: "Luke Shannon" <lshannon@xxxxxxxxxxxxxxx>
Date: Mon, 17 Jan 2005 18:50:46 -0500
fo root entity
Reading is a good idea. Someone just gave me Jeni Tennison's book. Once I
get past this current snag I definetily need to spend some time reading.

Here is a complete example:

XML (not the whole document):

<?xml version="1.0" encoding="UTF-8"?>
<KCX PAGE="-1" PAGE_LENGTH="-1" ROOT="section4
<DATA>
<VERSION>
<ITEM NAME="TEXT1" TYPE="text">Hurricanes owner feels NHL season is
gone</ITEM>
<ITEM NAME="TEXT2" TYPE="text">
<B>The both sides are so greedy!</B>
<P>I can't even afford to go see a game!</P>
</ITEM>
</VERSION>


XSL: I have only the templates involved in the creation of the document so
it is easier to trace. Each template is in a seperate file.

<xsl:template match="*" mode="_KCXFILE_">
<!-- fo root: all document properties go inside this tag -->
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<!-- configure the page attributes -->
<fo:layout-master-set>
<fo:simple-page-master master-name="simple" page-height="29.7cm"
page-width="21cm" margin-top="1cm" margin-bottom="2cm" margin-left="2.5cm"
margin-right="2.5cm">
<fo:region-before extent="3.5cm"/>
<fo:region-body margin-top="2cm"/>
<fo:region-after extent="1.5cm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<!-- ouput the content -->
<fo:page-sequence master-reference="simple">
<fo:static-content flow-name="xsl-region-before">
<fo:block>
<fo:external-graphic src="url(file:///images/topbanner/mainlogo.gif)"
space-after="1cm"/>
</fo:block>
</fo:static-content>
<xsl:call-template name="s1_pdf"/>
</fo:page-sequence>
</fo:root>
</xsl:template>

<xsl:template name="s1_pdf">
<!-- text 1 -->
<fo:flow flow-name="xsl-region-body">
<fo:block font-family="Helvetica" font-size="12pt" font-weight="bold"
break-after="auto" space-after="10pt" text-align="left">
<xsl:call-template name="text_display_and_edit">
<xsl:with-param name="text_number" select="number('1')" />
</xsl:call-template>
</fo:block>
<!-- text 2 -->
<fo:block font-family="Helvetica" font-size="12pt" font-weight="normal"
text-align="left">
<xsl:call-template name="text_display_and_edit">
<xsl:with-param name="text_number" select="number('2')" />
</xsl:call-template>
</fo:block>
</fo:flow>
</xsl:template>

<!-- the next three templates are in the same file -->
<!-- the output type for this file is <xsl:output method="xml"
media-type="text/html"/> -->

<xsl:template name="text_display_and_edit">
<xsl:param name="text_number" />
<xsl:param name="textname" select="concat('TEXT',$text_number)" />
<xsl:if test="DATA/VERSION/ITEM[@NAME=$textname] !=''" >
<xsl:value-of select="DATA/VERSION/ITEM[@NAME=$textname]"/>
</xsl:if>
</xsl:template>

<xsl:template match="P">
<fo:inline>
<xsl:apply-templates/>
</fo:inline>
</xsl:template>

<xsl:template match="B">
<fo:inline font-weight="bold">
<xsl:apply-templates/>
</fo:inline>
</xsl:template>


Desired Document:

<?xml version="1.0" encoding="UTF-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master margin-right="2.5cm" margin-left="2.5cm"
margin-bottom="2cm" margin-top="1cm" page-width="21cm"
page-height="29.7cm" master-name="simple">
<fo:region-before extent="3.5cm"/>
<fo:region-body margin-top="2cm"/>
<fo:region-after extent="1.5cm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="simple">
<fo:static-content flow-name="xsl-region-before">
<fo:block text-align="left" space-after="10pt"
break-after="auto" font-weight="bold"
font-size="12pt" font-family="Arial">
Hurricanes owner feels NHL season is
gone</fo:block>
<fo:block text-align="left" space-after="10pt"
break-after="auto" font-weight="normal"
font-size="12pt" font-family="Arial">
<fo:inline font-weight="bold">The both sides are so greedy!</fo:inline>
<fo:inline>I can't even afford to go see a game!</fo:inline>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>

Thanks,

Luke

----- Original Message ----- 
From: "Michael Kay" <mike@xxxxxxxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Monday, January 17, 2005 6:19 PM
Subject: RE:  Entity Questions


> >
> > I tested adding the match="P" template. I didn't replace
> > anything. I think
> > this might be because I changed the output method to xml to deal with
> > entities like &nbsp;
> >
> > I am thinking the <P> tags are now &lt;P&gt; so the template
> > is not matching
> > them. I am adding some logging to verify this, if this is the
> > case I may
> > need to rethink things.
>
> Try to reduce the size of the problem, and post a complete specimen
> including source XML, desired result, and stylesheet. Then we can see
where
> you're going wrong. You're not grasping some of the concepts: you're still
> talking about tags rather than nodes, and thinking of the input and output
> as text rather than trees. It might be a good idea to do some reading.
>
> Michael Kay
> http://www.saxonica.com/

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.