123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Licensed Materials - Property of IBM
- IBM Cognos Products: ps
- (C) Copyright IBM Corp. 2005, 2012
- US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- -->
- <!--
- Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
- Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
- -->
- <!-- transform the after-CM/post-process of spec's deploymentOptions and getDeploymentOptions' options to cm4dummies document style.
- CM API deploymentOptions XML:
- <deploymentOptions xsi:type="tns:deploymentOptionArrayProp"
- xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
- xmlns:tns="http://developer.cognos.com/schemas/bibus/3/"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:deploymentOption[]">
- <item xsi:type="cm:deploymentOptionPackageInfo">
- <name xsi:type="cm:deploymentOptionEnum">package</name>
- <value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="cm:packageDeploymentInfo[]">
- <item xsi:type="cm:packageDeploymentInfo">
- <sourceName xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="cm:multilingualToken[]">
- <item xsi:type="cm:multilingualToken">
- <locale xsi:type="xsd:string"">en-US</locale>
- <value xsi:type="xsd:string"">A</value>
- </item>
- <sourceName>
- <targetName xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="cm:multilingualToken[]">
- <item xsi:type="cm:multilingualToken">
- <locale xsi:type="xsd:string"">fr-CA</locale>
- <value xsi:type="xsd:string"">B</value>
- </item>
- <targetName>
- <enabled xsi:type="xsd:boolean">false<enabled>
- </item>
- </value>
- </item>
- <item xsi:type="cm:deploymentOptionBoolean">
- <name xsi:type="cm:deploymentOptionEnum">archiveOverwrite </name>
- <value xsi:type="xsd:boolean"></value>
- </item>
- <item xsi:type="cm:deploymentOptionResolution">
- <name xsi:type="cm:deploymentOptionEnum">namespaceConflictResolution </name>
- <value xsi:type="cm:conflictResolutionEnum"></value>
- </item>
- <item xsi:type="cm:deploymentOptionString">
- <name xsi:type="cm:deploymentOptionEnum">archive</name>
- <value xsi:type="xsd:string">folder 12345</value>
- </item>
- </value>
- </deploymentOptions>
- CM API method options XML differ from above in the <deploymentOptions><value> :
- <options xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="cm:deploymentOption[]">
- <item>...</item>
- ...
- </options>
-
- The after-CM/post-process XML is:
-
- <deploymentOptions>
- <deploymentOptionPackageInfo name="package">
- <packageDeploymentInfo>
- <sourceName>
- <multilingualToken xml:lang="en-US" type="cm:multilingualToken">A</multilingualToken>
- <multilingualToken xml:lang="fr-fr" type="cm:multilingualToken">B</multilingualToken>
- </sourceName>
- <targetName>
- <multilingualToken xml:lang="fr-CA" type="cm:multilingualToken">C</multilingualToken>
- <multilingualToken xml:lang="en-CA" type="cm:multilingualToken">D</multilingualToken>
- </targetName>
- <enabled>false</enabled>
- </packageDeploymentInfo>
- </deploymentOptionPackageInfo>
- <deploymentOptionBoolean name="archiveOverwrite " type="cm:deploymentOptionBoolean">true</deploymentOptionBoolean>
- <deploymentOptionString name="archive" type="cm:deploymentOptionString">folder 12345</deploymentOptionString>
- </deploymentOptions>
- <deploymentOptionResolution name="namespaceConflictResolution ">
- <value type="cm:conflictResolutionEnum">keep</value>
- </deploymentOptionResolution>
- </deploymentOptionResolution>
- or
- <deploymentOptions>
- <deploymentOptionPackageInfo name="package">
- <packageDeploymentInfo>
- <sourceName>
- <multilingualToken xml:lang="en-US" type="bus:multilingualToken">A</multilingualToken>
- <multilingualToken xml:lang="fr-fr" type="bus:multilingualToken">B</multilingualToken>
- </sourceName>
- <targetName>
- <multilingualToken xml:lang="fr-CA" type="bus:multilingualToken">C</multilingualToken>
- <multilingualToken xml:lang="en-CA" type="bus:multilingualToken">D</multilingualToken>
- </targetName>
- <enabled>false</enabled>
- </packageDeploymentInfo>
- </deploymentOptionPackageInfo>
- <deploymentOptionBoolean name="archiveOverwrite " type="bus:deploymentOptionBoolean">true</deploymentOptionBoolean>
- <deploymentOptionString name="archive" type="bus:deploymentOptionString">folder 12345</deploymentOptionString>
- </deploymentOptions>
- <deploymentOptionResolution name="namespaceConflictResolution " type="bus:conflictResolutionEnum">keep
- </deploymentOptionResolution>
-
- cm4dummies XML style for both:
- <deploymentOptions>
- <deploymentOption class="cm:deploymentOptionPackageInfo" name="package">
- <packageDeploymentInfo>
- <sourceName>
- <cm:multilingualToken xml:lang="en-US">A</cm:multilingualToken>
- <sourceName>
- <targetName>
- <cm:multilingualToken xml:lang="fr-CA">B</cm:multilingualToken>
- <targetName>
- <enabled>false<enabled>
- </packageDeploymentInfo>
- </deploymentOption>
- <deploymentOption class="cm:deploymentOptionString" name="archive">folder 12345</deploymentOption>
- <deploymentOption class="cm:deploymentOptionBoolean" name="archiveOverwrite">true</deploymentOption>
- <deploymentOption class="cm:deploymentOptionResolution" name="namespaceConflictResolution">keep</deploymentOption>
- <deploymentOption class="cm:deploymentOptionResolution" name="namespaceConflictResolution">keep
- <value type="bus:conflictResolutionEnum">replace</value>
- </deploymentOption>
- </deploymentOptions>
- -->
- <xsl:stylesheet version="1.0" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xts="http://developer.cognos.com/schemas/xts/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" exclude-result-prefixes="xtsext cm xsl SOAP-ENV SOAP-ENC xts xsd xsi bus">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:key name="option-information-rules" match="*[local-name()='getDeploymentOptionsResponse']/*[local-name()='deploymentOptions']/*[local-name()='deploymentOptionObjectInformationArray']/*[local-name()='deploymentObjectInformation']" use="*[local-name()='searchPath']"/>
- <xsl:key name="user-param" match="/root/user/param" use="@name"/>
-
- <xsl:template match="cm:deploymentOptionBoolean|cm:deploymentOptionString|cm:deploymentOptionMultilingualString|cm:deploymentOptionClassEnumArray|cm:deploymentOptionSearchPathSingleObjectArray|cm:deploymentOptionStringArray" priority="3">
- <xsl:element name="deploymentOption" namespace="{namespace-uri()}">
- <xsl:attribute name="class">cm:<xsl:value-of select="local-name()"/></xsl:attribute>
- <!-- copy all attributes but not 'type'-->
- <xsl:copy-of select="@*[local-name() != 'type']"/>
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:template>
-
- <xsl:template match="cm:deploymentOptionObjectInformationArray" priority="3">
- </xsl:template>
-
- <xsl:template match="cm:deploymentOptionResolution|cm:deploymentOptionAnyType" priority="3">
- <xsl:element name="deploymentOption" namespace="{namespace-uri()}">
- <xsl:attribute name="class">cm:<xsl:value-of select="local-name()"/></xsl:attribute>
- <!-- copy all attributes but not 'type'-->
- <xsl:copy-of select="@*[local-name() != 'type']"/>
- <!-- bypass 'value' node if exists -->
- <xsl:choose>
- <xsl:when test="child::*[local-name()='value']">
- <xsl:value-of select="child::*[local-name()='value']"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="."/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:element>
- </xsl:template>
-
- <xsl:template match="*[local-name()='options' and ../*[local-name()='objectClass'] !='account']" priority="3">
- <xsl:element name="deploymentOptions" namespace="{namespace-uri()}">
- <xsl:attribute name="type">cm:deploymentOptionArrayProp</xsl:attribute>
- <xsl:apply-templates/>
- </xsl:element>
- </xsl:template>
- <!-- convert 8.2 (Blacksea) deployment options into 8.1(Bering) options. This simplifies the logic required to display the options
- summary in the run with options and schedule dialogs -->
- <xsl:template match="cm:deploymentOptionImportRuleArray" priority="3">
- <xsl:element name="deploymentOption" namespace="{namespace-uri()}">
- <xsl:attribute name="class">cm:deploymentOptionPackageInfo</xsl:attribute>
- <xsl:attribute name="name">package</xsl:attribute>
- <xsl:for-each select="cm:deploymentImportRule">
- <xsl:element name="packageDeploymentInfo" namespace="{namespace-uri()}">
- <xsl:variable name="searchPath">
- <xsl:value-of select="cm:archiveSearchPath"/>
- </xsl:variable>
- <xsl:element name="sourceName" namespace="{namespace-uri()}">
- <xsl:copy-of select="key('option-information-rules', $searchPath)/*[local-name()='multilingualToken']"/>
- </xsl:element>
- <xsl:element name="defaultName" namespace="{namespace-uri()}">
- <xsl:value-of select="key('option-information-rules', $searchPath)/*[local-name()='defaultName']"/>
- </xsl:element>
- <xsl:element name="objectClass" namespace="{namespace-uri()}">
- <xsl:value-of select="key('option-information-rules', $searchPath)/*[local-name()='objectClass']"/>
- </xsl:element>
- <xsl:element name="ancestorInfo" namespace="{namespace-uri()}">
- <xsl:element name="searchPath" namespace="{namespace-uri()}">
- <xsl:value-of select="cm:parent"/>
- </xsl:element>
- </xsl:element>
- <xsl:element name="sourceAncestorsInfo" namespace="{namespace-uri()}">
- <xsl:element name="ancestorInfo" namespace="{namespace-uri()}">
- <xsl:element name="title" namespace="{namespace-uri()}">
- <xsl:value-of select="key('option-information-rules', $searchPath)/*[local-name()='ancestors']/*[local-name()='ancestorInfo']/*[local-name()='title']"/>
- </xsl:element>
- <xsl:element name="searchPath" namespace="{namespace-uri()}">
- <xsl:value-of select="key('option-information-rules', $searchPath)/*[local-name()='ancestors']/*[local-name()='ancestorInfo']/*[local-name()='searchPath']"/>
- </xsl:element>
- </xsl:element>
- </xsl:element>
- <xsl:element name="targetName" namespace="{namespace-uri()}">
- <xsl:copy-of select="cm:multilingualToken"/>
- </xsl:element>
- <xsl:element name="enabled" namespace="{namespace-uri()}">
- <xsl:choose>
- <xsl:when test="cm:disabled='true'">false</xsl:when>
- <xsl:when test="cm:disabled='false'">true</xsl:when>
- <!-- we should never hit this case, but just in case preserve the value as is -->
- <xsl:otherwise><xsl:value-of select="cm:disabled"/></xsl:otherwise>
- </xsl:choose>
- </xsl:element>
- <xsl:element name="archiveSearchPath" namespace="{namespace-uri()}">
- <xsl:value-of select="cm:archiveSearchPath"/>
- </xsl:element>
- <xsl:element name="targetLocation" namespace="{namespace-uri()}">
- <xsl:value-of select="cm:parent"/>
- </xsl:element>
- </xsl:element>
- </xsl:for-each>
- </xsl:element>
- </xsl:template>
-
- <!-- match all unmatched nodes -->
- <xsl:template match="node()" priority="0">
- <xsl:copy>
- <xsl:copy-of select="@*"/>
- <xsl:apply-templates/>
- </xsl:copy>
- </xsl:template>
- <!-- copy just the text -->
- <xsl:template match="text()" priority="0">
- <xsl:copy-of select="."/>
- </xsl:template>
- </xsl:stylesheet>
|