12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- <?xml version="1.0" encoding="UTF-8"?>
- <rules>
- <!-- Overwritten rules from base templates to handle V5 specific SMd output -->
- <!-- Rules to count the number of measures or category dimensions in the report part -->
- <rule id="hasMeasures" inputRoot="dataContainer" expression="dataItems/dataItem[@isMeasure='true' and not(@calcRef) and not(@isSummary = 'true')]"></rule>
- <rule id="hasCategories" inputRoot="dataContainer" expression="dataItems/dataItem[@isMeasure='false']"></rule>
- <rule id="hasCategoriesOrMeasures" inputRoot="dataContainer" expression="dataItems/dataItem"></rule>
- <rule id="hasNoMeasures" inputRoot="dataContainer" expression="not(dataItems/dataItem[@isMeasure='true' and not(@calcRef) and not(@isSummary = 'true')])"></rule>
- <rule id="singleCategory" inputRoot="dataContainer" expression="count(dataItems/dataItem[@isMeasure='false']) = 1"></rule>
- <rule id="multipleCategories" inputRoot="dataContainer" expression="count(dataItems/dataItem[@isMeasure='false']) > 1"></rule>
- <rule id="singleDistinctMeasure" inputRoot="dataContainer" expression="count(dataItems/dataItem[@isMeasure='true' and not(@calcRef) and not(@isSummary = 'true') and (@numCategories = 1)]) = 1"></rule>
- <rule id="singleMeasure" inputRoot="dataContainer" expression="count(dataItems/dataItem[@isMeasure='true' and not(@calcRef) and not(@isSummary = 'true') and (@numCategories = 1)]) = 1 or (count(dataItems/dataItem[@isMeasure='true' and not(@calcRef) and not(@isSummary = 'true')]) = 0 and dataItems/dataItem[@isEdge = 'true' and @hasMeasure = 'true']) and count(dataItems/dataItem[@isEdge = 'true']) >= 2"></rule>
- <rule id="multipleMeasures" inputRoot="dataContainer" expression="count(dataItems/dataItem[@isMeasure='true' and not(@calcRef) and not(@isSummary = 'true')]) > 1 or dataItems/dataItem[@isMeasure='true' and @numCategories > 1]"></rule>
- <rule id="maxTwoCategory" inputRoot="dataContainer" expression="count(dataItems/dataItem[@isMeasure='false']) <= 2"></rule>
- <rule id="twoMeasures" inputRoot="dataContainer" expression="count(dataItems/dataItem[@isMeasure='true' and not(@calcRef) and not(@isSummary = 'true') and (@numCategories = 1)]) = 2"></rule>
- <rule id="threeMeasures" inputRoot="dataContainer" expression="count(dataItems/dataItem[@isMeasure='true' and not(@calcRef) and not(@isSummary = 'true') and (@numCategories = 1)]) = 3"></rule>
- <rule id="hasNoEdges" inputRoot="dataContainer" expression="not(dataItems/dataItem[@isEdge = 'true'])"></rule>
- <rule id="hasEdges" inputRoot="dataContainer" expression="dataItems/dataItem[@isEdge = 'true']"></rule>
- <rule id="hasNoNonEdges" inputRoot="dataContainer" expression="not(dataItems/dataItem[not(@isEdge = 'true') and @isMeasure='false'])"></rule>
- <rule id="hasTwoEdges" inputRoot="dataContainer" expression="count(dataItems/dataItem[@isEdge = 'true']) = 2"></rule>
- <rule id="hasSingleEdge" inputRoot="dataContainer" expression="count(dataItems/dataItem[@isEdge = 'true']) = 1"></rule>
- <rule id="hasOneEdgeAndOtherDimensions" inputRoot="dataContainer" expression="count(dataItems/dataItem[@isEdge = 'true']) = 1 and (count(dataItems/dataItem[@isEdge = 'false' and (@isMeasure='false' or @numCategories != 1)]) != 0 or count(dataItems/dataItem[@isMeasure='true']))"></rule>
- <rule id="hasTwoOrMoreNonSingleMeasures" inputRoot="dataContainer" expression="(count(dataItems/dataItem) - count(dataItems/dataItem[@isMeasure='true' and @numCategories = 1])) >= 2 or count(dataItems/dataItem[@isMeasure='true' and @numCategories = 1]) >= 2"></rule>
- <rule id="hasNoMeasureExpressions" inputRoot="dataContainer" expression="not(dataItems/dataItem[@isMeasure='true' and (@numCategories != 1)])"/>
-
- <rule id="hasALargerThanOneItemDimension" inputRoot="dataContainer" expression="count(dataItems/dataItem[(@numCategories != 1 or dataItem) and @isMeasure='false']) != 0"></rule>
-
- <!-- SMD element rules -->
- <rule id="categoryDimension" inputRoot="dataContainer" nodeIdentifier="@name" expression="dataItems/dataItem[@isMeasure='false']"></rule>
- <rule id="measureDimension" inputRoot="dataContainer" nodeIdentifier="@name" expression="dataItems/dataItem[@isMeasure='true' and not(@calcRef) and not(@isSummary = 'true')]"></rule>
- <rule id="categoryEdge" inputRoot="dataContainer" nodeIdentifier="@name" expression="dataItems/dataItem[@isEdge = 'true']"></rule>
- <rule id="categoryNotEdge" inputRoot="dataContainer" nodeIdentifier="@name" expression="dataItems/dataItem[@isMeasure='false' and not(@isEdge = 'true')]"></rule>
- <rule id="childCategory" inputRoot="dataContainer" expression="./dataItem"/>
- <rule id="nonSummaryChildCategory" inputRoot="dataContainer" expression="./dataItem[(@numCategories != 1 or @isMeasure='false' or @calcRef) and @isSummary != 'true']"/>
- <rule id="summaryChildCategory" inputRoot="dataContainer" expression="./dataItem[(@numCategories = 1 and count(../dataItem) != 1) or @isSummary = 'true']"/>
- <rule id="calculations" inputRoot="dataContainer" expression="../dataItem[@calcRef = current()/@name]"/>
- <rule id="isSummaryParent" inputRoot="dataContainer" expression="dataItem and @numCategories = 1"></rule>
- <rule id="notSummaryParent" inputRoot="dataContainer" expression="@numCategories != 1 or not(dataItem)"></rule>
- <rule id="notSingleItem" inputRoot="dataContainer" expression="@numCategories != 1 or dataItem"></rule>
- <rule id="singleItem" inputRoot="dataContainer" expression="@numCategories = 1 and not(dataItem)"></rule>
- <rule id="isEdge" inputRoot="dataContainer" expression="@isEdge = 'true'"></rule>
- <rule id="isNotEdge" inputRoot="dataContainer" expression="not(@isEdge = 'true')"></rule>
- <rule id="edgeSummaryCategory" inputRoot="dataContainer" expression="@isSummary = 'true'"/>
- <rule id="edgeNonSummaryCategory" inputRoot="dataContainer" expression="not(@isSummary = 'true')"/>
-
- <!-- Scoring rules based on number of measures or category dimensions in the report part -->
- <rule inputRoot="dataContainer" id="singleCategoryPreference" expression="count(dataItems/dataItem[@isMeasure='false']) = 1" score="1" description="MSG.VIS_RULE_SINGLE_CATEGORY_PREFERENCE"></rule>
- <rule inputRoot="dataContainer" id="singleMeasurePreference" expression="count(dataItems/dataItem[@isMeasure='true' and not(@calcRef) and not(@isSummary = 'true') and (@numCategories = 1)]) = 1" score="1" description="MSG.VIS_RULE_SINGLE_MEASURE_PREFERENCE"></rule>
- <rule inputRoot="dataContainer" id="multipleMeasurePreference" expression="count(dataItems/dataItem[@isMeasure='true' and not(@calcRef) and not(@isSummary = 'true')]) > 1" score="1" description="MSG.VIS_RULE_MULTIPLE_MEASURE_PREFERENCE"></rule>
- <rule inputRoot="dataContainer" id="twoCategoryPreference" expression="count(dataItems/dataItem[@isMeasure='false']) = 2" score="1" description="MSG.VIS_RULE_TWO_CATEGORY_PREFERENCE"></rule>
- <rule inputRoot="dataContainer" id="scoreNumberCategorydimensions" expression="true()" score="count(dataItems/dataItem[@isMeasure='false'])"></rule>
- <rule inputRoot="dataContainer" id="scoreNumberMeasures" expression="true()" score="count(dataItems/dataItem[@isMeasure='true' and not(@calcRef) and not(@isSummary = 'true')])"></rule>
- <rule inputRoot="dataContainer" id="summaryPresent" expression="dataItems/dataItem[@isSummary = 'true']" score="1" description="MSG.VIS_RULE_SUMMARY_CATEGORY_AXIS"></rule>
- <rule inputRoot="dataContainer" id="fewCategoriesPreference" expression="dataItems/dataItem[@numCategories <= 10]" score="1" description="MSG.VIS_RULE_SMALL_NUMBER_CATEGORY_PREFERENCE"></rule>
- <rule inputRoot="dataContainer" id="countCategories" expression="concepts/category" score="@numCategories"></rule>
- <rule inputRoot="dataContainer" id="summaryPresentInDimension" expression="@isSummary = 'true'" score="1"></rule>
- <rule inputRoot="dataContainer" id="avgAggregation" expression="dataItems/dataItem/concepts/metric/prop[@name = 'defAggregate']/@value = 'avg'" score="1" description="MSG.VIS_RULE_AGGREGATION_AVERAGE"></rule>
- <rule inputRoot="dataContainer" id="percentPresent" expression="dataItems/dataItem/concepts/metric/isA[text() = 'ratio']" score="1"></rule>
- <rule inputRoot="dataContainer" id="scoreManyNonTimeCategories" expression="sum(dataItems/dataItem[not(concepts/category/isA/text() = 'temporal') and @isMeasure='false']/@numCategories) * count(dataItems/dataItem[not(concepts/category/isA/text() = 'temporal') and @isMeasure='false']/@numCategories) > 15" score="1"/>
- <rule inputRoot="dataContainer" id="scoreNumCategories" expression="count(dataItems/dataItem[@isMeasure='false']/@numCategories) != 0" score="sum(dataItems/dataItem[@isMeasure='false']/@numCategories) * count(dataItems/dataItem[@isMeasure='false']/@numCategories)"/>
- <rule id="scoreSingleItem" inputRoot="dataContainer" expression="@numCategories = 1 and not(dataItem)" score="1"></rule>
- <rule id="preferenceForNonEdges_orSingleEdgeandDimension" inputRoot="dataContainer" expression="not(dataItems/dataItem[@isEdge = 'true']) or (count(dataItems/dataItem[@isEdge = 'true']) = 1 and count(dataItems/dataItem[@isEdge = 'false' and @isMeasure='false']) = 1)" score="1"></rule>
- <!-- V5 elements rules -->
- <rule id="currentNoDataHandler" inputRoot="V5Container" expression="noDataHandler"></rule>
- <rule id="currentMasterDetailLinks" inputRoot="V5Container" expression="masterDetailLinks"></rule>
- <rule id="currentConditionalStyles" inputRoot="V5Container" expression="conditionalStyles"></rule>
- <rule id="currentConditionalStyleRefs" inputRoot="V5Container" expression="conditionalStyleRefs"></rule>
- <rule id="currentConditionalRender" inputRoot="V5Container" expression="conditionalRender"></rule>
- <rule id="currentSummaryText" inputRoot="V5Container" expression="summaryText"></rule>
-
- <rule id="currentV2_chartSubTitle" inputRoot="V5Container" expression="v2_chartSubTitle"></rule>
- <rule id="currentV2_chartTitle" inputRoot="V5Container" expression="v2_chartTitle"></rule>
- <rule id="currentV2_chartFooter" inputRoot="V5Container" expression="v2_chartFooter"></rule>
- <rule id="currentReportDrills" inputRoot="V5Container" expression="reportDrills"></rule>
- <rule id="currentChartSuppress" inputRoot="V5Container" expression="chartSuppress"></rule>
- <rule id="currentAlternateText" inputRoot="V5Container" expression="alternateText"></rule>
-
- <rule id="containerNameRule" inputRoot="V5Container" expression="@name"></rule>
- </rules>
|