source: trunk/phpgwapi/inc/adodb/xsl/convert-0.2-0.1.xsl @ 2

Revision 2, 5.5 KB checked in by niltonneto, 17 years ago (diff)

Removida todas as tags usadas pelo CVS ($Id, $Source).
Primeira versão no CVS externo.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<xsl:stylesheet version="1.0"
3        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4>
5        <xsl:output method="xml" indent="yes" omit-xml-declaration="no" encoding="UTF-8"/>
6       
7        <!-- Schema -->
8        <xsl:template match="/">
9                <xsl:comment>
10ADODB XMLSchema
11http://adodb-xmlschema.sourceforge.net
12</xsl:comment>
13               
14                <xsl:element name="schema">
15                        <xsl:attribute name="version">0.1</xsl:attribute>
16                       
17                        <xsl:apply-templates select="schema/table|schema/sql"/>
18                </xsl:element>
19        </xsl:template>
20       
21        <!-- Table -->
22        <xsl:template match="table">
23                <xsl:variable name="table_name" select="@name"/>
24               
25                <xsl:element name="table">
26                        <xsl:attribute name="name"><xsl:value-of select="$table_name"/></xsl:attribute>
27                       
28                        <xsl:if test="string-length(@platform) > 0">
29                                <xsl:attribute name="platform"><xsl:value-of select="@platform"/></xsl:attribute>
30                        </xsl:if>
31                       
32                        <xsl:if test="string-length(@version) > 0">
33                                <xsl:attribute name="version"><xsl:value-of select="@version"/></xsl:attribute>
34                        </xsl:if>
35                       
36                        <xsl:apply-templates select="descr[1]"/>
37                       
38                        <xsl:choose>
39                                <xsl:when test="count(DROP) > 0">
40                                        <xsl:element name="DROP"/>
41                                </xsl:when>
42                                <xsl:otherwise>
43                                        <xsl:apply-templates select="field"/>
44                                </xsl:otherwise>
45                        </xsl:choose>
46                       
47                        <xsl:apply-templates select="constraint"/>
48                       
49                </xsl:element>
50               
51                <xsl:apply-templates select="index"/>
52        </xsl:template>
53       
54        <!-- Field -->
55        <xsl:template match="field">
56                <xsl:element name="field">
57                        <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
58                        <xsl:attribute name="type"><xsl:value-of select="@type"/></xsl:attribute>
59                       
60                        <xsl:if test="string-length(@size) > 0">
61                                <xsl:attribute name="size"><xsl:value-of select="@size"/></xsl:attribute>
62                        </xsl:if>
63                       
64                        <xsl:choose>
65                                <xsl:when test="count(PRIMARY) > 0">
66                                        <xsl:element name="PRIMARY"/>
67                                </xsl:when>
68                                <xsl:when test="count(KEY) > 0">
69                                        <xsl:element name="KEY"/>
70                                </xsl:when>
71                                <xsl:when test="count(NOTNULL) > 0">
72                                        <xsl:element name="NOTNULL"/>
73                                </xsl:when>
74                        </xsl:choose>
75                       
76                        <xsl:choose>
77                                <xsl:when test="count(AUTO) > 0">
78                                        <xsl:element name="AUTO"/>
79                                </xsl:when>
80                                <xsl:when test="count(AUTOINCREMENT) > 0">
81                                        <xsl:element name="AUTOINCREMENT"/>
82                                </xsl:when>
83                        </xsl:choose>
84                       
85                        <xsl:choose>
86                                <xsl:when test="count(DEFAULT) > 0">
87                                        <xsl:element name="DEFAULT">
88                                                <xsl:attribute name="value">
89                                                        <xsl:value-of select="DEFAULT[1]/@value"/>
90                                                </xsl:attribute>
91                                        </xsl:element>
92                                </xsl:when>
93                                <xsl:when test="count(DEFDATE) > 0">
94                                        <xsl:element name="DEFDATE">
95                                                <xsl:attribute name="value">
96                                                        <xsl:value-of select="DEFDATE[1]/@value"/>
97                                                </xsl:attribute>
98                                        </xsl:element>
99                                </xsl:when>
100                                <xsl:when test="count(DEFTIMESTAMP) > 0">
101                                        <xsl:element name="DEFDTIMESTAMP">
102                                                <xsl:attribute name="value">
103                                                        <xsl:value-of select="DEFTIMESTAMP[1]/@value"/>
104                                                </xsl:attribute>
105                                        </xsl:element>
106                                </xsl:when>
107                        </xsl:choose>
108                       
109                        <xsl:if test="count(NOQUOTE) > 0">
110                                <xsl:element name="NOQUOTE"/>
111                        </xsl:if>
112                       
113                        <xsl:apply-templates select="constraint"/>
114                </xsl:element>
115        </xsl:template>
116       
117        <!-- Constraint -->
118        <xsl:template match="constraint">
119                <xsl:element name="constraint">
120                        <xsl:value-of select="normalize-space(text())"/>
121                </xsl:element>
122        </xsl:template>
123       
124        <!-- Index -->
125        <xsl:template match="index">
126                <xsl:element name="index">
127                        <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
128                        <xsl:attribute name="table"><xsl:value-of select="../@name"/></xsl:attribute>
129                       
130                        <xsl:apply-templates select="descr[1]"/>
131                       
132                        <xsl:if test="count(CLUSTERED) > 0">
133                                <xsl:element name="CLUSTERED"/>
134                        </xsl:if>
135                       
136                        <xsl:if test="count(BITMAP) > 0">
137                                <xsl:element name="BITMAP"/>
138                        </xsl:if>
139                       
140                        <xsl:if test="count(UNIQUE) > 0">
141                                <xsl:element name="UNIQUE"/>
142                        </xsl:if>
143                       
144                        <xsl:if test="count(FULLTEXT) > 0">
145                                <xsl:element name="FULLTEXT"/>
146                        </xsl:if>
147                       
148                        <xsl:if test="count(HASH) > 0">
149                                <xsl:element name="HASH"/>
150                        </xsl:if>
151                       
152                        <xsl:choose>
153                                <xsl:when test="count(DROP) > 0">
154                                        <xsl:element name="DROP"/>
155                                </xsl:when>
156                                <xsl:otherwise>
157                                        <xsl:apply-templates select="col"/>
158                                </xsl:otherwise>
159                        </xsl:choose>
160                </xsl:element>
161        </xsl:template>
162       
163        <!-- Index Column -->
164        <xsl:template match="col">
165                <xsl:element name="col">
166                        <xsl:value-of select="normalize-space(text())"/>
167                </xsl:element>
168        </xsl:template>
169       
170        <!-- SQL QuerySet -->
171        <xsl:template match="sql">
172                <xsl:element name="sql">
173                        <xsl:if test="string-length(@platform) > 0">
174                                <xsl:attribute name="platform"><xsl:value-of select="@platform"/></xsl:attribute>
175                        </xsl:if>
176                       
177                        <xsl:if test="string-length(@key) > 0">
178                                <xsl:attribute name="key"><xsl:value-of select="@key"/></xsl:attribute>
179                        </xsl:if>
180                       
181                        <xsl:if test="string-length(@prefixmethod) > 0">
182                                <xsl:attribute name="prefixmethod"><xsl:value-of select="@prefixmethod"/></xsl:attribute>
183                        </xsl:if>
184                       
185                        <xsl:apply-templates select="descr[1]"/>
186                        <xsl:apply-templates select="query"/>
187                </xsl:element>
188        </xsl:template>
189       
190        <!-- Query -->
191        <xsl:template match="query">
192                <xsl:element name="query">
193                        <xsl:if test="string-length(@platform) > 0">
194                                <xsl:attribute name="platform"><xsl:value-of select="@platform"/></xsl:attribute>
195                        </xsl:if>
196                       
197                        <xsl:value-of select="normalize-space(text())"/>
198                </xsl:element>
199        </xsl:template>
200       
201        <!-- Description -->
202        <xsl:template match="descr">
203                <xsl:element name="descr">
204                        <xsl:value-of select="normalize-space(text())"/>
205                </xsl:element>
206        </xsl:template>
207</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.