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

Re:

Subject: Re:
From: Jeni Tennison <mail@xxxxxxxxxxxxxxxx>
Date: Fri, 3 Nov 2000 14:38:35 -0400 (EST)
Re:
Kevin,

Just to turn around your message:

>I presume I use:
> <xsl:template match="fundgraph">
><xsl:with-param name="fundgraph">
><xsl:value-of select="...">
></xsl:param>
></xsl:template>

I don't think so.  xsl:with-param is used to pass parameters into
templates.  Perhaps you meant xsl:param (to match the end tag you've got in
that template), but neither of these instructions will do anything about
adding things to your output, which I think is what you want.

>I need the following xml to be converted to
>accommodate a graph applet. Hence, I need parameter
>tags for the fundgraph and fundvalue elements.
>
><!ELEMENT fundgraph (fundvalue*)>
>  <!ATTLIST fundgraph startDate CDATA #REQUIRED>
>  <!ATTLIST fundgraph endDate CDATA #REQUIRED>
>  <!ATTLIST fundgraph fundName CDATA #REQUIRED>
>
>  <!ELEMENT fundvalue EMPTY>
>  <!ATTLIST fundvalue date CDATA #REQUIRED>
>  <!ATTLIST fundvalue value CDATA #REQUIRED>
>  <!ATTLIST fundvalue ordinal CDATA #REQUIRED>

>From what you've described, your input will look something like:

<fundgraph startDate="99-11-03" endDate="00-11-03" fundName="Technical">
  <fundvalue date="99-11-03" value="0.58" ordinal="0" />
  <fundvalue date="99-12-03" value="0.75" ordinal="0" />
  ...
</fundgraph>

and you want output might (complete guess here) look something like:

<object ...>
  <param name="startDate" value="99-11-03" />
  <param name="endDate" value="00-11-03" />
  <param name="title" value="Technical" />
  <param name="99-11-03" value="0.58" />
  <param name="99-12-03" value="0.75" />
  ...
</object>

The param elements that you're creating in the output are not the same as
the xsl:param elements that are used within XSLT to pass values into the
stylesheet or into templates.  The param elements in your output are in the
HTML namespace, whereas the xsl:param elements in the stylesheet are in the
XSLT namespace.

Just to start you off with the above example, you create elements within
your output either by using the xsl:element instruction:

  <xsl:element name="object">
    ...
  </xsl:element>

or by literally putting the element in the result tree:

  <object>
    ...
  </object>

So, to create the above, you could have a stylesheet that looks like:

<!-- set the output method to HTML -->
<xsl:output method="html" indent="yes" />

<xsl:template match="fundgraph">
  <!-- create an object element -->
  <object ...>
    <!-- create the param elements from the fundgraph attribute values -->
    <param name="startDate" value="{@startDate}" />
    <param name="endDate" value="{@endDate}" />
    <param name="title" value="{@fundName}" />
    <!-- iterate over each of the fundvalue elements, 
         adding a param element for each              -->
    <xsl:for-each select="fundvalue">
      <param name="{@date}" value="{@value}" />
    </xsl:for-each>
  </object>
</xsl:template>

I hope that gets you started.  If not, feel free to post more details,
namely a sample bit of source XML and the output that you want to have
created from it.

Cheers,

Jeni

Jeni Tennison
http://www.jenitennison.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.