1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
- <!-- $Id$ -->
- <!-- This stylesheet extracts the FO part from the testcase so it can be passed to FOP for layout. -->
- <!--
- Variable substitution:
-
- For any attribute value that starts with a "##" the stylesheet looks for an element with the variable
- name under /testcase/variables, ex. "##img" looks for /testcase/variables/img and uses its element
- value as subsitution value.
- -->
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
-
- <xsl:template match="testcase">
- <xsl:apply-templates select="fo/*" mode="copy"/>
- </xsl:template>
-
- <xsl:template match="node()" mode="copy">
- <xsl:copy>
- <xsl:apply-templates select="@*|node()" mode="copy"/>
- </xsl:copy>
- </xsl:template>
-
- <xsl:template match="@*" mode="copy">
- <xsl:choose>
- <xsl:when test="starts-with(., '##')">
- <!-- variable substitution -->
- <xsl:variable name="nodename" select="name()"/>
- <xsl:variable name="varname" select="substring(., 3)"/>
- <xsl:choose>
- <xsl:when test="boolean(//variables/child::*[local-name() = $varname])">
- <xsl:attribute name="{name(.)}">
- <xsl:value-of select="//variables/child::*[local-name() = $varname]"/>
- </xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <!-- if variable isn't defined, just copy -->
- <xsl:copy-of select="." />
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:otherwise>
- <xsl:copy-of select="." />
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- </xsl:stylesheet>
|