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

Re: Arbitrary XML document merge and styling with XSLT

Subject: Re: Arbitrary XML document merge and styling with XSLT
From: Scott Powell <scotthpowell@xxxxxxxxx>
Date: Wed, 16 Jul 2003 10:08:59 -0700 (PDT)
scott powell
Mike,

That sounds like an interesting approach.

Can you give me a code snippet of how it might look?

Thanks
Scott

--- Mike Haarman <mhaarman@xxxxxxxxxxxxxxxxxx> wrote:
> Scott,
> 
> You could use import precedence to manage this
> requirement.  Let your main XSL
> file be a driver which imports the desired template
> behavior based on the value
> of mode.
> 
> Mike
> 
> ----- Original Message ----- 
> From: "Scott Powell" <scotthpowell@xxxxxxxxx>
> To: <XSL-List@xxxxxxxxxxxxxxxxxxxxxx>
> Sent: Wednesday, July 16, 2003 10:23 AM
> Subject:  Arbitrary XML document merge and
> styling with XSLT
> 
> 
> > Thanks for all the advice on the site for merging
> > multiple XML documents into one.
> >
> > In all of the samples I've seen, the merging XSLT
> file
> > applies the same templates to all source nodes. 
> What
> > if you want different styles applied to nodes with
> the
> > same name from the two documents?
> >
> > Let's say page.xml lists all the xml files to
> merge
> > (see below); the mode node indicates which
> template
> > mode to use in the transformation file.  Page.xsl
> > contains the transformation instructions, making
> the
> > appropriate document() calls as needed.
> >
> > But I've discovered that apply-templates' mode=""
> > value must be a constant.  All my efforts to use
> the
> > mode value from page.xml have fallen over.
> >
> > Is there a way to do this sort of "generic" merge
> > within a single xsl file without hard-coding the
> match
> > logic or using xsl:if's?
> >
> > Can name spaces help me here some how?
> >
> > Of would I be better off handling this within an
> ASP
> > script?  ASP could read page.xml and then call a
> > series of transforms based on the <element> nodes?
> >
> > Thanks for your advice and help....
> >
> > Scott
> >
> >
>
======================================================
> > page.xml (contains a list of xml files to merge
> along
> > with a MODE element I'd like to use to dictate
> which
> > templates should be applied in the page.xsl file)
> >
>
======================================================
> > <?xml version="1.0" encoding="UTF-8"?>
> > <page>
> >   <element>
> >     <mode>main</mode>
> >     <file>main_menu.xml</file>
> >   </element>
> >   <element>
> >     <mode>left</mode>
> >     <file>left_menu.xml</file>
> >   </element>
> > </page>
> >
> >
> >
>
======================================================
> > page.xsl (Attempts to load each file in page.xml
> and
> > apply-templates.  But I'd like to differentiate
> which
> > templates are used for nodes with the same name
> where
> > I want different styling)
> >
>
======================================================
> > <?xml version="1.0" encoding="UTF-8"?>
> > <xsl:stylesheet version="1.0"
> > xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> > <xsl:output method="html"/>
> > <xsl:template match="page">
> >   <xsl:for-each select="element">
> >     <xsl:apply-templates select="document(file)"
> > mode="**** I would like to use the MODE value in
> the
> > file but all attempts to use a variable here are
> > rejected ****"></xsl:apply-templates>
> >   </xsl:for-each>
> > </xsl:template>
> >
> >
> > <xsl:template match="menu" mode="main">
> > <!-- formatting code -->
> > </xsl:template>
> >
> > <xsl:template match="menu" mode="left">
> > <!-- formatting code -->
> > </xsl:template>
> >
> >
> >
> >
>
======================================================
> > left_menu.xml (contains a list of graphic refs for
> a
> > navigation menu)
> >
>
======================================================
> > <?xml version="1.0" encoding="UTF-8"?>
> > <!DOCTYPE menu SYSTEM "menu.dtd">
> > <menu name="weddings">
> >   <item name="weddings_menu_how" href="index.htm">
> >     <icon>
> >       <iconOn width="101"
> > height="18">weddings_menu_how.gif</iconOn>
> >       <iconOff width="101"
> > height="18">weddings_menu_how_f2.gif</iconOff>
> >       <alt>how &amp; why</alt>
> >     </icon>
> >   </item>
> > </menu>
> >
> >
>
=====================================================
> > main_menu.xml (contains a simple list of links and
> > labels for a top nav bar)
> >
>
=====================================================
> > <?xml version="1.0" encoding="UTF-8"?>
> > <!DOCTYPE menu SYSTEM "menu.dtd">
> > <menu>
> >   <item href="index.htm">
> >     <label>home</label>
> >   </item>
> >   <item href="../tours/subpage.asp">
> >     <label>travel &amp; tours</label>
> >   </item>
> > </menu>
> >
> >
> >
> > __________________________________
> > Do you Yahoo!?
> > SBC Yahoo! DSL - Now only $29.95 per month!
> > http://sbc.yahoo.com
> >
> >  XSL-List info and archive: 
> http://www.mulberrytech.com/xsl/xsl-list
> >
> >
> 
> 
>  XSL-List info and archive: 
> http://www.mulberrytech.com/xsl/xsl-list
> 


__________________________________
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


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.