xsl-list
[Top] [All Lists]

RE: [xsl] Two different input get single output

2009-12-08 08:31:23
Hi Martin,

Thanks your effort for the xsl, when I process the xsl, the "saxon9" process
show some error. But the output xml was generated.

Error:
=====

Recoverable error

XTRE0540: Ambiguous rule match for /cases/section[2]/type[1]
Matches both "section/type[.='Drafting']" on the 32 of file: name.xsl
and "section/type[not<normalize-string>]" on line 28 of file name.xsl

Repeating the above error for all section.

Please guide me how to correct.

Thanks,
Selva

-----Original Message-----
From: Martin Honnen [mailto:Martin(_dot_)Honnen(_at_)gmx(_dot_)de] 
Sent: Monday, December 07, 2009 6:13 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Two different input get single output

Selvaganesh wrote:

I have challenging for xsl creating of two different input xml and get
single output xml file. Can you guide us how is prepare in easy way.

This XSLT 2.0 stylesheet:

<xsl:stylesheet
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
   xmlns:xsd="http://www.w3.org/2001/XMLSchema";
   exclude-result-prefixes="xsd"
   version="2.0">

   <xsl:param name="url2" as="xsd:string" select="'test2009120703.xml'"/>
   <xsl:variable name="doc2" select="doc($url2)"/>

   <xsl:key name="k1" match="definition" use="term"/>

   <xsl:output indent="yes"/>

   <xsl:template match="cases">
     <derivations>
       <xsl:apply-templates select="section"/>
     </derivations>
   </xsl:template>

   <xsl:template match="section">
     <derivation>
       <xsl:value-of select="concat('Subsection ', content)"/>
       <xsl:apply-templates select="type"/>
       <xsl:value-of select="key('k1', tokenize(origin, ', '), 
$doc2)/def" separator=", "/>
     </derivation>
   </xsl:template>

   <xsl:template match="section/type[not(normalize-string)]">
     <xsl:text> replace, </xsl:text>
   </xsl:template>

   <xsl:template match="section/type[. = 'Drafting']">
     <xsl:text> was created in drafting, </xsl:text>
   </xsl:template>

   <xsl:template match="section/type[. = 'New']">
     <xsl:text> is a new provision, </xsl:text>
   </xsl:template>

</xsl:stylesheet>

creates the following result:

<derivations>
    <derivation>Subsection (1) replace, Finance Act</derivation>
    <derivation>Subsection (2) was created in drafting, Finance Act, 
Caravan Sites Act</derivation>
    <derivation>Subsection (3) is a new provision, Caravan Sites Act, 
Income and
Corporation Taxes Act</derivation>
</derivations>

The Subsection numbers are different from what you asked for but I could 
not see where those numbers in your posted output come from. If you 
can't fix the stylesheet yourself then please explain where those 
numbers come from.

-- 

        Martin Honnen
        http://msmvps.com/blogs/martin_honnen/

--~------------------------------------------------------------------
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>
--~--



Confidentiality Notice:  This transmittal is a confidential communication.  If 
you are not the intended recipient, you are hereby notified that you have 
received this transmittal in error and that any review, dissemination, 
distribution or copying of this transmittal is strictly prohibited.  If you 
have received this communication in error, please notify this office 
immediately by reply and immediately delete this message and all of its 
attachments, if any.


--~------------------------------------------------------------------
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>
--~--