Subversion Repositories eFlore/Archives.eflore-consultation-v2

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
27 jpm 1
<?xml version="1.0" encoding="UTF-8"?>
2
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
3
    <xsl:output method="text" version="1.0" encoding="UTF-8" indent="yes"/>
4
 
5
    <xsl:template match="/macroelement">&lt;?
6
 
7
        <xsl:apply-templates select="//balise2" mode="require_once"/>
8
 
9
 
10
 
11
        class <xsl:value-of select="@nom"/> extends macroElement {
12
 
13
 
14
            function getSQL()
15
            {
16
                $contexte = array();
17
                <xsl:apply-templates select="requetes/requete"/>
18
                return;
19
            }
20
 
21
            <!--function buildRoot()
22
            {
23
                <xsl:apply_templates select="mapping" mode="root"/>
24
            }
25
 
26
            -->
27
 
28
        }
29
 
30
 
31
?&gt;
32
    </xsl:template>
33
 
34
    <xsl:template match="mapping" mode="root">
35
        <xsl:apply-templates select="*[@root]" mode="level1root"/>
36
    </xsl:template>
37
 
38
    <xsl:template match="requete">
39
                  if (<xsl:apply-templates select="parametres/parametre" mode="isnull"/>)
40
                  {
41
                      <xsl:apply-templates select="parametres/parametre" mode="contexte"/>
42
                      if(<xsl:apply-templates select="parametres/parametre" mode="renseigne"/>)
43
                      {    return "<xsl:value-of select="sql"/>";  }
44
                  }
45
    </xsl:template>
46
 
47
    <xsl:template match="parametre[position()=last()]" mode="isnull">array_key_exists('<xsl:value-of select="@nom"/>',$this->contexteRef) </xsl:template>
48
 
49
    <xsl:template match="parametre" mode="isnull">array_key_exists('<xsl:value-of select="@nom"/>',$this->contexteRef) and </xsl:template>
50
 
51
    <xsl:template match="parametre" mode="contexte">
52
                    $contexte['<xsl:value-of select="@nom"/>']= $this->contexteRef['<xsl:value-of select="@nom"/>'];
53
    </xsl:template>
54
 
55
    <xsl:template match="parametre[position()=last()]" mode="renseigne">!empty($contexte['<xsl:value-of select="@nom"/>']) </xsl:template>
56
 
57
    <xsl:template match="parametre" mode="renseigne">!empty($contexte['<xsl:value-of select="@nom"/>']) and </xsl:template>
58
 
59
 
60
    <xsl:template match="*" mode="level1root">
61
           $element= new domElement('<xsl:value-of select="name()"/>');
62
            $this->baseDOM->appendChild($element);
63
            <xsl:apply-templates select="@*"/>
64
            <xsl:apply-templates select="text()"/>
65
    </xsl:template>
66
 
67
   <xsl:template match="mapping" mode="fetch">
68
       <xsl:apply-templates select="*" mode="level1"/>
69
    </xsl:template>
70
 
71
    <xsl:template match="*" mode="level1">
72
           $element= new domElement('<xsl:value-of select="name()"/>');
73
            $this->baseDOM->appendChild($element);
74
            <xsl:apply-templates select="@*"/>
75
            <xsl:apply-templates select="text()"/>
76
        <xsl:apply-templates select="*" mode="level2"/>
77
    </xsl:template>
78
 
79
    <xsl:template match="*" mode="level2">
80
            $this->baseDOM = $element;
81
           $element= new domElement('<xsl:value-of select="name()"/>');
82
            $this->baseDOM->appendChild($element);
83
            <xsl:apply-templates select="@*"/>
84
            <xsl:apply-templates select="text()"/>
85
        <xsl:apply-templates select="*" mode="level3"/>
86
    </xsl:template>
87
 
88
    <xsl:template match="*" mode="level3">
89
            $this->baseDOM = $element;
90
           $element= new domElement('<xsl:value-of select="name()"/>');
91
            $this->baseDOM->appendChild($element);
92
            <xsl:apply-templates select="@*"/>
93
            <xsl:apply-templates select="text()"/>
94
        <xsl:apply-templates select="*" mode="level4"/>
95
    </xsl:template>
96
 
97
    <xsl:template match="*" mode="level4">
98
            $this->baseDOM = $element;
99
           $element= new domElement('<xsl:value-of select="name()"/>');
100
            $this->baseDOM->appendChild($element);
101
            <xsl:apply-templates select="@*"/>
102
            <xsl:apply-templates select="text()"/>
103
 
104
    </xsl:template>
105
 
106
    <xsl:template match="@*">
107
            $element->setAttribute('<xsl:value-of select="name()"/>',<xsl:value-of select="."/>);
108
    </xsl:template>
109
 
110
    <xsl:template match="text()">
111
        /*text(<xsl:value-of select="."/>)*/
112
    </xsl:template>
113
 
114
 
115
</xsl:stylesheet>