123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788 |
- <?xml version="1.0"?>
- <xsl:stylesheet xmlns="http://www.developer.cognos.com/schemas/bmt/50/0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xalan="http://xml.apache.org/xalan" exclude-result-prefixes="xalan">
- <xsl:include href="fmmd_generalTemplates.xsl"/>
- <xsl:strip-space elements="*"/>
- <xsl:output encoding="utf-8" method="xml" indent="no"/>
-
-
-
- <xsl:template match="*[local-name() = 'querySubject'][*[local-name() = 'definition' and *[local-name() = 'mdQuery']]][*[local-name() = 'levels' and *[local-name() = 'level']]]">
-
- <xsl:variable name="querySubject" select="."/>
- <xsl:variable name="namespace_name" select="string($querySubject/ancestor::*[local-name()='namespace'][1]/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:variable name="querySubject_name" select="string($querySubject/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
-
- <xsl:apply-templates select="current()" mode="MakeQSwithDimRefs"/>
-
- <xsl:variable name="IsQSRegularDimension">
- <xsl:call-template name="isRegularDimension">
- <xsl:with-param name="querySubject" select="$querySubject"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:if test="$IsQSRegularDimension = string(true())">
- <xsl:variable name="dimension_name" select="concat($dimensionNamePrefix, $querySubject_name)"/>
- <xsl:element name="dimension">
-
- <xsl:call-template name="myCopyAttributes"/>
-
- <xsl:call-template name="annotate">
-
- <xsl:with-param name="value">
- <xsl:call-template name="getLocalizedString">
- <xsl:with-param name="stringID" select="$MODELUPGRADE_CREATED_OBJECT"/>
- <xsl:with-param name="localeVal" select="$defaultLocale"/>
- <xsl:with-param name="string1" select="$OBJECT_TYPE_DIMENSION"/>
- <xsl:with-param name="string2" select="$querySubject_name"/>
- <xsl:with-param name="string3" select="$OBJECT_TYPE_NAMESPACE"/>
- <xsl:with-param name="string4" select="$namespace_name"/>
- </xsl:call-template>
- </xsl:with-param>
- </xsl:call-template>
- <xsl:for-each select="node()[not(local-name() = 'property' and @*[local-name() = 'name' and .='defaultHierarchy'])][not(local-name() = 'levels' or local-name() = 'hierarchies')]">
- <xsl:choose>
- <xsl:when test="local-name() = 'name'">
-
- <xsl:element name="name">
- <xsl:call-template name="myCopyAttributes"/>
- <xsl:value-of select="concat($dimensionNamePrefix, node())"/>
- </xsl:element>
- </xsl:when>
- <xsl:when test="local-name() = 'queryItem'">
- <xsl:call-template name="copyDimensionQueryItems"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates select="." mode="dimQueryItem"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
-
- <xsl:variable name="dataSourceRef" select="./*[local-name()='definition']/*[local-name()='mdQuery']/*[local-name()='sources']/*[local-name()='dataSourceRef']"/>
- <xsl:variable name="dimExternalName" select="$querySubject/*[local-name()='definition']/*[local-name()='mdQuery']/*[local-name()='dimension']"/>
- <xsl:variable name="candidates" select="key('candidates_using_dimExternalName_dataSourceRef', concat($dimExternalName,'||', $dataSourceRef))"/>
- <xsl:for-each select="$candidates">
- <xsl:variable name="suggestedName">
- <xsl:value-of select="string(./*[local-name()='name'])"/>
- </xsl:variable>
- <xsl:variable name="candidateSuggestedName" select="$candidates[*[local-name()='name' and . =$suggestedName]]"/>
- <xsl:variable name="candidateName">
- <xsl:choose>
- <xsl:when test="count($candidateSuggestedName) > 1 and
- position() != 1 and
- $candidateSuggestedName[1] != .">
- <xsl:value-of select="concat($suggestedName, '_' , generate-id(.))"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$suggestedName"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:if test="$candidateSuggestedName[1] = .">
- <xsl:call-template name="hierarchy">
- <xsl:with-param name="namespace_name" select="$namespace_name"/>
- <xsl:with-param name="dimension_name" select="$dimension_name"/>
- <xsl:with-param name="extName" select="./*[local-name()='hierarchies']/*[local-name()='hierarchy']/*[local-name()='externalName']"/>
- <xsl:with-param name="hierarchy_name" select="$candidateName"/>
- </xsl:call-template>
- </xsl:if>
- </xsl:for-each>
- </xsl:element>
- </xsl:if>
- </xsl:template>
-
- <xsl:template match="*[local-name() = 'querySubject'][*[local-name() = 'definition']/*[local-name() = 'mdQuery']][.//*[local-name()='queryItem' and not(not(*[local-name()='usage' and .='fact']) and not(*[local-name()='hidden' and .='true']))]]">
-
- <xsl:variable name="namespace_name" select="string(ancestor::*[local-name()='namespace'][1]/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:variable name="querySubject_name" select="string(./*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
-
- <xsl:apply-templates select="current()" mode="MakeQSwithDimRefs"/>
-
- <xsl:element name="dimension">
-
- <xsl:call-template name="myCopyAttributes"/>
- <xsl:call-template name="annotate">
-
- <xsl:with-param name="value">
- <xsl:call-template name="getLocalizedString">
- <xsl:with-param name="stringID" select="$MODELUPGRADE_CREATED_OBJECT"/>
- <xsl:with-param name="localeVal" select="$defaultLocale"/>
- <xsl:with-param name="string1" select="$OBJECT_TYPE_DIMENSION"/>
- <xsl:with-param name="string2" select="$querySubject_name"/>
- <xsl:with-param name="string3" select="$OBJECT_TYPE_NAMESPACE"/>
- <xsl:with-param name="string4" select="$namespace_name"/>
- </xsl:call-template>
- </xsl:with-param>
- </xsl:call-template>
-
- <xsl:for-each select="./*[local-name()='name']">
- <xsl:element name="name">
- <xsl:call-template name="myCopyAttributes"/>
- <xsl:value-of select="concat($dimensionNamePrefix, .)"/>
- </xsl:element>
- </xsl:for-each>
-
-
- <xsl:apply-templates select="./*[local-name() != 'name' and local-name() != 'queryItem' and local-name() != 'queryItemFolder']"/>
-
-
-
- <xsl:for-each select="key('queryItem_using_qsID', generate-id(.))[*[local-name() = 'usage' and .='fact']]">
- <xsl:call-template name="myCopy">
- <xsl:with-param name="elemName">measure</xsl:with-param>
- </xsl:call-template>
- </xsl:for-each>
- </xsl:element>
- </xsl:template>
-
-
- <xsl:template name="hierarchy">
- <xsl:param name="namespace_name"/>
- <xsl:param name="dimension_name"/>
- <xsl:param name="extName"/>
- <xsl:param name="hierarchy_name"/>
-
-
- <xsl:variable name="querySubject" select="."/>
- <xsl:variable name="querySubject_name" select="string($querySubject/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:element name="hierarchy">
- <xsl:call-template name="myCopyAttributes"/>
- <xsl:call-template name="localizeElement">
- <xsl:with-param name="basedOnItem" select="$querySubject"/>
- <xsl:with-param name="elementName" select="'name'"/>
- <xsl:with-param name="defaultValue" select="$hierarchy_name"/>
- </xsl:call-template>
- <xsl:call-template name="localizeElement">
- <xsl:with-param name="basedOnItem" select="$querySubject"/>
- <xsl:with-param name="elementName" select="'description'"/>
- <xsl:with-param name="defaultValue" select="$hierarchy_name"/>
- </xsl:call-template>
- <xsl:variable name="screenTip_Value">
- <xsl:call-template name="substring-findDelimited">
- <xsl:with-param name="strString" select="./*[local-name()='externalName']"/>
- <xsl:with-param name="strLeftDelimiter" select="'['"/>
- <xsl:with-param name="strRightDelimiter" select="']'"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:call-template name="localizeElement">
- <xsl:with-param name="basedOnItem" select="$querySubject"/>
- <xsl:with-param name="elementName" select="'screenTip'"/>
- <xsl:with-param name="defaultValue" select="$screenTip_Value"/>
- </xsl:call-template>
- <xsl:variable name="bUnitofMeasure_or_Currency" select="$querySubject/*[local-name()='definition']/*[local-name()='mdQuery']/*[local-name()='dimension' and (.='[0UNIT]' or .='[0CURRENCY]')]"/>
- <xsl:for-each select="./*[local-name() = 'property']">
- <xsl:choose>
- <xsl:when test="$bUnitofMeasure_or_Currency and @*[local-name() = 'name' and . = 'hierarchyCardinality']">
- <xsl:element name="property">
- <xsl:attribute name="name">hierarchyCardinality</xsl:attribute>
- 50
- </xsl:element>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="myCopy"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
- <xsl:element name="externalName">
- <xsl:value-of select="$extName"/>
- </xsl:element>
-
- <xsl:call-template name="annotate">
-
- <xsl:with-param name="value">
- <xsl:call-template name="getLocalizedString">
- <xsl:with-param name="stringID" select="$MODELUPGRADE_CREATED_OBJECT"/>
- <xsl:with-param name="localeVal" select="$defaultLocale"/>
- <xsl:with-param name="string1" select="$OBJECT_TYPE_HIERARCHY"/>
- <xsl:with-param name="string2" select="$hierarchy_name"/>
- <xsl:with-param name="string3" select="$OBJECT_TYPE_NAMESPACE"/>
- <xsl:with-param name="string4" select="$namespace_name"/>
- </xsl:call-template>
- </xsl:with-param>
- </xsl:call-template>
- <xsl:if test="$bUnitofMeasure_or_Currency">
-
- <xsl:variable name="level01_name" select="./*[local-name() = 'levels']/*[local-name() = 'level']/*[local-name() = 'name'][1]"/>
- <xsl:variable name="basedOnQI" select="$querySubject/*[local-name()='queryItem' and *[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale] and . = $level01_name]]"/>
- <xsl:for-each select="$querySubject/*[local-name()='levels']/*[local-name()='level' and *[local-name()='name' and . = $level01_name]]">
- <xsl:call-template name="addLevel00">
- <xsl:with-param name="hierarchy_name" select="$hierarchy_name"/>
- <xsl:with-param name="basedOnQI" select="$basedOnQI"/>
- </xsl:call-template>
- </xsl:for-each>
- </xsl:if>
- <xsl:for-each select="./*[local-name() = 'levels']/*[local-name() = 'level']/*[local-name() = 'name']">
- <xsl:variable name="level_name" select="string(.)"/>
- <xsl:variable name="basedOnQI" select="$querySubject/*[local-name()='queryItem' and *[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale] and . = $level_name]]"/>
- <xsl:for-each select="$querySubject/*[local-name()='levels']/*[local-name()='level' and *[local-name()='name' and . = $level_name]]">
- <xsl:call-template name="level">
- <xsl:with-param name="namespace_name" select="$namespace_name"/>
- <xsl:with-param name="dimension_name" select="$dimension_name"/>
- <xsl:with-param name="querySubject" select="$querySubject"/>
- <xsl:with-param name="hierarchy_name" select="$hierarchy_name"/>
- <xsl:with-param name="level_name" select="$level_name"/>
- <xsl:with-param name="basedOnQI" select="$basedOnQI"/>
- </xsl:call-template>
- </xsl:for-each>
- </xsl:for-each>
- </xsl:element>
- </xsl:template>
-
-
- <xsl:template name="level">
- <xsl:param name="namespace_name"/>
- <xsl:param name="dimension_name"/>
- <xsl:param name="querySubject"/>
- <xsl:param name="hierarchy_name"/>
- <xsl:param name="level_name"/>
- <xsl:param name="basedOnQI"/>
-
- <xsl:variable name="querySubject_name" select="string($querySubject/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:element name="{local-name()}">
- <xsl:call-template name="annotate">
-
- <xsl:with-param name="value">
- <xsl:call-template name="getLocalizedString">
- <xsl:with-param name="stringID" select="$MODELUPGRADE_CREATED_OBJECT"/>
- <xsl:with-param name="localeVal" select="$defaultLocale"/>
- <xsl:with-param name="string1" select="$OBJECT_TYPE_LEVEL"/>
- <xsl:with-param name="string2" select="$level_name"/>
- <xsl:with-param name="string3" select="$OBJECT_TYPE_NAMESPACE"/>
- <xsl:with-param name="string4" select="$namespace_name"/>
- </xsl:call-template>
- </xsl:with-param>
- </xsl:call-template>
- <xsl:call-template name="myCopyAttributes"/>
- <xsl:call-template name="localizeElement">
- <xsl:with-param name="basedOnItem" select="$basedOnQI"/>
- <xsl:with-param name="elementName" select="'name'"/>
- <xsl:with-param name="defaultValue" select="$level_name"/>
- </xsl:call-template>
- <xsl:call-template name="localizeElement">
- <xsl:with-param name="basedOnItem" select="$basedOnQI"/>
- <xsl:with-param name="elementName" select="'description'"/>
- <xsl:with-param name="defaultValue" select="$level_name"/>
- </xsl:call-template>
- <xsl:variable name="screenTip_Value">
- <xsl:call-template name="substring-findDelimited">
- <xsl:with-param name="strString" select="./*[local-name()='externalName']"/>
- <xsl:with-param name="strLeftDelimiter" select="'].['"/>
- <xsl:with-param name="strRightDelimiter" select="']'"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:call-template name="localizeElement">
- <xsl:with-param name="basedOnItem" select="$basedOnQI"/>
- <xsl:with-param name="elementName" select="'screenTip'"/>
- <xsl:with-param name="defaultValue" select="$screenTip_Value"/>
- </xsl:call-template>
- <xsl:for-each select="./*[local-name() = 'property']">
- <xsl:call-template name="myCopy"/>
- </xsl:for-each>
- <xsl:for-each select="*[local-name()='key']/*[local-name()='queryItems_collection']/*[local-name()='refobj']">
- <xsl:variable name="refobj_qsName" select="substring-before(substring-after(., '].[' ), ']')"/>
-
- <xsl:variable name="refobj_qiName" select="substring-before(substring-after(., concat('].[', $refobj_qsName, '].[') ), ']')"/>
-
- <xsl:apply-templates select="key('queryItem_using_qsID_qiName', concat(generate-id($querySubject), '||', $refobj_qiName))" mode="dimQueryItem"/>
- <xsl:variable name="bPromptType_selectDate" select="$basedOnQI/*[local-name()='datatype'] = 'date'"/>
- <xsl:variable name="bDimensionType_Time" select="$querySubject/*[local-name() = 'property' and @*[local-name() = 'name' and .='dimensionType']] = 'time'"/>
- <xsl:choose>
- <xsl:when test="$bDimensionType_Time or $bPromptType_selectDate">
- <xsl:variable name="sortOnRef_value">
- <xsl:if test="$bDimensionType_Time"><xsl:value-of select="concat('[', $namespace_name, '].[', $dimension_name, '].[', $hierarchy_name, '].[', $level_name, '].[', $refobj_qiName, ']')"/></xsl:if>
- </xsl:variable>
- <xsl:variable name="promptType_value">
- <xsl:if test="$bPromptType_selectDate"><xsl:value-of select="'selectDate'"/></xsl:if>
- </xsl:variable>
- <xsl:variable name="sortOnRef_SapAttributes" select="xalan:nodeset($AllSapAttributes_sortOnRef)"/>
- <xsl:apply-templates select="$sortOnRef_SapAttributes/node()" mode="sapAttributes">
- <xsl:with-param name="sortOnRef" select="$sortOnRef_value"/>
- <xsl:with-param name="promptType" select="$promptType_value"/>
- </xsl:apply-templates>
- </xsl:when>
- <xsl:otherwise>
- <xsl:copy-of select="$AllSapAttributes"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
- <xsl:for-each select="*[local-name()='attributes']/*[local-name()='refobj']">
- <xsl:variable name="refobj_qsName" select="substring-before(substring-after(., '].[' ), ']')"/>
-
- <xsl:variable name="refobj_qiName" select="substring-before(substring-after(., concat('].[', $refobj_qsName, '].[') ), ']')"/>
-
- <xsl:apply-templates select="key('queryItem_using_qsID_qiName', concat(generate-id($querySubject), '||', $refobj_qiName))" mode="dimQueryItem"/>
- </xsl:for-each>
- <xsl:element name="isUnique">
- <xsl:choose>
- <xsl:when test="./*[local-name()='key' and @*[local-name()='isUniqueKey' and . = 'true']]">true</xsl:when>
- <xsl:otherwise>false</xsl:otherwise>
- </xsl:choose>
- </xsl:element>
- <xsl:apply-templates select="./*[local-name()='externalName']"/>
- <xsl:apply-templates select="./*[local-name()='externalOrdinal']"/>
- </xsl:element>
- </xsl:template>
- <xsl:template match="*[local-name()='sortOnRef']" mode="sapAttributes">
- <xsl:param name="sortOnRef"/>
- <xsl:if test="$sortOnRef != ''">
- <xsl:element name="sortOnRef">
- <xsl:value-of select="$sortOnRef"/>
- </xsl:element>
- </xsl:if>
- </xsl:template>
- <xsl:template match="*[local-name()='promptType'][../../*[local-name()='externalName' and . = 'levelNumber']]/text()" mode="sapAttributes">
- <xsl:param name="promptType" select="'selectValue'"/>
- <xsl:choose>
- <xsl:when test="$promptType = 'selectDate'">selectDate</xsl:when>
- <xsl:otherwise>selectValue</xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template match="*" mode="sapAttributes">
- <xsl:param name="sortOnRef"/>
- <xsl:param name="promptType"/>
- <xsl:element name="{local-name()}">
- <xsl:apply-templates select="*|@*|text()" mode="sapAttributes">
- <xsl:with-param name="sortOnRef" select="$sortOnRef"/>
- <xsl:with-param name="promptType" select="$promptType"/>
- </xsl:apply-templates>
- </xsl:element>
- </xsl:template>
- <xsl:template match="@*" mode="sapAttributes">
- <xsl:attribute name="{local-name()}"><xsl:value-of select="."/></xsl:attribute>
- </xsl:template>
-
-
- <xsl:template name="copyDimensionQueryItems">
- <xsl:variable name="querySubject" select="ancestor::*[local-name()='querySubject'][1]"/>
- <xsl:variable name="querySubject_name" select="string($querySubject/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:variable name="namespace_name" select="string($querySubject/ancestor::*[local-name()='namespace'][1]/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:variable name="queryItem_name" select="string(*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:variable name="attributes_refobjs" select="../*[local-name()='levels']/*[local-name()='level']/*[local-name()='attributes']/*[local-name()='refobj']"/>
- <xsl:variable name="levelkey_refobjs" select="../*[local-name()='levels']/*[local-name()='level']/*[local-name()='key']/*[local-name()='queryItems_collection']/*[local-name()='refobj']"/>
- <xsl:variable name="refobj_value" select="concat('[', $namespace_name, '].[', $querySubject_name, '].[', $queryItem_name, ']')"/>
- <xsl:if test="not($refobj_value = $attributes_refobjs) and not($refobj_value = $levelkey_refobjs)">
- <xsl:element name="{local-name()}">
- <xsl:call-template name="myCopyAttributes"/>
- <xsl:apply-templates select="./*" mode="dimQueryItem"/>
- </xsl:element>
- </xsl:if>
- </xsl:template>
-
- <xsl:template match="*[local-name()='mdQuery']/*[local-name()='dimension']" mode="dimQueryItem">
- <xsl:apply-templates select="."/>
- </xsl:template>
-
- <xsl:template match="*[local-name()='mdQuery']/*[local-name()='dimension']">
- <xsl:call-template name="myCopy">
- <xsl:with-param name="elemName">mdDimension</xsl:with-param>
- </xsl:call-template>
- </xsl:template>
-
- <xsl:template match="*" mode="dimQueryItem">
- <xsl:if test="local-name()!= 'queryItemFolder' and not(ancestor::*[local-name()='querysubject'][1]/*[local-name()='definition']/*[local-name()='mdQuery'])">
- <xsl:element name="{name(.)}">
- <xsl:for-each select="@*">
- <xsl:attribute name="{local-name()}"><xsl:value-of select="."/></xsl:attribute>
- </xsl:for-each>
- <xsl:apply-templates select="node()" mode="dimQueryItem"/>
- </xsl:element>
- </xsl:if>
- </xsl:template>
-
-
- <xsl:template match="*[local-name()='relationship']">
-
- <xsl:call-template name="myCopy"/>
- <xsl:variable name="leftRefobj" select="string(*[local-name() = 'expression']/*[local-name() = 'refobj'][1])"/>
-
- <xsl:variable name="leftnamespace_name" select="substring-before(substring-after($leftRefobj, '['), ']')"/>
-
- <xsl:variable name="leftquerysubject_name" select="substring-before(substring-after($leftRefobj, '].['), ']')"/>
- <xsl:variable name="leftquerySubject" select="key('querySubject_using_ns_qs', concat('[', $leftnamespace_name, '].[', $leftquerysubject_name, ']'))"/>
- <xsl:variable name="leftMeasure" select="key('measureQS_using_ns_qs', concat('[', $leftnamespace_name, '].[', $leftquerysubject_name, ']'))"/>
- <xsl:variable name="IsLeftRegularDimension">
- <xsl:call-template name="isRegularDimension">
- <xsl:with-param name="querySubject" select="$leftquerySubject"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:variable name="rightRefobj" select="string(*[local-name() = 'expression']/*[local-name() = 'refobj'][2])"/>
-
- <xsl:variable name="rightnamespace_name" select="substring-before(substring-after($rightRefobj, '['), ']')"/>
-
- <xsl:variable name="rightquerysubject_name" select="substring-before(substring-after($rightRefobj, '].['), ']')"/>
- <xsl:variable name="rightquerySubject" select="key('querySubject_using_ns_qs', concat('[', $rightnamespace_name, '].[', $rightquerysubject_name, ']'))"/>
- <xsl:variable name="rightMeasure" select="key('measureQS_using_ns_qs', concat('[', $rightnamespace_name, '].[', $rightquerysubject_name, ']'))"/>
- <xsl:variable name="IsRightRegularDimension">
- <xsl:call-template name="isRegularDimension">
- <xsl:with-param name="querySubject" select="$rightquerySubject"/>
- </xsl:call-template>
- </xsl:variable>
-
- <xsl:choose>
- <xsl:when test="$rightMeasure and ($IsLeftRegularDimension=string(true()))">
-
- <xsl:element name="scopeRelationship">
- <xsl:element name="name">
- <xsl:value-of select="concat($dimensionNamePrefix, $rightquerysubject_name, ' <--> ', $dimensionNamePrefix, $leftquerysubject_name)"/>
- </xsl:element>
- <xsl:apply-templates select="*[local-name()='property']"/>
- <xsl:element name="left">
- <xsl:element name="refobj">
- <xsl:value-of select="concat('[', $leftnamespace_name, '].[', $dimensionNamePrefix, $leftquerysubject_name, ']')"/>
- </xsl:element>
- <xsl:element name="mincard">one</xsl:element>
- <xsl:element name="maxcard">one</xsl:element>
- </xsl:element>
- <xsl:element name="right">
- <xsl:element name="refobj">
- <xsl:value-of select="concat('[', $rightnamespace_name, '].[', $dimensionNamePrefix, $rightquerysubject_name, ']')"/>
- </xsl:element>
- <xsl:element name="mincard">many</xsl:element>
- <xsl:element name="maxcard">many</xsl:element>
- </xsl:element>
- </xsl:element>
- </xsl:when>
- <xsl:when test="$leftMeasure and ($IsRightRegularDimension=string(true()))">
-
- <xsl:element name="scopeRelationship">
- <xsl:element name="name">
- <xsl:value-of select="concat($dimensionNamePrefix, $leftquerysubject_name, ' <--> ', $dimensionNamePrefix, $rightquerysubject_name)"/>
- </xsl:element>
- <xsl:apply-templates select="*[local-name()='property']"/>
- <xsl:element name="left">
- <xsl:element name="refobj">
- <xsl:value-of select="concat('[', $leftnamespace_name, '].[', $dimensionNamePrefix, $leftquerysubject_name, ']')"/>
- </xsl:element>
- <xsl:element name="mincard">many</xsl:element>
- <xsl:element name="maxcard">many</xsl:element>
- </xsl:element>
- <xsl:element name="right">
- <xsl:element name="refobj">
- <xsl:value-of select="concat('[', $rightnamespace_name, '].[', $dimensionNamePrefix, $rightquerysubject_name, ']')"/>
- </xsl:element>
- <xsl:element name="mincard">one</xsl:element>
- <xsl:element name="maxcard">one</xsl:element>
- </xsl:element>
- </xsl:element>
- </xsl:when>
- </xsl:choose>
- </xsl:template>
-
-
-
- <xsl:template match="*[local-name()='securityFilters']/*[local-name()='securityFilterDefinition'][not(./*)]"/>
-
- <xsl:template match="*[local-name()='securityViews']/*[local-name()='securityView' and *[local-name()='isRoleBased']]">
- <xsl:element name="{local-name()}">
- <xsl:attribute name="isRoleBased"><xsl:value-of select="*[local-name()='isRoleBased']"/></xsl:attribute>
- <xsl:for-each select="@*">
- <xsl:attribute name="{local-name()}"><xsl:value-of select="."/></xsl:attribute>
- </xsl:for-each>
- <xsl:apply-templates select="./*[local-name() != 'isRoleBased']"/>
- </xsl:element>
- </xsl:template>
-
- <xsl:template match="*[local-name() = 'querySubject']/*[local-name() = 'definition']/*[local-name()='mdQuery' or local-name()='dbQuery']/*[local-name() = 'sql' and @*[local-name() = 'type' and . = 'sql99']]">
- <xsl:element name="{local-name()}">
- <xsl:attribute name="type">native</xsl:attribute>
- <xsl:value-of select="."/>
- </xsl:element>
- </xsl:template>
-
- <xsl:template match="*[local-name() = 'querySubject']/*[local-name() = 'definition']/*[local-name() = 'dbQuery']/*[local-name() = 'key' and not(./*[local-name() = 'queryItems_collection']/*)]"/>
-
-
-
- <xsl:template match="*[local-name()='mdQuery']" mode="MakeQSwithDimRefs">
- <xsl:element name="modelQuery">
- <xsl:element name="sql"/>
- <xsl:apply-templates select="./*[local-name()='filters']" mode="MakeQSwithDimRefs"/>
- </xsl:element>
- </xsl:template>
-
- <xsl:template match="*[local-name()='dimension']" mode="MakeQSwithDimRefs">
- <xsl:call-template name="myCopy">
- <xsl:with-param name="elemName">mdDimension</xsl:with-param>
- </xsl:call-template>
- </xsl:template>
-
- <xsl:template name="isRegularDimension">
- <xsl:param name="querySubject" select="."/>
- <xsl:variable name="namespace_name" select="string($querySubject/ancestor::*[local-name()='namespace'][1]/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:variable name="querySubject_name" select="string($querySubject/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:variable name="dimExternalName" select="$querySubject/*[local-name()='definition']/*[local-name()='mdQuery']/*[local-name()='dimension']"/>
- <xsl:variable name="IsDefHierQS" select="key('defHierQS_using_ns_qs', concat('[', $namespace_name, '].[', $querySubject_name, ']'))"/>
- <xsl:variable name="defHierQS" select="key('defHierQS_using_ns_dimExternalName', concat('[', $namespace_name, ']', $dimExternalName))"/>
- <xsl:variable name="firstAltHier" select="key('altHierQS_using_ns_dimExternalName', concat('[', $namespace_name, ']', $dimExternalName))[1]"/>
- <xsl:value-of select="$IsDefHierQS or (not($defHierQS) and (generate-id($firstAltHier) = generate-id($querySubject)))"/>
- </xsl:template>
-
- <xsl:template name="getDimensionName">
- <xsl:param name="querySubject" select="."/>
- <xsl:variable name="dimExternalName" select="$querySubject/*[local-name()='definition']/*[local-name()='mdQuery']/*[local-name()='dimension']"/>
- <xsl:if test="$dimExternalName">
- <xsl:choose>
- <xsl:when test="key('altHierQS_using_qsID', generate-id($querySubject))">
- <xsl:variable name="namespace_name" select="string($querySubject/ancestor::*[local-name()='namespace'][1]/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:variable name="defHierQS" select="key('defHierQS_using_ns_dimExternalName', concat('[', $namespace_name, ']', $dimExternalName))"/>
- <xsl:choose>
- <xsl:when test="$defHierQS">
- <xsl:value-of select="concat($dimensionNamePrefix, $defHierQS/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="concat($dimensionNamePrefix, key('altHierQS_using_ns_dimExternalName', concat('[', $namespace_name, ']', $dimExternalName))[1]/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:otherwise>
- <xsl:variable name="querySubject_name" select="string($querySubject/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:value-of select="concat($dimensionNamePrefix, $querySubject_name)"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:if>
- </xsl:template>
-
- <xsl:template match="*[local-name()='queryItem']" mode="MakeQSwithDimRefs">
- <xsl:variable name="queryItem" select="."/>
- <xsl:variable name="queryItem_name" select="string($queryItem/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:variable name="querySubject" select="ancestor::*[local-name()='querySubject'][1]"/>
- <xsl:variable name="querySubject_name" select="string($querySubject/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:variable name="namespace_name" select="string($querySubject/ancestor::*[local-name()='namespace'][1]/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:element name="queryItem">
-
- <xsl:call-template name="myCopyAttributes"/>
-
- <xsl:variable name="generateidAnchorForExpression" select="generate-id($queryItem/*[local-name()='name' or local-name()='description' or local-name()='lastChanged' or local-name()='screenTip' or local-name()='property'][last()])"/>
- <xsl:for-each select="node()">
- <xsl:choose>
- <xsl:when test="local-name() = 'columnName'"/>
-
- <xsl:when test="generate-id(.) = $generateidAnchorForExpression">
-
-
- <xsl:call-template name="myCopy"/>
-
- <xsl:variable name="dimension_name">
- <xsl:call-template name="getDimensionName">
- <xsl:with-param name="querySubject" select="$querySubject"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$AllmdQueryMeasureDimensions[generate-id() = generate-id($querySubject)]">
- <xsl:element name="expression">
- <xsl:variable name="embeddedCalc" select="$querySubject/*[local-name()='definition']/*[local-name()='mdQuery' or local-name()='dbQuery']/*[local-name()='calculations']/*[local-name()='calculationDefinition']/*[local-name()='dataItemName' and .=$queryItem_name]"/>
- <xsl:choose>
-
- <xsl:when test="$embeddedCalc">
- <xsl:for-each select="$embeddedCalc/../*[local-name()='expression']/node()">
- <xsl:call-template name="myCopy"/>
- </xsl:for-each>
- </xsl:when>
-
- <xsl:when test="$queryItem/*[local-name() ='hidden' and . = 'true']">
- <xsl:element name="refobj">
- <xsl:call-template name="resolveRelationshipReference">
- <xsl:with-param name="refObj" select="concat('[', $namespace_name, '].[', $querySubject_name, '].[', $queryItem_name, ']')"/>
- </xsl:call-template>
- </xsl:element>
- </xsl:when>
-
- <xsl:otherwise>
- <xsl:element name="refobj">
- <xsl:value-of select="concat('[', $namespace_name, '].[', $dimension_name, '].[', $queryItem_name, ']')"/>
- </xsl:element>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:element>
- </xsl:when>
- <xsl:otherwise>
-
- <xsl:variable name="attributes_refobjs" select="$querySubject/*[local-name()='levels']/*[local-name()='level']/*[local-name()='attributes']/*[local-name()='refobj']"/>
- <xsl:variable name="levelkey_refobjs" select="$querySubject/*[local-name()='levels']/*[local-name()='level']/*[local-name()='key']/*[local-name()='queryItems_collection']/*[local-name()='refobj']"/>
- <xsl:variable name="refobj_value" select="concat('[', $namespace_name, '].[', $querySubject_name, '].[', $queryItem_name, ']')"/>
- <xsl:element name="expression">
- <xsl:variable name="attribute_refobj" select="$attributes_refobjs[. = $refobj_value]"/>
- <xsl:variable name="levelkey_refobj" select="$levelkey_refobjs[. = $refobj_value]"/>
- <xsl:choose>
- <xsl:when test="$attribute_refobj">
- <xsl:variable name="level_name" select="string($attribute_refobj/../../*[local-name()='name'])"/>
- <xsl:variable name="hierarchy_name" select="string($querySubject/*[local-name()='hierarchies']/*[local-name()='hierarchy']/*[local-name()='name'])"/>
- <xsl:element name="refobj">
- <xsl:value-of select="concat('[', $namespace_name, '].[', $dimension_name, '].[', $hierarchy_name, '].[', $level_name, '].[', $queryItem_name, ']')"/>
- </xsl:element>
- <xsl:call-template name="annotate">
-
- <xsl:with-param name="value">
- <xsl:call-template name="getLocalizedString">
- <xsl:with-param name="stringID" select="$MODELUPGRADE_CREATED_OBJECT"/>
- <xsl:with-param name="localeVal" select="$defaultLocale"/>
- <xsl:with-param name="string1" select="$OBJECT_TYPE_ATTRIBUTE"/>
- <xsl:with-param name="string2" select="$queryItem_name"/>
- <xsl:with-param name="string3" select="$OBJECT_TYPE_LEVEL"/>
- <xsl:with-param name="string4" select="$level_name"/>
- </xsl:call-template>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:when>
- <xsl:when test="$levelkey_refobj">
- <xsl:variable name="level_name" select="string($levelkey_refobj/../../../*[local-name()='name'])"/>
- <xsl:variable name="hierarchy_name" select="string($querySubject/*[local-name()='hierarchies']/*[local-name()='hierarchy']/*[local-name()='name'])"/>
- <xsl:element name="refobj">
- <xsl:value-of select="concat('[', $namespace_name, '].[', $dimension_name, '].[', $hierarchy_name, '].[', $level_name, '].[', $queryItem_name, ']')"/>
- </xsl:element>
- <xsl:call-template name="annotate">
-
- <xsl:with-param name="value">
- <xsl:call-template name="getLocalizedString">
- <xsl:with-param name="stringID" select="$MODELUPGRADE_CREATED_OBJECT"/>
- <xsl:with-param name="localeVal" select="$defaultLocale"/>
- <xsl:with-param name="string1" select="$OBJECT_TYPE_KEY"/>
- <xsl:with-param name="string2" select="$queryItem_name"/>
- <xsl:with-param name="string3" select="$OBJECT_TYPE_LEVEL"/>
- <xsl:with-param name="string4" select="$level_name"/>
- </xsl:call-template>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:message terminate="yes">
- <xsl:value-of select="concat('refobj', $nOldSchema, ' model.')"/>
- </xsl:message>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:element>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:otherwise>
-
- <xsl:apply-templates select="."/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
- </xsl:element>
- </xsl:template>
-
- <xsl:template match="*[local-name()='levels' or local-name()='hierarchies']" mode="MakeQSwithDimRefs">
- <xsl:apply-templates select="."/>
- </xsl:template>
-
- <xsl:template match="*" mode="MakeQSwithDimRefs">
- <xsl:element name="{local-name()}">
- <xsl:for-each select="@*">
- <xsl:attribute name="{local-name()}"><xsl:value-of select="."/></xsl:attribute>
- </xsl:for-each>
- <xsl:apply-templates select="node()" mode="MakeQSwithDimRefs"/>
- </xsl:element>
- </xsl:template>
-
-
- <xsl:template match="*[local-name()='querySubject']/*[local-name()='levels' or local-name()='hierarchies']">
- <xsl:element name="{local-name()}">
- <xsl:for-each select="./*">
- <xsl:call-template name="myCopy">
- <xsl:with-param name="elemName" select="concat($levelNamePrefix, local-name())"/>
- </xsl:call-template>
- </xsl:for-each>
- </xsl:element>
- </xsl:template>
-
-
- <xsl:template name="localizeElement">
- <xsl:param name="basedOnItem"/>
- <xsl:param name="elementName" select="local-name()"/>
- <xsl:param name="defaultValue" select="."/>
- <xsl:element name="{$elementName}">
- <xsl:attribute name="locale"><xsl:value-of select="$defaultLocale"/></xsl:attribute>
- <xsl:value-of select="$defaultValue"/>
- </xsl:element>
- <xsl:for-each select="$AllProjectLocales/*[local-name()='locale' and . != $defaultLocale]">
- <xsl:variable name="localItr" select="."/>
- <xsl:element name="{$elementName}">
- <xsl:attribute name="locale"><xsl:value-of select="."/></xsl:attribute>
- <xsl:choose>
- <xsl:when test="$basedOnItem">
- <xsl:value-of select="$basedOnItem/*[local-name()=$elementName and @*[local-name()='locale' and . = $localItr]]"/>
- </xsl:when>
- <xsl:when test="$defaultValue = ''">
- <xsl:value-of select="''"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="concat('(', . , ') ' , $defaultValue)"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:element>
- </xsl:for-each>
- </xsl:template>
-
-
- <xsl:template match="*[local-name()='securityView']/*[local-name()='definition']">
- <xsl:element name="definition">
- <xsl:for-each select="./*[local-name()='set']">
- <xsl:element name="set">
- <xsl:attribute name="includeRule"><xsl:value-of select="./@*[local-name()='includeRule']"/></xsl:attribute>
- <xsl:for-each select="./*[local-name()='refobj']">
- <xsl:variable name="id">
- <xsl:value-of select="./*[local-name()='refobj']"/>
- </xsl:variable>
- <xsl:variable name="qsName" select="substring-before(substring-after($id, '].[' ), ']')"/>
- <xsl:variable name="regDim" select="$AllmdQueryQS/*[local-name()='name' and .=$qsName]"/>
- <xsl:variable name="measureDim" select="$AllmdQueryMeasureDimensions/*[local-name()='name' and .=$qsName]"/>
- <xsl:if test="not($regDim) and not($measureDim)">
- <xsl:call-template name="myCopy"/>
- </xsl:if>
- </xsl:for-each>
- </xsl:element>
- </xsl:for-each>
- <xsl:if test="$AllmdQueryQS or $AllmdQueryMeasureDimensions">
- <xsl:element name="set">
- <xsl:attribute name="includeRule">hide</xsl:attribute>
-
- <xsl:for-each select="$AllDefaultHierarchyQS | $AllmdQueryMeasureDimensions">
- <xsl:element name="refobj">
- <xsl:value-of select="concat('[' ,ancestor::*[local-name()='namespace'][1]/*[local-name()='name'],']', '.' , '[' , $dimensionNamePrefix, ./*[local-name()='name'], ']')"/>
- </xsl:element>
- </xsl:for-each>
- </xsl:element>
- </xsl:if>
- </xsl:element>
- </xsl:template>
-
-
- <xsl:template match="@*[local-name() = 'locale']/text()">
- <xsl:value-of select="translate(., $uppercase, $lowercase)"/>
- </xsl:template>
- <xsl:template match="/*[local-name() = 'project']/*[local-name() = 'locales']/*[local-name() = 'locale']/text()">
- <xsl:value-of select="translate(., $uppercase, $lowercase)"/>
- </xsl:template>
- <xsl:template match="/*[local-name() = 'project']/*[local-name() = 'defaultLocale']/text()">
- <xsl:value-of select="translate(., $uppercase, $lowercase)"/>
- </xsl:template>
-
-
-
- <xsl:template match="/*[local-name()='project']/*[local-name()='parameterMaps']/*[local-name()='parameterMap' and *[local-name() = 'name' and . = '_governor']]/*[local-name()='parameterMapEntry' and *[local-name()='key' and (. = 'useMetadataCallback' or . = 'useSQLWithClause')]]">
- </xsl:template>
-
- <xsl:template match="/*[local-name()='project']/*[local-name()='parameterMaps']/*[local-name()='parameterMap' and *[local-name() = 'name' and . = '_governor']]/*[local-name() = 'name' or local-name() = 'property' or local-name() = 'defaultValue' or local-name()='parameterMapEntry'][last()]">
- <xsl:variable name="AllGovernors" select="/*[local-name()='project']/*[local-name()='parameterMaps']/*[local-name()='parameterMap' and *[local-name() = 'name' and . = '_governor']]"/>
- <xsl:variable name="governor_useMetadataCallback" select="$AllGovernors/*[local-name()='parameterMapEntry' and *[local-name()='key' and . = 'useMetadataCallback']]"/>
-
- <xsl:if test="not(*[local-name()='key' and (. = 'useMetadataCallback' or . = 'useSQLWithClause')])">
- <xsl:call-template name="myCopy"/>
- </xsl:if>
-
-
- <xsl:choose>
- <xsl:when test="$AllUpgradeDatatypeQuerySubjects">
- <xsl:element name="parameterMapEntry">
- <xsl:element name="key">useMetadataCallback</xsl:element>
- <xsl:element name="value">false</xsl:element>
- </xsl:element>
- </xsl:when>
- <xsl:otherwise>
-
- <xsl:for-each select="$governor_useMetadataCallback">
- <xsl:call-template name="myCopy"/>
- </xsl:for-each>
- </xsl:otherwise>
- </xsl:choose>
-
- <xsl:variable name="governor_useSQLWithClause" select="$AllGovernors/*[local-name()='parameterMapEntry' and *[local-name()='key' and . = 'useSQLWithClause']]"/>
- <xsl:choose>
-
- <xsl:when test="$governor_useSQLWithClause">
- <xsl:for-each select="$governor_useSQLWithClause">
- <xsl:call-template name="myCopy"/>
- </xsl:for-each>
- </xsl:when>
- <xsl:otherwise>
- <xsl:element name="parameterMapEntry">
- <xsl:element name="key">useSQLWithClause</xsl:element>
- <xsl:element name="value">false</xsl:element>
- </xsl:element>
- </xsl:otherwise>
- </xsl:choose>
-
- <xsl:element name="parameterMapEntry">
- <xsl:element name="key">dynamicDimensionInfo</xsl:element>
- <xsl:element name="value">true</xsl:element>
- </xsl:element>
- <xsl:call-template name="annotate">
- <xsl:with-param name="value" select="$strWarnDimensionInfo"/>
- </xsl:call-template>
- </xsl:template>
-
- <xsl:template match="*[local-name() = 'project']/*[1]">
- <xsl:if test="$AllUpgradeDatatypeQuerySubjects">
- <xsl:call-template name="annotate">
- <xsl:with-param name="value" select="$strWarnModelPortability"/>
- </xsl:call-template>
- </xsl:if>
-
- <xsl:call-template name="myCopy"/>
- </xsl:template>
-
- <xsl:template match="*[local-name() = 'querySubject'][*[local-name() = 'definition' and *[local-name() = 'dbQuery' or local-name() = 'storedProcedure']]]">
- <xsl:variable name="namespace_name" select="string(ancestor::*[local-name()='namespace'][1]/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:variable name="querySubject_name" select="string(current()/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:element name="{name(.)}">
-
- <xsl:attribute name="status">needsReevaluation</xsl:attribute>
- <xsl:for-each select="./*">
- <xsl:choose>
- <xsl:when test="generate-id(.) = generate-id(../*[local-name() = 'name' or local-name() = 'description' or local-name() = 'lastChanged' or local-name() = 'screenTip' or local-name() = 'property'][last()])">
-
- <xsl:call-template name="myCopy"/>
-
- <xsl:element name="property">
- <xsl:attribute name="name">enhancedModelPortabilityRequired</xsl:attribute>
- <xsl:attribute name="type">hidden</xsl:attribute>
- <xsl:value-of select="true"/>
- </xsl:element>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates select="."/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
- </xsl:element>
- </xsl:template>
-
-
- <xsl:template match="*[local-name()='queryItem' and *[local-name()='columnName' and .='[MEMBER_UNIQUE_NAME]']]/*[last()]" mode="dimQueryItem">
-
- <xsl:element name="{local-name(.)}">
- <xsl:for-each select="@*">
- <xsl:attribute name="{local-name(.)}"><xsl:value-of select="."/></xsl:attribute>
- </xsl:for-each>
- <xsl:apply-templates select="node()" mode="dimQueryItem"/>
- </xsl:element>
- <xsl:copy-of select="$AllBusinessKeyRoles"/>
- </xsl:template>
- <xsl:template name="AddSapAttribute">
- <xsl:param name="attribNameID"/>
- <xsl:param name="attribDescID"/>
- <xsl:param name="attribDataType"/>
- <xsl:param name="attribExtName"/>
- <xsl:param name="attribRole"/>
- <xsl:param name="sortOnRef" select="false()"/>
- <xsl:param name="attribHidden" select="true()"/>
- <xsl:param name="bLocalize" select="true()"/>
- <xsl:element name="queryItem">
- <xsl:for-each select="$AllProjectLocales/*[local-name()='locale']">
- <xsl:element name="name">
- <xsl:attribute name="locale"><xsl:value-of select="."/></xsl:attribute>
- <xsl:call-template name="getLocalizedString">
- <xsl:with-param name="stringID" select="$attribNameID"/>
- <xsl:with-param name="localeVal" select="."/>
- <xsl:with-param name="bLocalize" select="$bLocalize"/>
- </xsl:call-template>
- </xsl:element>
- </xsl:for-each>
- <xsl:for-each select="$AllProjectLocales/*[local-name()='locale']">
- <xsl:element name="description">
- <xsl:attribute name="locale"><xsl:value-of select="."/></xsl:attribute>
- <xsl:call-template name="getLocalizedString">
- <xsl:with-param name="stringID" select="$attribDescID"/>
- <xsl:with-param name="localeVal" select="."/>
- <xsl:with-param name="bLocalize" select="$bLocalize"/>
- </xsl:call-template>
- </xsl:element>
- </xsl:for-each>
- <xsl:for-each select="$AllProjectLocales/*[local-name()='locale']">
- <xsl:element name="screenTip">
- <xsl:attribute name="locale"><xsl:value-of select="."/></xsl:attribute>
- <xsl:call-template name="getLocalizedString">
- <xsl:with-param name="stringID" select="$attribDescID"/>
- <xsl:with-param name="localeVal" select="."/>
- <xsl:with-param name="bLocalize" select="$bLocalize"/>
- </xsl:call-template>
- </xsl:element>
- </xsl:for-each>
- <xsl:element name="externalName">
- <xsl:value-of select="$attribExtName"/>
- </xsl:element>
- <xsl:if test="$attribHidden">
- <xsl:element name="hidden">true</xsl:element>
- </xsl:if>
- <xsl:element name="usage">attribute</xsl:element>
- <xsl:element name="datatype">
- <xsl:value-of select="$attribDataType"/>
- </xsl:element>
- <xsl:element name="promptInfo">
- <xsl:element name="promptType">
- <xsl:choose>
-
- <xsl:when test="$attribExtName = 'levelNumber'">selectDate</xsl:when>
- <xsl:otherwise>selectValue</xsl:otherwise>
- </xsl:choose>
- </xsl:element>
- </xsl:element>
- <xsl:if test="$sortOnRef">
- <xsl:element name="sortOnRef"/>
- </xsl:if>
- <xsl:element name="roles">
- <xsl:element name="role">
- <xsl:for-each select="$AllProjectLocales/*[local-name()='locale']">
- <xsl:element name="name">
- <xsl:attribute name="locale"><xsl:value-of select="."/></xsl:attribute>
- <xsl:value-of select="$attribRole"/>
- </xsl:element>
- </xsl:for-each>
- </xsl:element>
- </xsl:element>
- </xsl:element>
- </xsl:template>
-
-
-
- <xsl:template match="*[local-name()='promptDisplayItemRef']/text()" mode="dimQueryItem">
- <xsl:variable name="refobj_value" select="."/>
- <xsl:variable name="namespace_name" select="substring-before(substring-after(., '['), ']')"/>
-
- <xsl:variable name="querySubject_name" select="substring-before(substring-after(., '].[' ), ']')"/>
-
- <xsl:variable name="queryItem_name" select="substring-before(substring-after(., concat('].[', $querySubject_name, '].[') ), ']')"/>
-
- <xsl:variable name="querySubject" select="ancestor::*[local-name()='querySubject'][1]"/>
- <xsl:variable name="level_name">
- <xsl:variable name="attribute_refobj_name" select="$querySubject/*[local-name()='levels']/*[local-name()='level']/*[local-name()='attributes']/*[local-name()='refobj' and .= $refobj_value]/../../*[local-name()='name']"/>
- <xsl:variable name="levelkey_refobj_name" select="$querySubject/*[local-name()='levels']/*[local-name()='level']/*[local-name()='key']/*[local-name()='queryItems_collection']/*[local-name()='refobj' and .= $refobj_value]/../../../*[local-name()='name']"/>
- <xsl:value-of select="$attribute_refobj_name|$levelkey_refobj_name"/>
- </xsl:variable>
-
- <xsl:variable name="dimension_name">
- <xsl:call-template name="getDimensionName">
- <xsl:with-param name="querySubject" select="$querySubject"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:variable name="hierarchy_name" select="string($querySubject/*[local-name()='hierarchies']/*[local-name()='hierarchy']/*[local-name()='name'])"/>
- <xsl:value-of select="concat('[', $namespace_name, '].[', $dimension_name, '].[', $hierarchy_name, '].[', $level_name, '].[', $queryItem_name, ']')"/>
- </xsl:template>
-
-
- <xsl:template match="*[local-name()='queryItem' and *[local-name()='usage' and .='attribute']]" mode="dimQueryItem">
- <xsl:element name="queryItem">
- <xsl:call-template name="myCopyAttributes"/>
- <xsl:apply-templates select="*[local-name() != 'promptInfo' and local-name() != 'sortOnRef']" mode="dimQueryItem"/>
- <xsl:variable name="queryItem" select="."/>
- <xsl:variable name="queryItem_name" select="string($queryItem/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:variable name="querySubject" select="$queryItem/ancestor::*[local-name()='querySubject'][1]"/>
- <xsl:variable name="querySubject_name" select="string($querySubject/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:variable name="namespace_name" select="string($querySubject/ancestor::*[local-name()='namespace'][1]/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:variable name="refobj_value" select="concat('[', $namespace_name, '].[', $querySubject_name, '].[', $queryItem_name, ']')"/>
- <xsl:variable name="level" select="$querySubject/*[local-name()='levels']/*[local-name()='level' and *[local-name()='attributes']/*[local-name()='refobj' and .= $refobj_value]]"/>
- <xsl:variable name="level_name" select="$level/*[local-name()='name']"/>
- <xsl:variable name="dimension_name">
- <xsl:call-template name="getDimensionName">
- <xsl:with-param name="querySubject" select="$querySubject"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:variable name="hierarchy_name" select="string($querySubject/*[local-name()='hierarchies']/*[local-name()='hierarchy']/*[local-name()='name'])"/>
- <xsl:variable name="memberUniqueName">
- <xsl:call-template name="substring-findDelimited">
- <xsl:with-param name="strString" select="$level/*[local-name()='key']/*[local-name()='queryItems_collection']/*[local-name()='refobj']"/>
- <xsl:with-param name="strLeftDelimiter" select="concat('].[', $querySubject_name, '].[')"/>
- <xsl:with-param name="strRightDelimiter" select="']'"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:element name="promptInfo">
- <xsl:apply-templates select="*[local-name()='promptInfo']/*" mode="dimQueryItem"/>
- <xsl:if test="$level_name">
-
- <xsl:element name="promptFilterItemRef">
- <xsl:value-of select="concat('[', $namespace_name, '].[', $dimension_name, '].[', $hierarchy_name, '].[', $level_name, '].[', $memberUniqueName, ']')"/>
- </xsl:element>
- </xsl:if>
- </xsl:element>
- <xsl:if test="$querySubject/*[local-name() = 'property' and @*[local-name() = 'name' and .='dimensionType']] = 'time'">
- <xsl:element name="sortOnRef">
- <xsl:value-of select="concat('[', $namespace_name, '].[', $dimension_name, '].[', $hierarchy_name, '].[', $level_name, '].[', $memberUniqueName, ']')"/>
- </xsl:element>
- </xsl:if>
- </xsl:element>
- </xsl:template>
-
-
- <xsl:template name="addLevel00">
-
- <xsl:param name="hierarchy_name"/>
- <xsl:param name="basedOnQI"/>
-
- <xsl:variable name="querySubject" select="ancestor::*[local-name()='querySubject'][1]"/>
- <xsl:variable name="external01" select="./*[local-name()='externalName']"/>
- <xsl:variable name="externalName" select="concat(substring-before(substring-after($external01, '].['), '01]'), '00')"/>
- <xsl:variable name="externalNameRefobj" select="concat(substring-before($external01, '].['), '].[', $externalName, ']')"/>
- <xsl:variable name="namespace_name2" select="string(ancestor::*[local-name()='namespace'][1]/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:variable name="querySubject_name2" select="string(ancestor::*[local-name()='querySubject'][1]/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:element name="{local-name()}">
- <xsl:call-template name="annotate">
-
- <xsl:with-param name="value">
- <xsl:call-template name="getLocalizedString">
- <xsl:with-param name="stringID" select="$MODELUPGRADE_CREATED_OBJECT"/>
- <xsl:with-param name="localeVal" select="$defaultLocale"/>
- <xsl:with-param name="string1" select="$OBJECT_TYPE_LEVEL"/>
- <xsl:with-param name="string2" select="$hierarchy_name"/>
- <xsl:with-param name="string3" select="$OBJECT_TYPE_NAMESPACE"/>
- <xsl:with-param name="string4" select="$namespace_name2"/>
- </xsl:call-template>
- </xsl:with-param>
- </xsl:call-template>
- <xsl:call-template name="myCopyAttributes"/>
- <xsl:variable name="levelNames">
- <xsl:for-each select="$AllProjectLocales/*[local-name()='locale']">
- <xsl:variable name="localItr" select="."/>
- <xsl:element name="name">
- <xsl:attribute name="locale"><xsl:value-of select="$localItr"/></xsl:attribute>
- <xsl:value-of select="concat($querySubject/*[local-name()='name' and @*[local-name()='locale' and . = $localItr]], ' ', xalan:nodeset($AllLevelLocalizedStrings)/*[local-name()=$localItr])"/>
- </xsl:element>
- </xsl:for-each>
- </xsl:variable>
- <xsl:copy-of select="$levelNames"/>
- <xsl:call-template name="localizeElement">
- <xsl:with-param name="elementName" select="'description'"/>
- <xsl:with-param name="defaultValue" select="string($externalName)"/>
- </xsl:call-template>
- <xsl:call-template name="localizeElement">
- <xsl:with-param name="elementName" select="'screenTip'"/>
- <xsl:with-param name="defaultValue" select="string($externalName)"/>
- </xsl:call-template>
- <xsl:copy-of select="./*[local-name() = 'property']"/>
- <xsl:for-each select="*[local-name()='key']/*[local-name()='queryItems_collection']/*[local-name()='refobj']">
- <xsl:variable name="namespace_name" select="substring-before(substring-after(., '['), ']')"/>
-
- <xsl:variable name="querySubject_name" select="substring-before(substring-after(., '].[' ), ']')"/>
-
- <xsl:variable name="queryItem_name" select="substring-before(substring-after(., concat('].[', $querySubject_name, '].[') ), ']')"/>
-
- <xsl:call-template name="addLevel00QueryItem">
- <xsl:with-param name="basedOnQI" select="key('queryItem_using_qsID_qiName', concat(generate-id($querySubject), '||', $queryItem_name))"/>
- <xsl:with-param name="hierarchy_name" select="$hierarchy_name"/>
- <xsl:with-param name="levelNames" select="$levelNames"/>
- <xsl:with-param name="queryItem_name" select="concat($queryItem_name, ' ', $strLevelAll)"/>
- </xsl:call-template>
- </xsl:for-each>
- <xsl:copy-of select="$AllSapAttributes"/>
- <xsl:for-each select="*[local-name()='attributes']/*[local-name()='refobj']">
- <xsl:variable name="namespace_name" select="substring-before(substring-after(., '['), ']')"/>
-
- <xsl:variable name="querySubject_name" select="substring-before(substring-after(., '].[' ), ']')"/>
-
- <xsl:variable name="queryItem_name" select="substring-before(substring-after(., concat('].[', $querySubject_name, '].[') ), ']')"/>
-
- <xsl:call-template name="addLevel00QueryItem">
- <xsl:with-param name="basedOnQI" select="key('queryItem_using_qsID_qiName', concat(generate-id($querySubject), '||', $queryItem_name))"/>
- <xsl:with-param name="hierarchy_name" select="$hierarchy_name"/>
- <xsl:with-param name="levelNames" select="$levelNames"/>
- <xsl:with-param name="queryItem_name" select="concat($queryItem_name, ' ', $strLevelAll)"/>
- </xsl:call-template>
- </xsl:for-each>
- <xsl:element name="isUnique">true</xsl:element>
- <xsl:element name="externalName"><xsl:value-of select="$externalNameRefobj"/></xsl:element>
- <xsl:element name="externalOrdinal">00</xsl:element>
- </xsl:element>
- </xsl:template>
- <xsl:template name="addLevel00QueryItem">
- <xsl:param name="basedOnQI"/>
- <xsl:param name="hierarchy_name"/>
- <xsl:param name="levelNames"/>
- <xsl:param name="queryItem_name"/>
- <xsl:variable name="level_name" select="xalan:nodeset($levelNames)/*[1]"/>
- <xsl:element name="queryItem">
- <xsl:variable name="bIsMemberUniqueName" select="$basedOnQI/*[local-name()='columnName' and .='[MEMBER_UNIQUE_NAME]']"/>
- <xsl:choose>
- <xsl:when test="$bIsMemberUniqueName">
- <xsl:copy-of select="$levelNames"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="localizeElement">
- <xsl:with-param name="elementName" select="'name'"/>
- <xsl:with-param name="defaultValue" select="$queryItem_name"/>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:call-template name="localizeElement">
- <xsl:with-param name="elementName" select="'description'"/>
- <xsl:with-param name="defaultValue" select="$queryItem_name"/>
- </xsl:call-template>
- <xsl:call-template name="localizeElement">
- <xsl:with-param name="elementName" select="'screenTip'"/>
- <xsl:with-param name="defaultValue" select="$queryItem_name"/>
- </xsl:call-template>
- <xsl:copy-of select="$basedOnQI/*[local-name() != 'name' and local-name() != 'description' and local-name() != 'screenTip' and local-name() != 'promptInfo']"/>
- <xsl:element name="promptInfo">
- <xsl:element name="promptType">selectValue</xsl:element>
- <xsl:choose>
- <xsl:when test="$bIsMemberUniqueName">
- <xsl:element name="promptDisplayItemRef">
- <xsl:variable name="promptDisplayItemRef">
- <xsl:apply-templates select="$basedOnQI/*[local-name() = 'promptInfo']/*[local-name() = 'promptDisplayItemRef']/text()"/>
- </xsl:variable>
- <xsl:variable name="namespace_name" select="substring-before(substring-after($promptDisplayItemRef, '['), ']')"/>
-
- <xsl:variable name="querySubject_name" select="substring-before(substring-after($promptDisplayItemRef, '].[' ), ']')"/>
-
- <xsl:variable name="queryItem01_name" select="substring-before(substring-after($promptDisplayItemRef, concat('].[', $querySubject_name, '].[') ), ']')"/>
-
- <xsl:value-of select="concat('[', $namespace_name, '].[', $dimensionNamePrefix, $querySubject_name, '].[', $hierarchy_name, '].[', $level_name, '].[', concat($queryItem01_name, ' ', $strLevelAll), ']')"/>
- </xsl:element>
- </xsl:when>
- <xsl:otherwise>
- <xsl:element name="promptFilterItemRef">
- <xsl:variable name="querySubject" select="$basedOnQI/ancestor::*[local-name()='querySubject'][1]"/>
- <xsl:variable name="querySubject_name" select="string($querySubject/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:variable name="namespace_name" select="string($querySubject/ancestor::*[local-name()='namespace'][1]/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:variable name="queryItem01_name" select="string($basedOnQI/*[local-name()='name' and @*[local-name()='locale' and translate(., $uppercase, $lowercase) = $defaultLocale]])"/>
- <xsl:variable name="memberUniqueName">
- <xsl:variable name="level01" select="$querySubject/*[local-name()='levels']/*[local-name()='level' and *[local-name()='attributes']/*[local-name()='refobj' and .= $queryItem01_name]]"/>
- <xsl:call-template name="substring-findDelimited">
- <xsl:with-param name="strString" select="$level01/*[local-name()='key']/*[local-name()='queryItems_collection']/*[local-name()='refobj']"/>
- <xsl:with-param name="strLeftDelimiter" select="concat('].[', $querySubject_name, '].[')"/>
- <xsl:with-param name="strRightDelimiter" select="']'"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:value-of select="concat('[', $namespace_name, '].[', $dimensionNamePrefix, $querySubject_name, '].[', $hierarchy_name, '].[', $level_name, '].[', $level_name, ']')"/>
- </xsl:element>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:element>
- <xsl:if test="$bIsMemberUniqueName">
- <xsl:copy-of select="$AllBusinessKeyRoles"/>
- </xsl:if>
- </xsl:element>
- </xsl:template>
-
-
- <xsl:template match="/*[local-name()='project']/*[local-name()='dataSources']/*[local-name()='dataSource']/*[local-name()='property' and @*[local-name()='name' and .='SAP BW Variables']]/*[local-name()='property']/*[local-name()='property' and @*[local-name()='name' and .='caption']]/*[local-name()='property']">
- <xsl:element name="{local-name()}">
- <xsl:call-template name="myCopyAttributes"/>
- <xsl:attribute name="type">string</xsl:attribute>
- <xsl:apply-templates select="node()"/>
- </xsl:element>
- </xsl:template>
-
-
-
- <xsl:variable name="sEmptyNamespace" select="string(document('')/*/namespace::*[name()=''])"/>
- <xsl:variable name="nNewSchema" select="number(substring-before(substring-after($sEmptyNamespace, 'http://www.developer.cognos.com/schemas/bmt/'), '/'))"/>
- <xsl:variable name="nOldSchema" select="32"/>
- <xsl:variable name="dimensionNamePrefix">_</xsl:variable>
- <xsl:variable name="levelNamePrefix">_</xsl:variable>
- <xsl:variable name="strLevelAll">
- <xsl:call-template name="getLocalizedString">
- <xsl:with-param name="stringID" select="$LEVEL_ALL"/>
- <xsl:with-param name="localeVal" select="$defaultLocale"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:variable name="strWarnDimensionInfo">
- <xsl:call-template name="getLocalizedString">
- <xsl:with-param name="stringID" select="$MODELUPGRADE_WARN_DIMENSION_INFO"/>
- <xsl:with-param name="localeVal" select="$defaultLocale"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:variable name="strWarnModelPortability">
- <xsl:call-template name="getLocalizedString">
- <xsl:with-param name="stringID" select="$MODELUPGRADE_WARN_MODEL_PORTABILITY"/>
- <xsl:with-param name="localeVal" select="$defaultLocale"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:key
- name="querySubject_using_ns_qs"
- match="*[local-name()='querySubject']"
- use="concat(
- '[',
- ancestor::*[local-name()='namespace'][1]/*[local-name()='name' and @*[local-name()='locale' and translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = translate(/*[local-name()='project']/*[local-name()='defaultLocale'], 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')]],
- '].[',
- *[local-name() = 'name' and @*[local-name()='locale' and translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = translate(/*[local-name()='project']/*[local-name()='defaultLocale'], 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')]],
- ']')"/>
- <xsl:key
- name="measureQS_using_ns_qs"
- match="*[local-name()='querySubject'][*[local-name() = 'definition' and *[local-name() = 'mdQuery']]][.//*[local-name()='queryItem' and not(not(*[local-name()='usage' and .='fact']) and not(*[local-name()='hidden' and .='true']))]]"
- use="concat(
- '[',
- ancestor::*[local-name()='namespace'][1]/*[local-name()='name' and @*[local-name()='locale' and translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = translate(/*[local-name()='project']/*[local-name()='defaultLocale'], 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')]],
- '].[',
- *[local-name() = 'name' and @*[local-name()='locale' and translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = translate(/*[local-name()='project']/*[local-name()='defaultLocale'], 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')]],
- ']')"/>
- <xsl:key
- name="defHierQS_using_ns_qs"
- match="*[local-name()='querySubject'][*[local-name() = 'definition' and *[local-name() = 'mdQuery']]][*[local-name() = 'property' and @*[local-name() = 'name' and .='defaultHierarchy'] and .='true']]"
- use="concat(
- '[',
- ancestor::*[local-name()='namespace'][1]/*[local-name()='name' and @*[local-name()='locale' and translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = translate(/*[local-name()='project']/*[local-name()='defaultLocale'], 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')]],
- '].[',
- *[local-name() = 'name' and @*[local-name()='locale' and translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = translate(/*[local-name()='project']/*[local-name()='defaultLocale'], 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')]],
- ']')"/>
- <xsl:key
- name="defHierQS_using_ns_dimExternalName"
- match="*[local-name()='querySubject'][*[local-name() = 'definition' and *[local-name() = 'mdQuery']]][*[local-name() = 'property' and @*[local-name() = 'name' and .='defaultHierarchy'] and .='true']]"
- use="concat(
- '[',
- ancestor::*[local-name()='namespace'][1]/*[local-name()='name' and @*[local-name()='locale' and translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = translate(/*[local-name()='project']/*[local-name()='defaultLocale'], 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')]],
- ']',
- *[local-name()='definition']/*[local-name()='mdQuery']/*[local-name()='dimension'])"/>
- <xsl:key
- name="altHierQS_using_ns_dimExternalName"
- match="*[local-name()='querySubject'][*[local-name() = 'definition' and *[local-name() = 'mdQuery']]][*[local-name() = 'property' and @*[local-name() = 'name' and .='defaultHierarchy'] and .='false']]"
- use="concat(
- '[',
- ancestor::*[local-name()='namespace'][1]/*[local-name()='name' and @*[local-name()='locale' and translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = translate(/*[local-name()='project']/*[local-name()='defaultLocale'], 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')]],
- ']',
- *[local-name()='definition']/*[local-name()='mdQuery']/*[local-name()='dimension'])"/>
- <xsl:key
- name="altHierQS_using_qsID"
- match="*[local-name()='querySubject'][*[local-name() = 'definition' and *[local-name() = 'mdQuery']]][*[local-name() = 'property' and @*[local-name() = 'name' and .='defaultHierarchy'] and .='false']]"
- use="generate-id(.)"/>
- <xsl:key
- name="querySubject_using_type"
- match="*[local-name()='querySubject']"
- use="local-name(*[local-name() = 'definition']/*)"/>
- <xsl:key
- name="candidates_using_dimExternalName_dataSourceRef"
- match="*[local-name()='querySubject'][*[local-name() = 'definition' and *[local-name() = 'mdQuery']]]"
- use="concat(
- *[local-name()='definition']/*[local-name()='mdQuery']/*[local-name()='dimension'],
- '||',
- *[local-name()='definition']/*[local-name()='mdQuery']/*[local-name()='sources']/*[local-name()='dataSourceRef'])"/>
- <xsl:key
- name="queryItem_using_qsID"
- match="*[local-name()='queryItem' and ancestor::*[local-name() = 'querySubject']]"
- use="generate-id(ancestor::*[local-name()='querySubject'])"/>
- <xsl:key
- name="queryItem_using_qsID_qiName"
- match="*[local-name() = 'queryItem' and ancestor::*[local-name() = 'querySubject']]"
- use="concat(
- generate-id(ancestor::*[local-name()='querySubject']),
- '||',
- *[local-name() = 'name' and @*[local-name()='locale' and translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = translate(/*[local-name()='project']/*[local-name()='defaultLocale'], 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')]])"/>
- <xsl:variable name="AllQS" select="//*[local-name()='querySubject']"/>
- <xsl:variable name="AllmdQueryQS" select="key('querySubject_using_type','mdQuery')"/>
-
-
- <xsl:variable name="AllmdQueryMeasureDimensions" select="$AllmdQueryQS[*[local-name() = 'definition' and *[local-name() = 'mdQuery']] and *[local-name()='queryItem' and not(not(*[local-name()='usage' and .='fact']) and not(*[local-name()='hidden' and .='true']))]]"/>
- <xsl:variable name="AllmdQueryDimensionAttributes" select="$AllmdQueryQS//*[local-name()='queryItem']"/>
-
- <xsl:variable name="AllmdQueryNonMeasureQS" select="$AllmdQueryQS[count(.|$AllmdQueryMeasureDimensions)!=count($AllmdQueryMeasureDimensions)]"/>
- <xsl:variable name="AllDefaultHierarchyQS" select="$AllmdQueryNonMeasureQS[not(key('altHierQS_using_qsID', generate-id()))]"/>
- <xsl:variable name="UpgradeDatatype">
- <qsType>dbQuery</qsType>
- <qsType>storedProcedure</qsType>
- </xsl:variable>
- <xsl:variable name="AllUpgradeDatatypeQuerySubjects" select="key('querySubject_using_type', xalan:nodeset($UpgradeDatatype)/*)"/>
- <xsl:variable name="AllProjectLocales_makeNodeset">
- <xsl:call-template name="lowercaseValues">
- <xsl:with-param name="nodeset" select="/*[local-name()='project']/*[local-name()='locales']/*[local-name()='locale']"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:variable name="AllProjectLocales" select="xalan:nodeset($AllProjectLocales_makeNodeset)"/>
- <xsl:variable name="AllBusinessKeyRoles">
- <xsl:element name="roles">
- <xsl:element name="role">
- <xsl:for-each select="$AllProjectLocales/*[local-name()='locale']">
- <xsl:element name="name">
- <xsl:attribute name="locale"><xsl:value-of select="."/></xsl:attribute>
- <xsl:value-of select=" '_businessKey' "/>
- </xsl:element>
- </xsl:for-each>
- </xsl:element>
- </xsl:element>
- </xsl:variable>
- <xsl:variable name="AllSapAttributes_sortOnRef">
- <xsl:call-template name="AddSapAttribute">
- <xsl:with-param name="attribNameID" select="$CAPTION_dimensionUniqueName"/>
- <xsl:with-param name="attribDescID" select="$DESCRIPTION_dimensionUniqueName"/>
- <xsl:with-param name="attribDataType" select="'character'"/>
- <xsl:with-param name="attribExtName" select="'dimensionUniqueName'"/>
- <xsl:with-param name="attribRole" select="'_dimensionUniqueName'"/>
- <xsl:with-param name="sortOnRef" select="true()"/>
- </xsl:call-template>
- <xsl:call-template name="AddSapAttribute">
- <xsl:with-param name="attribNameID" select="$CAPTION_hierarchyUniqueName"/>
- <xsl:with-param name="attribDescID" select="$DESCRIPTION_hierarchyUniqueName"/>
- <xsl:with-param name="attribDataType" select="'character'"/>
- <xsl:with-param name="attribExtName" select="'hierarchyUniqueName'"/>
- <xsl:with-param name="attribRole" select="'_hierarchyUniqueName'"/>
- <xsl:with-param name="sortOnRef" select="true()"/>
- </xsl:call-template>
- <xsl:call-template name="AddSapAttribute">
- <xsl:with-param name="attribNameID" select="$CAPTION_levelLabel"/>
- <xsl:with-param name="attribDescID" select="$DESCRIPTION_levelLabel"/>
- <xsl:with-param name="attribDataType" select="'character'"/>
- <xsl:with-param name="attribExtName" select="'levelLabel'"/>
- <xsl:with-param name="attribRole" select="'_levelLabel'"/>
- <xsl:with-param name="sortOnRef" select="true()"/>
- </xsl:call-template>
- <xsl:call-template name="AddSapAttribute">
- <xsl:with-param name="attribNameID" select="$CAPTION_levelNumber"/>
- <xsl:with-param name="attribDescID" select="$DESCRIPTION_levelNumber"/>
- <xsl:with-param name="attribDataType" select="'int32'"/>
- <xsl:with-param name="attribExtName" select="'levelNumber'"/>
- <xsl:with-param name="attribRole" select="'_levelNumber'"/>
- <xsl:with-param name="sortOnRef" select="true()"/>
- </xsl:call-template>
- <xsl:call-template name="AddSapAttribute">
- <xsl:with-param name="attribNameID" select="$CAPTION_levelUniqueName"/>
- <xsl:with-param name="attribDescID" select="$DESCRIPTION_levelUniqueName"/>
- <xsl:with-param name="attribDataType" select="'character'"/>
- <xsl:with-param name="attribExtName" select="'levelUniqueName'"/>
- <xsl:with-param name="attribRole" select="'_levelUniqueName'"/>
- <xsl:with-param name="sortOnRef" select="true()"/>
- </xsl:call-template>
- <xsl:call-template name="AddSapAttribute">
- <xsl:with-param name="attribNameID" select="$CAPTION_memberCaption"/>
- <xsl:with-param name="attribDescID" select="$DESCRIPTION_memberCaption"/>
- <xsl:with-param name="attribDataType" select="'character'"/>
- <xsl:with-param name="attribExtName" select="'memberCaption'"/>
- <xsl:with-param name="attribRole" select="'_memberCaption'"/>
- <xsl:with-param name="attribHidden" select="false()"/>
- <xsl:with-param name="sortOnRef" select="true()"/>
- </xsl:call-template>
- <xsl:call-template name="AddSapAttribute">
- <xsl:with-param name="attribNameID" select="$CAPTION_memberDescription"/>
- <xsl:with-param name="attribDescID" select="$DESCRIPTION_memberDescription"/>
- <xsl:with-param name="attribDataType" select="'character'"/>
- <xsl:with-param name="attribExtName" select="'description'"/>
- <xsl:with-param name="attribRole" select="'_memberDescription'"/>
- <xsl:with-param name="sortOnRef" select="true()"/>
- </xsl:call-template>
- <xsl:call-template name="AddSapAttribute">
- <xsl:with-param name="attribNameID" select="$CAPTION_memberUniqueName"/>
- <xsl:with-param name="attribDescID" select="$DESCRIPTION_memberUniqueName"/>
- <xsl:with-param name="attribDataType" select="'character'"/>
- <xsl:with-param name="attribExtName" select="'memberUniqueName'"/>
- <xsl:with-param name="attribRole" select="'_memberUniqueName'"/>
- <xsl:with-param name="sortOnRef" select="true()"/>
- </xsl:call-template>
- <xsl:call-template name="AddSapAttribute">
- <xsl:with-param name="attribNameID" select="$CAPTION_parentUniqueName"/>
- <xsl:with-param name="attribDescID" select="$DESCRIPTION_parentUniqueName"/>
- <xsl:with-param name="attribDataType" select="'character'"/>
- <xsl:with-param name="attribExtName" select="'parentUniqueName'"/>
- <xsl:with-param name="attribRole" select="'_parentUniqueName'"/>
- <xsl:with-param name="sortOnRef" select="true()"/>
- </xsl:call-template>
- <xsl:call-template name="AddSapAttribute">
- <xsl:with-param name="attribNameID" select="'_rollupType'"/>
- <xsl:with-param name="attribDescID" select="'_rollupType'"/>
- <xsl:with-param name="attribDataType" select="'character'"/>
- <xsl:with-param name="attribExtName" select="'_rollupType'"/>
- <xsl:with-param name="attribRole" select="'_rollupType'"/>
- <xsl:with-param name="sortOnRef" select="true()"/>
- <xsl:with-param name="bLocalize" select="false()"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:variable name="AllSapAttributes">
- <xsl:variable name="nodeset_AllSapAttributes_sortOnRef" select="xalan:nodeset($AllSapAttributes_sortOnRef)"/>
- <xsl:apply-templates select="$nodeset_AllSapAttributes_sortOnRef/node()" mode="sapAttributes"/>
- </xsl:variable>
- <xsl:variable name="AllLevelLocalizedStrings">
- <xsl:for-each select="$AllProjectLocales/*[local-name()='locale']">
- <xsl:element name="{.}">
- <xsl:call-template name="getLocalizedString">
- <xsl:with-param name="stringID" select="$LEVEL_ALL"/>
- <xsl:with-param name="localeVal" select="."/>
- </xsl:call-template>
- </xsl:element>
- </xsl:for-each>
- </xsl:variable>
- </xsl:stylesheet>
|