source: trunk/phpgwapi/inc/adodb/xsl/convert-0.2-0.3.xsl @ 34

Revision 34, 7.5 KB checked in by niltonneto, 17 years ago (diff)

Versão nova do ADODB (4.5 para 4.95)

  • 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.3</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:element name="table">
24                        <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
25                       
26                        <xsl:if test="string-length(@platform) > 0">
27                                <xsl:attribute name="platform"><xsl:value-of select="@platform"/></xsl:attribute>
28                        </xsl:if>
29                       
30                        <xsl:if test="string-length(@version) > 0">
31                                <xsl:attribute name="version"><xsl:value-of select="@version"/></xsl:attribute>
32                        </xsl:if>
33                       
34                        <xsl:apply-templates select="descr[1]"/>
35                       
36                        <xsl:choose>
37                                <xsl:when test="count(DROP) > 0">
38                                        <xsl:element name="DROP"/>
39                                </xsl:when>
40                                <xsl:otherwise>
41                                        <xsl:apply-templates select="field"/>
42                                </xsl:otherwise>
43                        </xsl:choose>
44                       
45                        <xsl:apply-templates select="constraint"/>
46                       
47                        <xsl:apply-templates select="opt"/>
48                       
49                        <xsl:apply-templates select="index"/>
50                       
51                        <xsl:apply-templates select="data"/>
52                </xsl:element>
53        </xsl:template>
54       
55        <!-- Field -->
56        <xsl:template match="field">
57                <xsl:element name="field">
58                        <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
59                        <xsl:attribute name="type"><xsl:value-of select="@type"/></xsl:attribute>
60                       
61                        <xsl:if test="string-length(@size) > 0">
62                                <xsl:attribute name="size"><xsl:value-of select="@size"/></xsl:attribute>
63                        </xsl:if>
64                       
65                        <xsl:choose>
66                                <xsl:when test="string-length(@opts) = 0">
67                                        <xsl:if test="count(UNSIGNED) > 0">
68                                                <xsl:element name="UNSIGNED"/>
69                                        </xsl:if>
70                                </xsl:when>
71                                <xsl:when test="@opts = 'UNSIGNED'">
72                                        <xsl:element name="UNSIGNED"/>
73                                </xsl:when>
74                                <xsl:when test="contains(@opts,'UNSIGNED')">
75                                        <xsl:attribute name="opts">
76                                                <xsl:value-of select="concat(substring-before(@opts,'UNSIGNED'),substring-after(@opts,'UNSIGNED'))"/>
77                                        </xsl:attribute>
78                                        <xsl:element name="UNSIGNED"/>
79                                </xsl:when>
80                                <xsl:otherwise>
81                                        <xsl:attribute name="opts"><xsl:value-of select="@opts"/></xsl:attribute>
82                                        <xsl:if test="count(UNSIGNED) > 0">
83                                                <xsl:element name="UNSIGNED"/>
84                                        </xsl:if>
85                                </xsl:otherwise>
86                        </xsl:choose>
87                       
88                        <xsl:apply-templates select="descr[1]"/>
89                       
90                        <xsl:choose>
91                                <xsl:when test="count(PRIMARY) > 0">
92                                        <xsl:element name="PRIMARY"/>
93                                </xsl:when>
94                                <xsl:when test="count(KEY) > 0">
95                                        <xsl:element name="KEY"/>
96                                </xsl:when>
97                                <xsl:when test="count(NOTNULL) > 0">
98                                        <xsl:element name="NOTNULL"/>
99                                </xsl:when>
100                        </xsl:choose>
101                       
102                        <xsl:choose>
103                                <xsl:when test="count(AUTO) > 0">
104                                        <xsl:element name="AUTO"/>
105                                </xsl:when>
106                                <xsl:when test="count(AUTOINCREMENT) > 0">
107                                        <xsl:element name="AUTOINCREMENT"/>
108                                </xsl:when>
109                        </xsl:choose>
110                       
111                        <xsl:choose>
112                                <xsl:when test="count(DEFAULT) > 0">
113                                        <xsl:element name="DEFAULT">
114                                                <xsl:attribute name="value">
115                                                        <xsl:value-of select="DEFAULT[1]/@value"/>
116                                                </xsl:attribute>
117                                        </xsl:element>
118                                </xsl:when>
119                                <xsl:when test="count(DEFDATE) > 0">
120                                        <xsl:element name="DEFDATE">
121                                                <xsl:attribute name="value">
122                                                        <xsl:value-of select="DEFDATE[1]/@value"/>
123                                                </xsl:attribute>
124                                        </xsl:element>
125                                </xsl:when>
126                                <xsl:when test="count(DEFTIMESTAMP) > 0">
127                                        <xsl:element name="DEFTIMESTAMP">
128                                                <xsl:attribute name="value">
129                                                        <xsl:value-of select="DEFTIMESTAMP[1]/@value"/>
130                                                </xsl:attribute>
131                                        </xsl:element>
132                                </xsl:when>
133                        </xsl:choose>
134                       
135                        <xsl:if test="count(NOQUOTE) > 0">
136                                <xsl:element name="NOQUOTE"/>
137                        </xsl:if>
138                       
139                        <xsl:apply-templates select="constraint"/>
140                       
141                        <xsl:apply-templates select="opt"/>
142                </xsl:element>
143        </xsl:template>
144       
145        <!-- Constraint -->
146        <xsl:template match="constraint">
147                <xsl:element name="constraint">
148                        <xsl:if test="string-length(@platform) > 0">
149                                <xsl:attribute name="platform"><xsl:value-of select="@platform"/></xsl:attribute>
150                        </xsl:if>
151                       
152                        <xsl:value-of select="normalize-space(text())"/>
153                </xsl:element>
154        </xsl:template>
155       
156        <!-- Opt -->
157        <xsl:template match="opt">
158                <xsl:element name="opt">
159                        <xsl:if test="string-length(@platform) > 0">
160                                <xsl:attribute name="platform"><xsl:value-of select="@platform"/></xsl:attribute>
161                        </xsl:if>
162                       
163                        <xsl:value-of select="normalize-space(text())"/>
164                </xsl:element>
165        </xsl:template>
166       
167        <!-- Index -->
168        <xsl:template match="index">
169                <xsl:element name="index">
170                        <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
171                       
172                        <xsl:apply-templates select="descr[1]"/>
173                       
174                        <xsl:if test="count(CLUSTERED) > 0">
175                                <xsl:element name="CLUSTERED"/>
176                        </xsl:if>
177                       
178                        <xsl:if test="count(BITMAP) > 0">
179                                <xsl:element name="BITMAP"/>
180                        </xsl:if>
181                       
182                        <xsl:if test="count(UNIQUE) > 0">
183                                <xsl:element name="UNIQUE"/>
184                        </xsl:if>
185                       
186                        <xsl:if test="count(FULLTEXT) > 0">
187                                <xsl:element name="FULLTEXT"/>
188                        </xsl:if>
189                       
190                        <xsl:if test="count(HASH) > 0">
191                                <xsl:element name="HASH"/>
192                        </xsl:if>
193                       
194                        <xsl:choose>
195                                <xsl:when test="count(DROP) > 0">
196                                        <xsl:element name="DROP"/>
197                                </xsl:when>
198                                <xsl:otherwise>
199                                        <xsl:apply-templates select="col"/>
200                                </xsl:otherwise>
201                        </xsl:choose>
202                </xsl:element>
203        </xsl:template>
204       
205        <!-- Index Column -->
206        <xsl:template match="col">
207                <xsl:element name="col">
208                        <xsl:value-of select="normalize-space(text())"/>
209                </xsl:element>
210        </xsl:template>
211       
212        <!-- SQL QuerySet -->
213        <xsl:template match="sql">
214                <xsl:element name="sql">
215                        <xsl:if test="string-length(@platform) > 0">
216                                <xsl:attribute name="platform"><xsl:value-of select="@platform"/></xsl:attribute>
217                        </xsl:if>
218                       
219                        <xsl:if test="string-length(@key) > 0">
220                                <xsl:attribute name="key"><xsl:value-of select="@key"/></xsl:attribute>
221                        </xsl:if>
222                       
223                        <xsl:if test="string-length(@prefixmethod) > 0">
224                                <xsl:attribute name="prefixmethod"><xsl:value-of select="@prefixmethod"/></xsl:attribute>
225                        </xsl:if>
226                       
227                        <xsl:apply-templates select="descr[1]"/>
228                       
229                        <xsl:apply-templates select="query"/>
230                </xsl:element>
231        </xsl:template>
232       
233        <!-- Query -->
234        <xsl:template match="query">
235                <xsl:element name="query">
236                        <xsl:if test="string-length(@platform) > 0">
237                                <xsl:attribute name="platform"><xsl:value-of select="@platform"/></xsl:attribute>
238                        </xsl:if>
239                       
240                        <xsl:value-of select="normalize-space(text())"/>
241                </xsl:element>
242        </xsl:template>
243       
244        <!-- Description -->
245        <xsl:template match="descr">
246                <xsl:element name="descr">
247                        <xsl:value-of select="normalize-space(text())"/>
248                </xsl:element>
249        </xsl:template>
250       
251        <!-- Data -->
252        <xsl:template match="data">
253                <xsl:element name="data">
254                        <xsl:if test="string-length(@platform) > 0">
255                                <xsl:attribute name="platform"><xsl:value-of select="@platform"/></xsl:attribute>
256                        </xsl:if>
257                       
258                        <xsl:apply-templates select="descr[1]"/>
259                       
260                        <xsl:apply-templates select="row"/>
261                </xsl:element>
262        </xsl:template>
263       
264        <!-- Data Row -->
265        <xsl:template match="row">
266                <xsl:element name="row">
267                        <xsl:apply-templates select="f"/>
268                </xsl:element>
269        </xsl:template>
270       
271        <!-- Data Field -->
272        <xsl:template match="f">
273                <xsl:element name="f">
274                        <xsl:if test="string-length(@name) > 0">
275                                <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
276                        </xsl:if>
277                       
278                        <xsl:value-of select="normalize-space(text())"/>
279                </xsl:element>
280        </xsl:template>
281</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.