3 <!-- Copyright (C) 2000, HELM Team -->
5 <!-- This file is part of HELM, an Hypertextual, Electronic -->
6 <!-- Library of Mathematics, developed at the Computer Science -->
7 <!-- Department, University of Bologna, Italy. -->
9 <!-- HELM is free software; you can redistribute it and/or -->
10 <!-- modify it under the terms of the GNU General Public License -->
11 <!-- as published by the Free Software Foundation; either version 2 -->
12 <!-- of the License, or (at your option) any later version. -->
14 <!-- HELM is distributed in the hope that it will be useful, -->
15 <!-- but WITHOUT ANY WARRANTY; without even the implied warranty of -->
16 <!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
17 <!-- GNU General Public License for more details. -->
19 <!-- You should have received a copy of the GNU General Public License -->
20 <!-- along with HELM; if not, write to the Free Software -->
21 <!-- Foundation, Inc., 59 Temple Place - Suite 330, Boston, -->
22 <!-- MA 02111-1307, USA. -->
24 <!-- For details, see the HELM World-Wide-Web page, -->
25 <!-- http://cs.unibo.it/helm/. -->
27 <!--***********************************************************************-->
28 <!-- XSLT version 0.1 of annotated MathML content to MathML presentation: -->
29 <!-- First draft: March 29 2000, Claudio Sacerdoti Coen, Irene Schena -->
30 <!--***********************************************************************-->
32 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
33 xmlns:m="http://www.w3.org/1998/Math/MathML"
34 xmlns:helm="http://www.cs.unibo.it/helm">
36 <xsl:import href="objcontent.xsl"/>
38 <xsl:key name="id" use="@id" match="LAMBDA|LETIN|PROD|CAST|REL|SORT|APPLY|VAR|META|CONST|MUTIND|MUTCONSTRUCT|MUTCASE|FIX|COFIX|Definition|Axiom|CurrentProof|InductiveDefinition|Variable"/>
40 <xsl:key name="annid" use="@of" match="Annotation"/>
42 <xsl:template match="Definition|Axiom|CurrentProof|InductiveDefinition|Variable">
44 <xsl:when test="key('annid',@id)">
45 <annotation helm:xref="{@id}">
46 <xsl:apply-templates select="key('annid',@id)"/>
50 <xsl:apply-templates select="." mode="noannot"/>
55 <xsl:template match="LAMBDA|LETIN|PROD|CAST|REL|SORT|APPLY|VAR|META|CONST|MUTIND|MUTCONSTRUCT|MUTCASE|FIX|COFIX">
57 <xsl:when test="key('annid',@id)">
58 <annotation helm:xref="{@id}">
59 <xsl:apply-templates select="key('annid',@id)"/>
64 <xsl:apply-templates select="." mode="noannot"/>
70 <xsl:template match="node">
71 <xsl:variable name="id" select="@id"/>
72 <xsl:apply-templates select="key('id',$id)"/>
75 <xsl:template match="attribute">
76 <xsl:variable name="id" select="@id"/>
77 <xsl:variable name="name" select="@name"/>
78 <xsl:variable name="child" select="@child"/>
79 <xsl:variable name="grandchild" select="@grandchild"/>
81 <xsl:when test="$child">
83 <xsl:when test="$grandchild">
84 <xsl:value-of select="key('id',$id)/*[position() = $child]/*[position() = $grandchild]/attribute::*[name() = $name]"/>
87 <xsl:value-of select="key('id',$id)/*[position() = $child]/attribute::*[name() = $name]"/>
92 <xsl:value-of select="key('id',$id)/attribute::*[name() = $name]"/>