Merge branch 'jira-3251' into 'master'
[DEV-3251] add escape-param attribute to tame See merge request floss/tame!19master
commit
9889838c5e
|
@ -48,7 +48,7 @@
|
||||||
<lvmp:node name="{name()}" />
|
<lvmp:node name="{name()}" />
|
||||||
<xsl:text> => </xsl:text>
|
<xsl:text> => </xsl:text>
|
||||||
|
|
||||||
<lvmp:node-boundary>
|
<lvmp:node-boundary escape-param="{@lvm:escape-param}">
|
||||||
<xsl:apply-templates select="." mode="lvmp:c1-node-result" />
|
<xsl:apply-templates select="." mode="lvmp:c1-node-result" />
|
||||||
</lvmp:node-boundary>
|
</lvmp:node-boundary>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
@ -61,6 +61,11 @@
|
||||||
<xsl:template match="c1:*" mode="lvmp:c1-node-result" priority="1">
|
<xsl:template match="c1:*" mode="lvmp:c1-node-result" priority="1">
|
||||||
<xsl:text>array( </xsl:text>
|
<xsl:text>array( </xsl:text>
|
||||||
<xsl:apply-templates select="@*|*" />
|
<xsl:apply-templates select="@*|*" />
|
||||||
|
<xsl:if test="text() and not( element() )">
|
||||||
|
<xsl:text>'text()' => </xsl:text>
|
||||||
|
<xsl:apply-templates select="text()" mode="lvm:valparse" />
|
||||||
|
<xsl:text></xsl:text>
|
||||||
|
</xsl:if>
|
||||||
<xsl:text>) </xsl:text>
|
<xsl:text>) </xsl:text>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
|
@ -72,7 +77,7 @@
|
||||||
<xsl:template match="c1:*[text()]" priority="4">
|
<xsl:template match="c1:*[text()]" priority="4">
|
||||||
<!-- defer node rendering; allows us to easily determine if there are
|
<!-- defer node rendering; allows us to easily determine if there are
|
||||||
siblings of the same name within a node boundary -->
|
siblings of the same name within a node boundary -->
|
||||||
<lvmp:node name="{name()}" />
|
<lvmp:node name="{name()}" escape-param="{@lvm:escape-param}"/>
|
||||||
<xsl:text> => </xsl:text>
|
<xsl:text> => </xsl:text>
|
||||||
|
|
||||||
<xsl:text></xsl:text>
|
<xsl:text></xsl:text>
|
||||||
|
@ -105,6 +110,7 @@
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<xsl:template match="c1:*/@lvm:*" priority="6">
|
<xsl:template match="c1:*/@lvm:*" priority="6">
|
||||||
<!-- discard all system attributes -->
|
<!-- discard all system attributes -->
|
||||||
<!-- TODO: error once everything is properly implemented -->
|
<!-- TODO: error once everything is properly implemented -->
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
-->
|
-->
|
||||||
<xsl:stylesheet version="2.0"
|
<xsl:stylesheet version="2.0"
|
||||||
xmlns:c1="http://www.epic-premier.com/XMLSchema"
|
xmlns:c1="http://www.epic-premier.com/XMLSchema"
|
||||||
|
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||||
xmlns:lvm="http://www.lovullo.com/rater/map/c1"
|
xmlns:lvm="http://www.lovullo.com/rater/map/c1"
|
||||||
xmlns:lvmp="http://www.lovullo.com/rater/map/c1/pp">
|
xmlns:lvmp="http://www.lovullo.com/rater/map/c1/pp">
|
||||||
|
@ -29,6 +30,16 @@
|
||||||
|
|
||||||
<xsl:import href="transform.xsl" />
|
<xsl:import href="transform.xsl" />
|
||||||
|
|
||||||
|
<xsl:function name="lvm:is-escaped-param" as="xs:boolean">
|
||||||
|
<xsl:param name="value" as="element( lvmp:value )"/>
|
||||||
|
|
||||||
|
<xsl:variable name="escape-param" as="xs:string?"
|
||||||
|
select="$value/ancestor-or-self::lvmp:node-boundary[1]/@escape-param[ 1 ]" />
|
||||||
|
<xsl:variable name="parent-value" as="element( lvmp:value )?"
|
||||||
|
select="$value/parent::lvmp:value[ 1 ]"/>
|
||||||
|
|
||||||
|
<xsl:sequence select="$escape-param and boolean($escape-param) and not( $parent-value )" />
|
||||||
|
</xsl:function>
|
||||||
|
|
||||||
<xsl:template match="lvmp:root" mode="lvmp:render" priority="5">
|
<xsl:template match="lvmp:root" mode="lvmp:render" priority="5">
|
||||||
<xsl:text><?php </xsl:text>
|
<xsl:text><?php </xsl:text>
|
||||||
|
@ -133,6 +144,10 @@
|
||||||
<xsl:param name="value" select="$var/@value" />
|
<xsl:param name="value" select="$var/@value" />
|
||||||
<xsl:param name="default" select="$var/lvmp:default" />
|
<xsl:param name="default" select="$var/lvmp:default" />
|
||||||
|
|
||||||
|
<xsl:variable name="needs-escape" as="xs:boolean" select="lvm:is-escaped-param( . )"/>
|
||||||
|
<xsl:if test="$needs-escape">
|
||||||
|
<xsl:text>$contract->escapeValue(</xsl:text>
|
||||||
|
</xsl:if>
|
||||||
<xsl:text>$contract->getValueByContext( </xsl:text>
|
<xsl:text>$contract->getValueByContext( </xsl:text>
|
||||||
<!-- recursive process contexts -->
|
<!-- recursive process contexts -->
|
||||||
<xsl:apply-templates select="lvmp:value" mode="lvmp:render">
|
<xsl:apply-templates select="lvmp:value" mode="lvmp:render">
|
||||||
|
@ -145,6 +160,9 @@
|
||||||
<xsl:text>' </xsl:text>
|
<xsl:text>' </xsl:text>
|
||||||
|
|
||||||
<xsl:text> )</xsl:text>
|
<xsl:text> )</xsl:text>
|
||||||
|
<xsl:if test="$needs-escape">
|
||||||
|
<xsl:text> )</xsl:text>
|
||||||
|
</xsl:if>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
|
|
||||||
|
@ -177,11 +195,23 @@
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:param>
|
</xsl:param>
|
||||||
|
|
||||||
|
<xsl:variable name="needs-escape" as="xs:boolean" select="lvm:is-escaped-param( . )"/>
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="$needs-escape">
|
||||||
|
<xsl:text>$contract->escapeValue( $contract->getValue( '</xsl:text>
|
||||||
|
<xsl:value-of select="$from" />
|
||||||
|
<xsl:text>', $contract->getValueIndex( '</xsl:text>
|
||||||
|
<xsl:value-of select="$index-name" />
|
||||||
|
<xsl:text>' ) )</xsl:text>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
<xsl:text>$contract->getValue( '</xsl:text>
|
<xsl:text>$contract->getValue( '</xsl:text>
|
||||||
<xsl:value-of select="$from" />
|
<xsl:value-of select="$from" />
|
||||||
<xsl:text>', $contract->getValueIndex( '</xsl:text>
|
<xsl:text>', $contract->getValueIndex( '</xsl:text>
|
||||||
<xsl:value-of select="$index-name" />
|
<xsl:value-of select="$index-name" />
|
||||||
<xsl:text>' )</xsl:text>
|
<xsl:text>' )</xsl:text>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
|
||||||
<xsl:if test="$default">
|
<xsl:if test="$default">
|
||||||
<xsl:text>, </xsl:text>
|
<xsl:text>, </xsl:text>
|
||||||
|
@ -241,6 +271,10 @@
|
||||||
<!-- no longer needed -->
|
<!-- no longer needed -->
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="lvmp:var-escape" mode="lvmp:render" priority="5">
|
||||||
|
<!-- no longer needed -->
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
<xsl:template match="lvmp:var/lvmp:default" mode="lvmp:render" priority="5">
|
<xsl:template match="lvmp:var/lvmp:default" mode="lvmp:render" priority="5">
|
||||||
<!-- render contents -->
|
<!-- render contents -->
|
||||||
<xsl:apply-templates mode="lvmp:render" />
|
<xsl:apply-templates mode="lvmp:render" />
|
||||||
|
|
Loading…
Reference in New Issue