We have upgraded our support system to serve you better.
For Support, please go to our Momentive Support Hub located here.

Skip to main content

XslGenerator:EventSessionSpeaker

 
 

XslGenerator:EventSessionSpeaker

Overview

This template shows how to have a multi-node XML source using the DynamicXmlBuilder. In this example, the top node is <event> which has two sub-nodes: <Session> and <Track>. The <Session> node has a sub-node for <Speaker>.

The display shows the Event, with the Session(s) and Track(s) underneath. Within each session, we output the speaker(s) at that session.

Content Detail Definition

Definition and XSL

Important! The SQL commands on this page can be improved with SQL's FOR XML PATH mode syntax. Please see XWeb:ExecuteMethod_Case_Study1 for details on how to work with this feature. These samples are still valid, but it is recommended that you use the newer syntax. Both DynamicXmlBuilder and XslGenerator work with this SQL syntax.

BeginXmlBuilderXml}
<EventList>
  <Event>
    <sql>
    select evt_title, evt_key
    from ev_event (nolock)
    where getdate() between evt_post_to_web_date  and evt_remove_from_web_date
    and evt_delete_flag = 0
    order by evt_start_date desc
    </sql>
    <Session>
      <sql>
    select ses_title, ses_key, ses_evt_key
    from ev_session (nolock)
    where ses_evt_key = {evt_key}
      </sql>
      <Speaker>
        <sql>
    select     cst_sort_name_dn
 
    from     ev_event_faculty (nolock) 
 
            JOIN ev_event_speaker (nolock) 
                    ON fac_key=spk_fac_key
        JOIN co_customer (nolock) 
            ON fac_cst_key=cst_key
        JOIN ev_session (nolock) 
            ON fac_ses_key=ses_key
    where
        fac_delete_flag=0
        and fac_ses_key={ses_key}
    order by
                   cst_sort_name_dn
 
        </sql>
      </Speaker>
    </Session>
    <Track>
      <sql>
        select
          trk_name
        From 
          ev_track (nolock)
        where 
          trk_delete_flag=0 AND
          trk_evt_key={evt_key}
      </sql>
    </Track>
  </Event>
</EventList>
{EndXmlBuilderXml}
 
 
{BeginXsl}
<?xml   version="1.0"   encoding="UTF-8"   ?>
<xsl:stylesheet   version="1.0"   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template   match="EventList">
        <DIV>
            <xsl:apply-templates   select="Event"   />
        </DIV>
    </xsl:template>
 
    <xsl:template   match="Event">
        <DIV>
            <span   class="tinyTXT">
                <strong>
                    <xsl:value-of   select="evt_title"   />
                </strong>
            </span>
 
                                                <p   />
 
            <span   class="tinyTXT"   style="PADDING-LEFT: 10px; WIDTH: 98%; PADDING-TOP: 4px">
                <i>Sessions</i>
            </span>
 
            <xsl:apply-templates   select="Session"   />
 
                                                <p   />
 
            <span   class="tinyTXT"    style="PADDING-LEFT: 10px; WIDTH: 98%; PADDING-TOP: 4px">
                <i>Tracks</i>
            </span>
 
            <xsl:apply-templates   select="Track"   />
            <p   />
        </DIV>
    </xsl:template>
 
    <xsl:template   match="Session">
        <DIV>
            <span   class="tinyTXT"   style="PADDING-LEFT: 20px; WIDTH: 98%; PADDING-TOP: 4px"><xsl:value-of   select="ses_title"   /></span>
        </DIV>
 
            <span   class="tinyTXT"   style="PADDING-LEFT: 30px; WIDTH: 98%; PADDING-TOP: 4px"><i>Speakers</i></span>
                                <xsl:apply-templates   select="Speaker"   />
 
    </xsl:template>
 
    <xsl:template   match="Speaker">
        <DIV>
            <span   class="tinyTXT"   style="PADDING-LEFT: 40px; WIDTH: 98%; PADDING-TOP: 4px"><xsl:value-of   select="cst_sort_name_dn"   /></span>
        </DIV>
    </xsl:template>
 
    <xsl:template   match="Track">
        <DIV>
            <span   class="tinyTXT"   style="PADDING-LEFT: 20px; WIDTH: 98%; PADDING-TOP: 4px"><xsl:value-of   select="trk_name"   /></span>
        </DIV>
    </xsl:template>
 
</xsl:stylesheet>
{EndXsl}

 

XML

The code above will produce XML of this format: This SQL will produce the following XML:

<EventList>
  <Event>
    <evt_title>2008 ASTC Annual Technology Conference</evt_title>
    <evt_key>3790A7C0-823C-4F09-89CE-109DF2C58282</evt_key>
    <Session>
      <ses_title>Awards Dinner</ses_title>
      <ses_key>B601CE5A-2D6B-4282-ADAC-2D591367437D</ses_key>
      <ses_evt_key>3790A7C0-823C-4F09-89CE-109DF2C58282</ses_evt_key>
    </Session>
    <Session>
      <ses_title>Technology and the Association</ses_title>
      <ses_key>97ADA72D-D81C-4947-B049-C3C443BFD338</ses_key>
      <ses_evt_key>3790A7C0-823C-4F09-89CE-109DF2C58282</ses_evt_key>
      <Speaker>
        <cst_sort_name_dn>Harrell Irene</cst_sort_name_dn>
      </Speaker>
      <Speaker>
        <cst_sort_name_dn>Thurston Scott</cst_sort_name_dn>
      </Speaker>
    </Session>
    <Track>
      <trk_name>Exam Track</trk_name>
    </Track>
    <Track>
      <trk_name>Certification Track</trk_name>
    </Track>
  </Event>
  <Event>
    <evt_title>Partnership Conference</evt_title>
    <evt_key>C677D959-3DA6-471F-BAB8-376CA55E4484</evt_key>
    <Session>
      <ses_title>Introduction</ses_title>
      <ses_key>E11E16AF-FF02-451A-BD46-019DD917E363</ses_key>
      <ses_evt_key>C677D959-3DA6-471F-BAB8-376CA55E4484</ses_evt_key>
      <Speaker>
        <cst_sort_name_dn>Miller Robert</cst_sort_name_dn>
      </Speaker>
    </Session>
  </Event>
</EventList>
Was this article helpful?
0 out of 0 found this helpful