xref: /aosp_15_r20/external/apache-xml/test/tests/api/Minitest.xsl (revision 1212f9a0ffdc28482b8821715d2222bf16dc14e2)
1*1212f9a0SAndroid Build Coastguard Worker<?xml version="1.0"?>
2*1212f9a0SAndroid Build Coastguard Worker<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
3*1212f9a0SAndroid Build Coastguard Worker				xmlns:smith="url://the.smith.family"
4*1212f9a0SAndroid Build Coastguard Worker				xmlns:weston="url://the.weston.family"
5*1212f9a0SAndroid Build Coastguard Worker				exclude-result-prefixes="smith weston">
6*1212f9a0SAndroid Build Coastguard Worker
7*1212f9a0SAndroid Build Coastguard Worker<!-- Filename: Minitest.xsl -->
8*1212f9a0SAndroid Build Coastguard Worker<!-- Author: [email protected] -->
9*1212f9a0SAndroid Build Coastguard Worker<!-- Author: [email protected] updated for Minitest use Dec-00 -->
10*1212f9a0SAndroid Build Coastguard Worker
11*1212f9a0SAndroid Build Coastguard Worker<xsl:import href="impincl/MinitestImport.xsl"/>
12*1212f9a0SAndroid Build Coastguard Worker<xsl:include href="impincl/MinitestInclude.xsl"/>
13*1212f9a0SAndroid Build Coastguard Worker
14*1212f9a0SAndroid Build Coastguard Worker<xsl:strip-space elements="Family_Geneologies Kids Males"/>
15*1212f9a0SAndroid Build Coastguard Worker<xsl:output method="xml" indent="yes"/>
16*1212f9a0SAndroid Build Coastguard Worker<xsl:variable name="root" select="'Families'"/>
17*1212f9a0SAndroid Build Coastguard Worker
18*1212f9a0SAndroid Build Coastguard Worker<!-- Root xsl:template - start processing here -->
19*1212f9a0SAndroid Build Coastguard Worker<xsl:key name="KidInfo" match="Kid" use="@ID"/>
20*1212f9a0SAndroid Build Coastguard Worker
21*1212f9a0SAndroid Build Coastguard Worker<xsl:template match="Family_Geneologies">
22*1212f9a0SAndroid Build Coastguard Worker  <out>
23*1212f9a0SAndroid Build Coastguard Worker     <xsl:apply-templates select="Family"/>
24*1212f9a0SAndroid Build Coastguard Worker  </out>
25*1212f9a0SAndroid Build Coastguard Worker</xsl:template>
26*1212f9a0SAndroid Build Coastguard Worker
27*1212f9a0SAndroid Build Coastguard Worker
28*1212f9a0SAndroid Build Coastguard Worker<xsl:template match="Family">
29*1212f9a0SAndroid Build Coastguard Worker<xsl:text>&#10;</xsl:text>
30*1212f9a0SAndroid Build Coastguard Worker
31*1212f9a0SAndroid Build Coastguard Worker	<xsl:call-template name="tree">
32*1212f9a0SAndroid Build Coastguard Worker	   <xsl:with-param name="Surname" select="@Surname"/>
33*1212f9a0SAndroid Build Coastguard Worker	</xsl:call-template><xsl:text>&#10;</xsl:text>
34*1212f9a0SAndroid Build Coastguard Worker
35*1212f9a0SAndroid Build Coastguard Worker	<xsl:value-of select="@Surname" />
36*1212f9a0SAndroid Build Coastguard Worker
37*1212f9a0SAndroid Build Coastguard Worker    <xsl:apply-templates select="Parents">
38*1212f9a0SAndroid Build Coastguard Worker	   <xsl:with-param name="Surname" select="@Surname"/>
39*1212f9a0SAndroid Build Coastguard Worker	</xsl:apply-templates>
40*1212f9a0SAndroid Build Coastguard Worker
41*1212f9a0SAndroid Build Coastguard Worker	<xsl:apply-templates select="Children/Child">
42*1212f9a0SAndroid Build Coastguard Worker	   <xsl:sort select="Basic_Information/Name/@First"/>
43*1212f9a0SAndroid Build Coastguard Worker	</xsl:apply-templates>
44*1212f9a0SAndroid Build Coastguard Worker
45*1212f9a0SAndroid Build Coastguard Worker</xsl:template>
46*1212f9a0SAndroid Build Coastguard Worker
47*1212f9a0SAndroid Build Coastguard Worker<xsl:template match="Child">
48*1212f9a0SAndroid Build Coastguard Worker	<xsl:text>&#10;&#13;</xsl:text>
49*1212f9a0SAndroid Build Coastguard Worker	<xsl:value-of select=".//Name"/>'s phone number is <xsl:value-of select=".//Phone/Home"/><xsl:text>.</xsl:text>
50*1212f9a0SAndroid Build Coastguard Worker	<xsl:if test='Personal_Information/Sex[.="Male"]' ><xsl:text/>
51*1212f9a0SAndroid Build Coastguard WorkerHe is <xsl:value-of select="Personal_Information/Age"/><xsl:text>. </xsl:text>
52*1212f9a0SAndroid Build Coastguard Worker	</xsl:if>
53*1212f9a0SAndroid Build Coastguard Worker	<xsl:if test='Personal_Information/Sex[.="Female"]' >
54*1212f9a0SAndroid Build Coastguard WorkerShe is <xsl:value-of select="Personal_Information/Age"/><xsl:text>. </xsl:text>
55*1212f9a0SAndroid Build Coastguard Worker	</xsl:if>
56*1212f9a0SAndroid Build Coastguard Worker	<xsl:apply-templates select="Personal_Information/Married"/>
57*1212f9a0SAndroid Build Coastguard Worker</xsl:template>
58*1212f9a0SAndroid Build Coastguard Worker
59*1212f9a0SAndroid Build Coastguard Worker<xsl:template match ="Personal_Information/Married">
60*1212f9a0SAndroid Build Coastguard Worker  <xsl:variable name="spouse" select="following-sibling::*/Wife/Name | following-sibling::*/child::Husband/child::Name"/>
61*1212f9a0SAndroid Build Coastguard Worker	<xsl:if test='.="Yes"' >
62*1212f9a0SAndroid Build Coastguard Worker		<xsl:value-of select="ancestor::Child/Basic_Information/Name/@First"/> is married to <xsl:value-of select="$spouse"/>
63*1212f9a0SAndroid Build Coastguard Worker		<xsl:text>.</xsl:text>
64*1212f9a0SAndroid Build Coastguard Worker		<xsl:choose>
65*1212f9a0SAndroid Build Coastguard Worker			<xsl:when test="./@Kids > 0">
66*1212f9a0SAndroid Build Coastguard WorkerTheir children are <xsl:text/>
67*1212f9a0SAndroid Build Coastguard Worker				<xsl:for-each select="following-sibling::*/child::Kids/child::Kid">
68*1212f9a0SAndroid Build Coastguard Worker				   <!--xsl:value-of select="."/-->
69*1212f9a0SAndroid Build Coastguard Worker				   <xsl:choose>
70*1212f9a0SAndroid Build Coastguard Worker						<xsl:when test="(position()=last())">
71*1212f9a0SAndroid Build Coastguard Worker							<xsl:value-of select="Name"/>:<xsl:value-of select="Age"/></xsl:when>
72*1212f9a0SAndroid Build Coastguard Worker						<xsl:otherwise>
73*1212f9a0SAndroid Build Coastguard Worker				   			<xsl:value-of select="Name"/>:<xsl:value-of select="Age"/><xsl:text>, </xsl:text></xsl:otherwise>
74*1212f9a0SAndroid Build Coastguard Worker				   </xsl:choose>
75*1212f9a0SAndroid Build Coastguard Worker				   <xsl:if test="(position()=last()-1)">and </xsl:if>
76*1212f9a0SAndroid Build Coastguard Worker				</xsl:for-each>
77*1212f9a0SAndroid Build Coastguard Worker			</xsl:when>
78*1212f9a0SAndroid Build Coastguard Worker			<xsl:when test="./@Kids = 0">
79*1212f9a0SAndroid Build Coastguard WorkerThey have no kids
80*1212f9a0SAndroid Build Coastguard Worker			</xsl:when>
81*1212f9a0SAndroid Build Coastguard Worker		</xsl:choose>
82*1212f9a0SAndroid Build Coastguard Worker	</xsl:if>
83*1212f9a0SAndroid Build Coastguard Worker	<xsl:if test='.="No"'>
84*1212f9a0SAndroid Build Coastguard Worker		<xsl:value-of select="ancestor::Child/child::Basic_Information/child::Name/@First"/> is not married.
85*1212f9a0SAndroid Build Coastguard Worker		<!-- The following is another way to print out the same message
86*1212f9a0SAndroid Build Coastguard Worker		<xsl:value-of select="../..//Basic_Information/Name/@First"/> is not married   -->
87*1212f9a0SAndroid Build Coastguard Worker	</xsl:if>
88*1212f9a0SAndroid Build Coastguard Worker</xsl:template>
89*1212f9a0SAndroid Build Coastguard Worker
90*1212f9a0SAndroid Build Coastguard Worker<xsl:template match ="Parents">
91*1212f9a0SAndroid Build Coastguard Worker   <xsl:param name="Surname" select="'Default'"/>
92*1212f9a0SAndroid Build Coastguard WorkerThe parents are: <xsl:value-of select="Father/@First"/> and <xsl:value-of select="Mother"/>
93*1212f9a0SAndroid Build Coastguard Worker    <xsl:choose>
94*1212f9a0SAndroid Build Coastguard Worker       <xsl:when test="contains($Surname,'Dicks')">
95*1212f9a0SAndroid Build Coastguard Worker          <xsl:apply-templates select="GrandKids" mode="document"/>
96*1212f9a0SAndroid Build Coastguard Worker	   </xsl:when>
97*1212f9a0SAndroid Build Coastguard Worker	   <xsl:otherwise>
98*1212f9a0SAndroid Build Coastguard Worker          <xsl:apply-templates select="GrandKids" mode="orginal"/>
99*1212f9a0SAndroid Build Coastguard Worker	   </xsl:otherwise>
100*1212f9a0SAndroid Build Coastguard Worker	</xsl:choose>
101*1212f9a0SAndroid Build Coastguard Worker</xsl:template>
102*1212f9a0SAndroid Build Coastguard Worker
103*1212f9a0SAndroid Build Coastguard Worker
104*1212f9a0SAndroid Build Coastguard Worker
105*1212f9a0SAndroid Build Coastguard Worker  <!--
106*1212f9a0SAndroid Build Coastguard Worker   * Licensed to the Apache Software Foundation (ASF) under one
107*1212f9a0SAndroid Build Coastguard Worker   * or more contributor license agreements. See the NOTICE file
108*1212f9a0SAndroid Build Coastguard Worker   * distributed with this work for additional information
109*1212f9a0SAndroid Build Coastguard Worker   * regarding copyright ownership. The ASF licenses this file
110*1212f9a0SAndroid Build Coastguard Worker   * to you under the Apache License, Version 2.0 (the  "License");
111*1212f9a0SAndroid Build Coastguard Worker   * you may not use this file except in compliance with the License.
112*1212f9a0SAndroid Build Coastguard Worker   * You may obtain a copy of the License at
113*1212f9a0SAndroid Build Coastguard Worker   *
114*1212f9a0SAndroid Build Coastguard Worker   *     http://www.apache.org/licenses/LICENSE-2.0
115*1212f9a0SAndroid Build Coastguard Worker   *
116*1212f9a0SAndroid Build Coastguard Worker   * Unless required by applicable law or agreed to in writing, software
117*1212f9a0SAndroid Build Coastguard Worker   * distributed under the License is distributed on an "AS IS" BASIS,
118*1212f9a0SAndroid Build Coastguard Worker   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
119*1212f9a0SAndroid Build Coastguard Worker   * See the License for the specific language governing permissions and
120*1212f9a0SAndroid Build Coastguard Worker   * limitations under the License.
121*1212f9a0SAndroid Build Coastguard Worker  -->
122*1212f9a0SAndroid Build Coastguard Worker
123*1212f9a0SAndroid Build Coastguard Worker</xsl:stylesheet>
124