123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Licensed Materials - Property of IBM
- IBM Cognos Products: ASV
- (C) Copyright IBM Corp. 2005, 2010
- US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- -->
- <!--
- Just get those children out. This can be used in transforms to obtain children.
- -->
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:xts="http://developer.cognos.com/schemas/xts/"
- exclude-result-prefixes="xts">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/">
- <xsl:variable name="newsItemName">
- <xsl:call-template name="buildName">
- <xsl:with-param name="currentValue">
- <xsl:value-of select="/root/newsItemName"/>
- </xsl:with-param>
- <xsl:with-param name="defaultValue">
- <xsl:text><xts:string id="IDS_CUSTSUB_DEFAULT_NEWSITEM_TASKNAME"/></xsl:text>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:variable>
-
- <xsl:variable name="emailName">
- <xsl:call-template name="buildName">
- <xsl:with-param name="currentValue">
- <xsl:value-of select="/root/emailTaskName"/>
- </xsl:with-param>
- <xsl:with-param name="defaultValue">
- <xsl:text><xts:string id="IDS_CUSTSUB_DEFAULT_EMAIL_TASKNAME"/></xsl:text>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:variable>
-
- <xsl:variable name="humanTaskName">
- <xsl:call-template name="buildName">
- <xsl:with-param name="currentValue">
- <xsl:value-of select="/root/humanTaskName"/>
- </xsl:with-param>
- <xsl:with-param name="defaultValue">
- <xsl:text><xts:string id="IDS_CUSTSUB_DEFAULT_HUMANTASK_TASKNAME"/></xsl:text>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:variable>
-
- <xsl:variable name="emailNameToUse">
- <xsl:value-of select="$emailName"/>
- </xsl:variable>
- <xsl:variable name="newsItemNameToUse">
- <xsl:call-template name="makeUnique">
- <xsl:with-param name="name" select="$newsItemName"/>
- <xsl:with-param name="used">
- <root>
- <value><xsl:value-of select="$emailNameToUse"/></value>
- </root>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:variable>
- <xsl:variable name="humanTaskNameToUse">
- <xsl:call-template name="makeUnique">
- <xsl:with-param name="name" select="$humanTaskName"/>
- <xsl:with-param name="used">
- <root>
- <value><xsl:value-of select="$emailNameToUse"/></value>
- <value><xsl:value-of select="$newsItemNameToUse"/></value>
- </root>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:variable>
- <!-- build the parameters from the unique names -->
- <param name="taskName"><xsl:value-of select="$emailNameToUse"/></param>
- <param name="m_subData_newsitem_taskName"><xsl:value-of select="$newsItemNameToUse"/></param>
- <param name="humanTaskName"><xsl:value-of select="$humanTaskNameToUse"/></param>
- </xsl:template>
- <xsl:template name="makeUnique">
- <xsl:param name="name"/>
- <xsl:param name="used"/>
- <xsl:choose>
- <xsl:when test="not($used/root/value[text() = $name])"><xsl:value-of select="$name"/></xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="makeUniqueSuffix">
- <xsl:with-param name="name" select="$name"/>
- <xsl:with-param name="used" select="$used"/>
- <xsl:with-param name="suffix" select="'1'"/>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- <xsl:template name="makeUniqueSuffix">
- <xsl:param name="name"/>
- <xsl:param name="used"/>
- <xsl:param name="suffix"/>
- <xsl:choose>
- <xsl:when test="not($used/root/value[text() = concat($name,'-',$suffix)])"><xsl:value-of select="concat($name,'-',$suffix)"/></xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="makeUniqueSuffix">
- <xsl:with-param name="name" select="$name"/>
- <xsl:with-param name="used" select="$used"/>
- <xsl:with-param name="suffix" select="string(number($suffix)+1)"/>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template name="buildName">
- <xsl:param name="currentValue"/>
- <xsl:param name="defaultValue"/>
- <xsl:variable name="quote">"</xsl:variable>
- <xsl:variable name="apos">'</xsl:variable>
- <xsl:variable name="task_name">
- <xsl:choose>
- <xsl:when test="$currentValue != '' ">
- <xsl:value-of select="$currentValue"/>
- </xsl:when>
- <xsl:otherwise><xsl:value-of select="$defaultValue"/></xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="contains($task_name,$quote) and contains($task_name,$apos)">
- <xsl:value-of select="translate($task_name,$quote,$apos)"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$task_name"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- </xsl:stylesheet>
|