xref: /aoo41x/main/officecfg/util/alllang.xsl (revision cdf0e10c)
1*cdf0e10cSrcweir<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2*cdf0e10cSrcweir<!--***********************************************************************
3*cdf0e10cSrcweir *
4*cdf0e10cSrcweir  DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5*cdf0e10cSrcweir
6*cdf0e10cSrcweir  Copyright 2000, 2010 Oracle and/or its affiliates.
7*cdf0e10cSrcweir
8*cdf0e10cSrcweir  OpenOffice.org - a multi-platform office productivity suite
9*cdf0e10cSrcweir
10*cdf0e10cSrcweir  This file is part of OpenOffice.org.
11*cdf0e10cSrcweir
12*cdf0e10cSrcweir  OpenOffice.org is free software: you can redistribute it and/or modify
13*cdf0e10cSrcweir  it under the terms of the GNU Lesser General Public License version 3
14*cdf0e10cSrcweir  only, as published by the Free Software Foundation.
15*cdf0e10cSrcweir
16*cdf0e10cSrcweir  OpenOffice.org is distributed in the hope that it will be useful,
17*cdf0e10cSrcweir  but WITHOUT ANY WARRANTY; without even the implied warranty of
18*cdf0e10cSrcweir  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19*cdf0e10cSrcweir  GNU Lesser General Public License version 3 for more details
20*cdf0e10cSrcweir  (a copy is included in the LICENSE file that accompanied this code).
21*cdf0e10cSrcweir
22*cdf0e10cSrcweir  You should have received a copy of the GNU Lesser General Public License
23*cdf0e10cSrcweir  version 3 along with OpenOffice.org.  If not, see
24*cdf0e10cSrcweir  <http://www.openoffice.org/license.html>
25*cdf0e10cSrcweir  for a copy of the LGPLv3 License.
26*cdf0e10cSrcweir
27*cdf0e10cSrcweir ************************************************************************ -->
28*cdf0e10cSrcweir
29*cdf0e10cSrcweir<xsl:transform 	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
30*cdf0e10cSrcweir		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
31*cdf0e10cSrcweir		xmlns:xs="http://www.w3.org/2001/XMLSchema"
32*cdf0e10cSrcweir		xmlns:oor="http://openoffice.org/2001/registry"
33*cdf0e10cSrcweir		xmlns:install="http://openoffice.org/2004/installation"
34*cdf0e10cSrcweir        	exclude-result-prefixes="install">
35*cdf0e10cSrcweir
36*cdf0e10cSrcweir<!-- Get the correct format -->
37*cdf0e10cSrcweir<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
38*cdf0e10cSrcweir
39*cdf0e10cSrcweir<!--************************** PARAMETER ******************************** -->
40*cdf0e10cSrcweir<xsl:param name="locale"/>
41*cdf0e10cSrcweir<xsl:param name="module"/>
42*cdf0e10cSrcweir<xsl:param name="xcs"/>
43*cdf0e10cSrcweir<xsl:param name="schemaRoot">.</xsl:param>
44*cdf0e10cSrcweir<xsl:param name="fallback-locale">en-US</xsl:param>
45*cdf0e10cSrcweir
46*cdf0e10cSrcweir<xsl:variable name="schemaRootURL">
47*cdf0e10cSrcweir    <xsl:value-of select="$schemaRoot"/>
48*cdf0e10cSrcweir</xsl:variable>
49*cdf0e10cSrcweir<xsl:variable name="schemaURL">
50*cdf0e10cSrcweir    <xsl:value-of select="$xcs"/>
51*cdf0e10cSrcweir</xsl:variable>
52*cdf0e10cSrcweir
53*cdf0e10cSrcweir<!--************************** TEMPLATES ******************************** -->
54*cdf0e10cSrcweir<!-- ensure that at least root is available -->
55*cdf0e10cSrcweir	<xsl:template match="/oor:component-data">
56*cdf0e10cSrcweir		<xsl:copy>
57*cdf0e10cSrcweir			<xsl:choose>
58*cdf0e10cSrcweir				<xsl:when test="string-length($locale)">
59*cdf0e10cSrcweir			        <xsl:apply-templates select = "@*" mode="locale"/>
60*cdf0e10cSrcweir					<xsl:apply-templates select = "node|prop" mode="locale"/>
61*cdf0e10cSrcweir				</xsl:when>
62*cdf0e10cSrcweir				<xsl:otherwise>
63*cdf0e10cSrcweir			        <xsl:apply-templates select = "@*"/>
64*cdf0e10cSrcweir					<xsl:for-each select="node|prop">
65*cdf0e10cSrcweir						<xsl:variable name="component-schema" select="document($schemaURL)/oor:component-schema"/>
66*cdf0e10cSrcweir						<xsl:apply-templates select=".">
67*cdf0e10cSrcweir							<xsl:with-param name="component-schema" select="$component-schema"/>
68*cdf0e10cSrcweir							<xsl:with-param name="context" select="$component-schema/component/*[@oor:name = current()/@oor:name]"/>
69*cdf0e10cSrcweir							<xsl:with-param name="find-module" select="$module"/>
70*cdf0e10cSrcweir						</xsl:apply-templates>
71*cdf0e10cSrcweir					</xsl:for-each>
72*cdf0e10cSrcweir				</xsl:otherwise>
73*cdf0e10cSrcweir			</xsl:choose>
74*cdf0e10cSrcweir		</xsl:copy>
75*cdf0e10cSrcweir	</xsl:template>
76*cdf0e10cSrcweir
77*cdf0e10cSrcweir<!-- locale dependent data -->
78*cdf0e10cSrcweir	<xsl:template match="node|prop" mode = "locale">
79*cdf0e10cSrcweir        <xsl:choose>
80*cdf0e10cSrcweir            <xsl:when test="$locale=$fallback-locale">
81*cdf0e10cSrcweir                <xsl:if test="descendant::value[@xml:lang=$locale]/../value[not (@xml:lang)]">
82*cdf0e10cSrcweir  			        <xsl:copy>
83*cdf0e10cSrcweir				        <xsl:apply-templates select = "@*" mode="locale"/>
84*cdf0e10cSrcweir				        <xsl:apply-templates select = "node|prop|value" mode = "locale"/>
85*cdf0e10cSrcweir			        </xsl:copy>
86*cdf0e10cSrcweir                </xsl:if>
87*cdf0e10cSrcweir            </xsl:when>
88*cdf0e10cSrcweir            <xsl:otherwise>
89*cdf0e10cSrcweir                <xsl:if test="descendant::value[@xml:lang = $locale]">
90*cdf0e10cSrcweir  			        <xsl:copy>
91*cdf0e10cSrcweir				        <xsl:apply-templates select = "@*" mode="locale"/>
92*cdf0e10cSrcweir				        <xsl:apply-templates select = "node|prop|value" mode = "locale"/>
93*cdf0e10cSrcweir			        </xsl:copy>
94*cdf0e10cSrcweir                </xsl:if>
95*cdf0e10cSrcweir            </xsl:otherwise>
96*cdf0e10cSrcweir        </xsl:choose>
97*cdf0e10cSrcweir	</xsl:template>
98*cdf0e10cSrcweir
99*cdf0e10cSrcweir	<xsl:template match="value" mode="locale">
100*cdf0e10cSrcweir		<xsl:if test="@xml:lang=$locale and not(@install:module)">
101*cdf0e10cSrcweir			<xsl:copy>
102*cdf0e10cSrcweir				<xsl:apply-templates select = "@*" mode="locale"/>
103*cdf0e10cSrcweir				<xsl:copy-of select="node()"/>
104*cdf0e10cSrcweir			</xsl:copy>
105*cdf0e10cSrcweir		</xsl:if>
106*cdf0e10cSrcweir	</xsl:template>
107*cdf0e10cSrcweir
108*cdf0e10cSrcweir	<xsl:template match = "@*" mode="locale">
109*cdf0e10cSrcweir		<xsl:copy/>
110*cdf0e10cSrcweir	</xsl:template>
111*cdf0e10cSrcweir
112*cdf0e10cSrcweir    <!-- suppress all merge instructions -->
113*cdf0e10cSrcweir	<xsl:template match = "@oor:op" mode="locale"/>
114*cdf0e10cSrcweir
115*cdf0e10cSrcweir    <!-- suppress all module markers -->
116*cdf0e10cSrcweir	<xsl:template match = "@install:module" mode="locale"/>
117*cdf0e10cSrcweir
118*cdf0e10cSrcweir<!-- locale independent data -->
119*cdf0e10cSrcweir
120*cdf0e10cSrcweir    <!-- handle template references      -->
121*cdf0e10cSrcweir	<xsl:template name="copy-resolve-template">
122*cdf0e10cSrcweir		<xsl:param name = "node-type"/>
123*cdf0e10cSrcweir		<xsl:param name = "schema-type"/>
124*cdf0e10cSrcweir		<xsl:param name = "component-schema"/>
125*cdf0e10cSrcweir
126*cdf0e10cSrcweir        <xsl:choose>
127*cdf0e10cSrcweir            <xsl:when test="$schema-type='node-ref'">
128*cdf0e10cSrcweir                <xsl:apply-templates select=".">
129*cdf0e10cSrcweir                    <xsl:with-param name="context" select="$component-schema/templates/*[@oor:name = $node-type]"/>
130*cdf0e10cSrcweir                    <xsl:with-param name="component-schema" select="$component-schema"/>
131*cdf0e10cSrcweir                </xsl:apply-templates>
132*cdf0e10cSrcweir            </xsl:when>
133*cdf0e10cSrcweir            <xsl:when test="$schema-type='set'">
134*cdf0e10cSrcweir                <xsl:copy>
135*cdf0e10cSrcweir                    <xsl:apply-templates select = "@*" />
136*cdf0e10cSrcweir                    <xsl:for-each select="node|prop">
137*cdf0e10cSrcweir                        <xsl:apply-templates select=".">
138*cdf0e10cSrcweir                            <xsl:with-param name="context" select="$component-schema/templates/*[@oor:name = $node-type]"/>
139*cdf0e10cSrcweir                            <xsl:with-param name="component-schema" select="$component-schema"/>
140*cdf0e10cSrcweir                        </xsl:apply-templates>
141*cdf0e10cSrcweir                    </xsl:for-each>
142*cdf0e10cSrcweir                </xsl:copy>
143*cdf0e10cSrcweir            </xsl:when>
144*cdf0e10cSrcweir            <xsl:otherwise>
145*cdf0e10cSrcweir                <xsl:message terminate="yes">ERROR: The schema element for a <xsl:value-of select="$schema-type"/>
146*cdf0e10cSrcweir                                                should not have a node-type.
147*cdf0e10cSrcweir                </xsl:message>
148*cdf0e10cSrcweir            </xsl:otherwise>
149*cdf0e10cSrcweir        </xsl:choose>
150*cdf0e10cSrcweir    </xsl:template>
151*cdf0e10cSrcweir
152*cdf0e10cSrcweir	<xsl:template name="copy-node">
153*cdf0e10cSrcweir		<xsl:param name = "context"/>
154*cdf0e10cSrcweir		<xsl:param name = "component-schema"/>
155*cdf0e10cSrcweir
156*cdf0e10cSrcweir        <xsl:choose>
157*cdf0e10cSrcweir            <!-- look for matching templates in other components -->
158*cdf0e10cSrcweir            <xsl:when test="$context/@oor:node-type and $context/@oor:component">
159*cdf0e10cSrcweir                <xsl:variable name="fileURL">
160*cdf0e10cSrcweir                    <xsl:call-template name="composeFileURL">
161*cdf0e10cSrcweir                        <xsl:with-param name="component-schema" select="$component-schema"/>
162*cdf0e10cSrcweir                        <xsl:with-param name="componentName"><xsl:value-of select="$context/@oor:component"/></xsl:with-param>
163*cdf0e10cSrcweir                    </xsl:call-template>
164*cdf0e10cSrcweir                </xsl:variable>
165*cdf0e10cSrcweir                <xsl:call-template name="copy-resolve-template">
166*cdf0e10cSrcweir                    <xsl:with-param name="node-type" select="$context/@oor:node-type"/>
167*cdf0e10cSrcweir                    <xsl:with-param name="schema-type" select="local-name($context)"/>
168*cdf0e10cSrcweir                    <xsl:with-param name="component-schema" select="document($fileURL)/oor:component-schema"/>
169*cdf0e10cSrcweir                </xsl:call-template>
170*cdf0e10cSrcweir            </xsl:when>
171*cdf0e10cSrcweir            <!-- look for matching templates within the same component -->
172*cdf0e10cSrcweir            <xsl:when test="$context/@oor:node-type">
173*cdf0e10cSrcweir                <xsl:call-template name="copy-resolve-template">
174*cdf0e10cSrcweir                    <xsl:with-param name="node-type" select="$context/@oor:node-type"/>
175*cdf0e10cSrcweir                    <xsl:with-param name="schema-type" select="local-name($context)"/>
176*cdf0e10cSrcweir                    <xsl:with-param name="component-schema" select="$component-schema"/>
177*cdf0e10cSrcweir                </xsl:call-template>
178*cdf0e10cSrcweir            </xsl:when>
179*cdf0e10cSrcweir            <xsl:otherwise>
180*cdf0e10cSrcweir                <xsl:copy>
181*cdf0e10cSrcweir                    <xsl:apply-templates select = "@*" />
182*cdf0e10cSrcweir                    <xsl:for-each select="node|prop">
183*cdf0e10cSrcweir                        <xsl:apply-templates select=".">
184*cdf0e10cSrcweir                            <xsl:with-param name="component-schema" select="$component-schema"/>
185*cdf0e10cSrcweir                            <xsl:with-param name="context" select="$context/*[@oor:name = current()/@oor:name]"/>
186*cdf0e10cSrcweir                        </xsl:apply-templates>
187*cdf0e10cSrcweir                    </xsl:for-each>
188*cdf0e10cSrcweir                </xsl:copy>
189*cdf0e10cSrcweir            </xsl:otherwise>
190*cdf0e10cSrcweir        </xsl:choose>
191*cdf0e10cSrcweir	</xsl:template>
192*cdf0e10cSrcweir
193*cdf0e10cSrcweir	<xsl:template match="node">
194*cdf0e10cSrcweir		<xsl:param name = "context"/>
195*cdf0e10cSrcweir		<xsl:param name = "component-schema"/>
196*cdf0e10cSrcweir
197*cdf0e10cSrcweir        <xsl:variable name="applicable-values" select="descendant::value[not (@xml:lang) or (@xml:lang=$fallback-locale) or (@install:module=$module)]"/>
198*cdf0e10cSrcweir        <xsl:variable name="substantive-nodes" select="descendant-or-self::*[(@oor:finalized='true') or (@oor:mandatory='true') or (@oor:op!='modify')]"/>
199*cdf0e10cSrcweir
200*cdf0e10cSrcweir        <xsl:choose>
201*cdf0e10cSrcweir            <!-- go ahead, if we are in the active module -->
202*cdf0e10cSrcweir            <xsl:when test="ancestor-or-self::*/@install:module=$module">
203*cdf0e10cSrcweir                <xsl:if test="$applicable-values | $substantive-nodes">
204*cdf0e10cSrcweir                    <xsl:call-template name="copy-node">
205*cdf0e10cSrcweir                        <xsl:with-param name="component-schema" select="$component-schema"/>
206*cdf0e10cSrcweir                        <xsl:with-param name="context" select="$context"/>
207*cdf0e10cSrcweir                    </xsl:call-template>
208*cdf0e10cSrcweir                </xsl:if>
209*cdf0e10cSrcweir			</xsl:when>
210*cdf0e10cSrcweir            <!-- strip data from wrong module -->
211*cdf0e10cSrcweir            <xsl:when test="ancestor-or-self::*/@install:module"/>
212*cdf0e10cSrcweir            <!-- looking for module -->
213*cdf0e10cSrcweir            <xsl:when test="$module">
214*cdf0e10cSrcweir                <xsl:if test="($applicable-values | $substantive-nodes)/ancestor-or-self::*/@install:module=$module">
215*cdf0e10cSrcweir                    <xsl:call-template name="copy-node">
216*cdf0e10cSrcweir                        <xsl:with-param name="component-schema" select="$component-schema"/>
217*cdf0e10cSrcweir                        <xsl:with-param name="context" select="$context"/>
218*cdf0e10cSrcweir                    </xsl:call-template>
219*cdf0e10cSrcweir                </xsl:if>
220*cdf0e10cSrcweir			</xsl:when>
221*cdf0e10cSrcweir            <!-- copying non-module data -->
222*cdf0e10cSrcweir            <xsl:otherwise>
223*cdf0e10cSrcweir                <xsl:if test="($applicable-values | $substantive-nodes)[not(ancestor-or-self::*/@install:module)]">
224*cdf0e10cSrcweir                    <xsl:call-template name="copy-node">
225*cdf0e10cSrcweir                        <xsl:with-param name="component-schema" select="$component-schema"/>
226*cdf0e10cSrcweir                        <xsl:with-param name="context" select="$context"/>
227*cdf0e10cSrcweir                    </xsl:call-template>
228*cdf0e10cSrcweir                </xsl:if>
229*cdf0e10cSrcweir            </xsl:otherwise>
230*cdf0e10cSrcweir		</xsl:choose>
231*cdf0e10cSrcweir	</xsl:template>
232*cdf0e10cSrcweir
233*cdf0e10cSrcweir	<xsl:template match="prop">
234*cdf0e10cSrcweir		<xsl:param name = "context"/>
235*cdf0e10cSrcweir		<xsl:choose>
236*cdf0e10cSrcweir            <xsl:when test="$module and not((ancestor-or-self::* | child::value)/@install:module=$module)"/>
237*cdf0e10cSrcweir            <xsl:when test="not($module) and ancestor-or-self::*/@install:module"/>
238*cdf0e10cSrcweir			<xsl:when test="not ($context) or @oor:finalized='true' or @oor:op!='modify'">
239*cdf0e10cSrcweir				<xsl:copy>
240*cdf0e10cSrcweir					<xsl:apply-templates select = "@*"/>
241*cdf0e10cSrcweir					<xsl:apply-templates select = "value"/>
242*cdf0e10cSrcweir				</xsl:copy>
243*cdf0e10cSrcweir			</xsl:when>
244*cdf0e10cSrcweir			<xsl:when test="value[not (@xml:lang) or @install:module]">
245*cdf0e10cSrcweir                <xsl:if test="value[not(@install:module) or @install:module=$module]">
246*cdf0e10cSrcweir                    <!-- copy locale independent values only, if the values differ -->
247*cdf0e10cSrcweir                    <xsl:variable name="isRedundant">
248*cdf0e10cSrcweir                        <xsl:call-template name="isRedundant">
249*cdf0e10cSrcweir                            <xsl:with-param name="schemaval"  select="$context/value"/>
250*cdf0e10cSrcweir                            <xsl:with-param name="dataval" select="value[(not(@xml:lang) or @install:module) and (not(@install:module) or @install:module=$module)]"/>
251*cdf0e10cSrcweir                        </xsl:call-template>
252*cdf0e10cSrcweir                    </xsl:variable>
253*cdf0e10cSrcweir                    <xsl:if test="$isRedundant ='false'">
254*cdf0e10cSrcweir                        <xsl:copy>
255*cdf0e10cSrcweir                            <xsl:apply-templates select = "@*"/>
256*cdf0e10cSrcweir                            <xsl:apply-templates select = "value"/>
257*cdf0e10cSrcweir                        </xsl:copy>
258*cdf0e10cSrcweir                        </xsl:if>
259*cdf0e10cSrcweir				</xsl:if>
260*cdf0e10cSrcweir			</xsl:when>
261*cdf0e10cSrcweir			<xsl:otherwise>
262*cdf0e10cSrcweir				<xsl:copy>
263*cdf0e10cSrcweir					<xsl:apply-templates select = "@*"/>
264*cdf0e10cSrcweir					<xsl:apply-templates select = "value" mode="fallback-locale"/>
265*cdf0e10cSrcweir				</xsl:copy>
266*cdf0e10cSrcweir			</xsl:otherwise>
267*cdf0e10cSrcweir		</xsl:choose>
268*cdf0e10cSrcweir	</xsl:template>
269*cdf0e10cSrcweir
270*cdf0e10cSrcweir	<xsl:template match="value">
271*cdf0e10cSrcweir		<xsl:choose>
272*cdf0e10cSrcweir            <xsl:when test="@xml:lang and not(@install:module)"/>
273*cdf0e10cSrcweir            <xsl:when test="$module and not(ancestor-or-self::*/@install:module=$module)"/>
274*cdf0e10cSrcweir            <xsl:when test="not($module) and ancestor-or-self::*/@install:module"/>
275*cdf0e10cSrcweir            <xsl:otherwise>
276*cdf0e10cSrcweir                <xsl:copy>
277*cdf0e10cSrcweir                    <xsl:apply-templates select = "@*"/>
278*cdf0e10cSrcweir                    <xsl:copy-of select="node()"/>
279*cdf0e10cSrcweir                </xsl:copy>
280*cdf0e10cSrcweir            </xsl:otherwise>
281*cdf0e10cSrcweir		</xsl:choose>
282*cdf0e10cSrcweir	</xsl:template>
283*cdf0e10cSrcweir
284*cdf0e10cSrcweir	<xsl:template match="value" mode="fallback-locale">
285*cdf0e10cSrcweir		<xsl:if test="@xml:lang=$fallback-locale and not(@install:module)">
286*cdf0e10cSrcweir            <xsl:copy>
287*cdf0e10cSrcweir                <xsl:apply-templates select = "@*"/>
288*cdf0e10cSrcweir                <xsl:copy-of select="node()"/>
289*cdf0e10cSrcweir            </xsl:copy>
290*cdf0e10cSrcweir		</xsl:if>
291*cdf0e10cSrcweir	</xsl:template>
292*cdf0e10cSrcweir
293*cdf0e10cSrcweir	<xsl:template match = "@*">
294*cdf0e10cSrcweir		<xsl:copy/>
295*cdf0e10cSrcweir	</xsl:template>
296*cdf0e10cSrcweir
297*cdf0e10cSrcweir    <!-- suppress all merge instructions, that are out-of-module -->
298*cdf0e10cSrcweir	<xsl:template match = "@oor:op">
299*cdf0e10cSrcweir        <xsl:if test="not($module) or ancestor::*/@install:module">
300*cdf0e10cSrcweir            <xsl:copy/>
301*cdf0e10cSrcweir		</xsl:if>
302*cdf0e10cSrcweir	</xsl:template>
303*cdf0e10cSrcweir
304*cdf0e10cSrcweir    <!-- suppress all module markers -->
305*cdf0e10cSrcweir	<xsl:template match = "@install:module"/>
306*cdf0e10cSrcweir
307*cdf0e10cSrcweir<!-- compares two values -->
308*cdf0e10cSrcweir	<xsl:template name="isRedundant">
309*cdf0e10cSrcweir		<xsl:param name = "schemaval"/>
310*cdf0e10cSrcweir		<xsl:param name = "dataval"/>
311*cdf0e10cSrcweir		<xsl:choose>
312*cdf0e10cSrcweir			<xsl:when test="not ($dataval)">
313*cdf0e10cSrcweir				<xsl:value-of select="true()"/>
314*cdf0e10cSrcweir			</xsl:when>
315*cdf0e10cSrcweir            <xsl:when test="$dataval/@oor:external">
316*cdf0e10cSrcweir                <xsl:value-of select="false()"/>
317*cdf0e10cSrcweir            </xsl:when>
318*cdf0e10cSrcweir			<xsl:when test="not ($schemaval)">
319*cdf0e10cSrcweir				<xsl:choose>
320*cdf0e10cSrcweir					<xsl:when test="$dataval/@xsi:nil='true'">
321*cdf0e10cSrcweir						<xsl:value-of select="true()"/>
322*cdf0e10cSrcweir					</xsl:when>
323*cdf0e10cSrcweir					<xsl:otherwise>
324*cdf0e10cSrcweir						<xsl:value-of select="false()"/>
325*cdf0e10cSrcweir					</xsl:otherwise>
326*cdf0e10cSrcweir				</xsl:choose>
327*cdf0e10cSrcweir			</xsl:when>
328*cdf0e10cSrcweir			<xsl:when test="$schemaval != $dataval">
329*cdf0e10cSrcweir				<xsl:value-of select="false()"/>
330*cdf0e10cSrcweir			</xsl:when>
331*cdf0e10cSrcweir			<xsl:otherwise>
332*cdf0e10cSrcweir				<xsl:value-of select="true()"/>
333*cdf0e10cSrcweir			</xsl:otherwise>
334*cdf0e10cSrcweir		</xsl:choose>
335*cdf0e10cSrcweir	</xsl:template>
336*cdf0e10cSrcweir
337*cdf0e10cSrcweir	<xsl:template name="composeFileURL">
338*cdf0e10cSrcweir		<xsl:param name="componentName"/>
339*cdf0e10cSrcweir		<xsl:variable name="fileURL">
340*cdf0e10cSrcweir			<xsl:value-of select="$schemaRootURL"/>/<xsl:value-of select="translate($componentName,'.','/')"/><xsl:text>.xcs</xsl:text>
341*cdf0e10cSrcweir		</xsl:variable>
342*cdf0e10cSrcweir		<xsl:value-of select="$fileURL"/>
343*cdf0e10cSrcweir	</xsl:template>
344*cdf0e10cSrcweir
345*cdf0e10cSrcweir</xsl:transform>
346