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

again lookup table

Subject: again lookup table
From: Alexander.RACHER@xxxxxxxx
Date: Tue, 16 May 2006 17:39:43 +0200
lookup table
hi,
i'm using xslt 1.0 with apache fop 0.92.
i'm new to xslt / xsl-fo and until now everthing worked quite well, but
this lookup table makes me desperate...

here the xml-source dakl.xml:

 <?xml version="1.0" encoding="ISO-8859-1"?>
 <seife>
  <at.sds.xc.reportService.ReportDaten>
  </at.sds.xc.reportService.ReportDaten>
  <at.sds.xc.positionsreports.DaklOutput>
    [...]
    <einzelPositionList arraySize="10">
         <element>
                <positionsDaten>
                        <positSaldoGilt>19998</positSaldoGilt>
                        <positVerwahrart>WR</positVerwahrart>
                        <positLoco>DE</positLoco>
                        <positTyp>UPOS</positTyp>
                        [...]
                 </positionsDaten>
                 <fiBezeichnungList arraySize="1">
                 [...]
                 </fiBezeichnungList>
         </element>
[9 similar elements following]

here the lookup xml SVZ_1001.xml:

<?xml version="1.0" encoding="ISO-8859-1" ?>
- <getTables>
- <at.sds.xc.coreService.CodeTableList arraySize="1">
- <element>
  <codeTableNo>1001</codeTableNo>
  <codeTableType>ALLG</codeTableType>
  <codeTableName>code-table-name</codeTableName>
- <codes arraySize="97">
- <element>
  <code>0000</code>
  <hcode />
  <sysstatus>0</sysstatus>
  <codeText>Wien</codeText>
  </element>
- <element>
  <code>DE</code>
  <hcode />
  <sysstatus>0</sysstatus>
  <codeText>Deutschland</codeText>
  </element>
[96 similar elements following]

here is part of my xsl:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="
http://www.w3.org/1999/XSL/Transform" xmlns:fo="
http://www.w3.org/1999/XSL/Format">
        <xsl:output method="xml" omit-xml-declaration="yes"/>
        [...]
        <xsl:variable name="leer"/>
        [...]
        <xsl:key name="loco-lookup" match="element" use="code"/>
        <xsl:variable name="loco-top" select="
document('SVZ_1001.xml')/codes"/>

        <xsl:template match="/">
                <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
                        [page master, calling of templates defined later
in stylesheet]
                        <fo:block padding-before="1cm" font="Helvetica">
                                <xsl:call-template name="Posit"></
xsl:call-template>
                        </fo:block>
                        [...]
                </fo:root>
        </xsl:template>
        [definition of all templates called before]
        <xsl:template name="Posit">
                <xsl:choose>
                        <xsl:when test="//einzelPositionList">
                                <fo:table table-omit-header-at-break="
false" table-layout="fixed" border-collapse="separate" font-size="10pt"
width="100%">
                                [table column definition, table header]
                                <fo:table-body>
                                        <xsl:for-each select="
//einzelPositionList/element">
                                        <xsl:if test="
./positionsDaten/positTyp != 'UPOS'">
                                        <fo:table-row keep-together="
always">
                                                <fo:table-cell>
                                                [...]
                                                </fo:table-cell>
                                                <fo:table-cell>
                                                [...]
                                                </fo:table-cell>
                                                <fo:table-cell>
                                                <fo:block>
                                                <fo:block padding-before="
3mm+10pt"><xsl:text> </xsl:text></fo:block>
                                                                <
xsl:choose>
                                                                        <
xsl:when test="./positionsDaten/fiTyp='DERI'">
 <fo:block  font-weight="bold">
        <xsl:value-of select="./positionsDaten/kurzbezeichnung"/>
 </fo:block>
                                                                        </
xsl:when>
                                                                        <
xsl:otherwise>
 <fo:block  font-weight="bold">
        <xsl:value-of select="./positionsDaten/bezeichnung1"/>
 </fo:block>
                                                                        </
xsl:otherwise>
                                                                </
xsl:choose>

                                                                <
xsl:choose>
                                                                        <
xsl:when test="./positionsDaten/fiTyp != 'DERI'">
 <fo:block>
        <xsl:value-of select="./positionsDaten/bezeichnung2"/>
 </fo:block>
                                                                        </
xsl:when>
                                                                </
xsl:choose>

                                                                <fo:block>
                                                                        <
xsl:if test="normalize-space(./positionsDaten/lfdKupon) != $leer">Kup. <
xsl:value-of select="./positionsDaten/lfdKupon"/>
 <xsl:text> </xsl:text>
                                                                        </
xsl:if>
                                                                        <
xsl:if test="normalize-space(./positionsDaten/zahlungsrhythmus) != $leer
and normalize-space(./positionsDaten/endfaelligkeit) != $leer">
                                                                        <
xsl:text> / </xsl:text><xsl:value-of select="
./positionsDaten/zahlungsrhythmus"/>
                                                                        <
xsl:text> bis </xsl:text><xsl:value-of select="
./positionsDaten/endfaelligkeit"/>
                                                                </xsl:if>
                                                                </fo:block
>
                                                        <xsl:template
match="positionsDaten">
                                                                <
xsl:apply-templates select="$loco-top">
                                                                        <
xsl:with-param name="curr-positionsDaten" select="."/>
                                                                </
xsl:apply-templates>
                                                        </xsl:template>
                                                        <xsl:template
match="codes">
                                                                <xsl:param
name="curr-positionsDaten"/>
                                                                <
xsl:value-of select="
key('loco-lookup',$curr-positionsDaten/positLoco)/codeText"/>
                                                        </xsl:template>
                                                </fo:block>
                                                </fo:table-cell>
                                                [...]
when trying to transform my xml, fop says 'xsl:template ist an dieser
Position der Formatvorlage nicht zuldssig' (xsl:template is not allowed at
this postion). i tried several approaches (also with help from the list)
to resolve my lookup table, but until now none worked.

all i need is to extract the value of <codeText> in my lookup xml where
<code> equals <positLoco> of my source xml... looks simple, but is tougher
than i thought...
any suggestions?

THX
alex


______________________________________________________________________
Der Austausch von Nachrichten mit Software Daten Service via E-Mail dient
ausschliesslich Informationszwecken. Rechtsgeschaeftliche Erklaerungen duerfen
ueber dieses Medium nicht ausgetauscht werden.

Correspondence with Software Daten Service via e-mail is only for information
purposes. This medium is not to be used for the exchange of legally-binding
communications.

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.