source: branches/2.3/phpgwapi/inc/adodb/xsl/convert-0.1-0.3.xsl @ 34

Revision 34, 6.0 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: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:apply-templates select="../index[@table=$table_name]"/>
50                </xsl:element>
51        </xsl:template>
52       
53        <!-- Field -->
54        <xsl:template match="field">
55                <xsl:element name="field">
56                        <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
57                        <xsl:attribute name="type"><xsl:value-of select="@type"/></xsl:attribute>
58                       
59                        <xsl:if test="string-length(@size) > 0">
60                                <xsl:attribute name="size"><xsl:value-of select="@size"/></xsl:attribute>
61                        </xsl:if>
62                       
63                        <xsl:choose>
64                                <xsl:when test="string-length(@opts) = 0"/>
65                                <xsl:when test="@opts = 'UNSIGNED'">
66                                        <xsl:element name="UNSIGNED"/>
67                                </xsl:when>
68                                <xsl:when test="contains(@opts,'UNSIGNED')">
69                                        <xsl:attribute name="opts">
70                                                <xsl:value-of select="concat(substring-before(@opts,'UNSIGNED'),substring-after(@opts,'UNSIGNED'))"/>
71                                        </xsl:attribute>
72                                        <xsl:element name="UNSIGNED"/>
73                                </xsl:when>
74                                <xsl:otherwise>
75                                        <xsl:attribute name="opts"><xsl:value-of select="@opts"/></xsl:attribute>
76                                </xsl:otherwise>
77                        </xsl:choose>
78                       
79                        <xsl:choose>
80                                <xsl:when test="count(PRIMARY) > 0">
81                                        <xsl:element name="PRIMARY"/>
82                                </xsl:when>
83                                <xsl:when test="count(KEY) > 0">
84                                        <xsl:element name="KEY"/>
85                                </xsl:when>
86                                <xsl:when test="count(NOTNULL) > 0">
87                                        <xsl:element name="NOTNULL"/>
88                                </xsl:when>
89                        </xsl:choose>
90                       
91                        <xsl:choose>
92                                <xsl:when test="count(AUTO) > 0">
93                                        <xsl:element name="AUTO"/>
94                                </xsl:when>
95                                <xsl:when test="count(AUTOINCREMENT) > 0">
96                                        <xsl:element name="AUTOINCREMENT"/>
97                                </xsl:when>
98                        </xsl:choose>
99                       
100                        <xsl:choose>
101                                <xsl:when test="count(DEFAULT) > 0">
102                                        <xsl:element name="DEFAULT">
103                                                <xsl:attribute name="value">
104                                                        <xsl:value-of select="DEFAULT[1]/@value"/>
105                                                </xsl:attribute>
106                                        </xsl:element>
107                                </xsl:when>
108                                <xsl:when test="count(DEFDATE) > 0">
109                                        <xsl:element name="DEFDATE">
110                                                <xsl:attribute name="value">
111                                                        <xsl:value-of select="DEFDATE[1]/@value"/>
112                                                </xsl:attribute>
113                                        </xsl:element>
114                                </xsl:when>
115                                <xsl:when test="count(DEFTIMESTAMP) > 0">
116                                        <xsl:element name="DEFTIMESTAMP">
117                                                <xsl:attribute name="value">
118                                                        <xsl:value-of select="DEFTIMESTAMP[1]/@value"/>
119                                                </xsl:attribute>
120                                        </xsl:element>
121                                </xsl:when>
122                        </xsl:choose>
123                       
124                        <xsl:if test="count(NOQUOTE) > 0">
125                                <xsl:element name="NOQUOTE"/>
126                        </xsl:if>
127                       
128                        <xsl:apply-templates select="constraint"/>
129                </xsl:element>
130        </xsl:template>
131       
132        <!-- Constraint -->
133        <xsl:template match="constraint">
134                <xsl:element name="constraint">
135                        <xsl:value-of select="normalize-space(text())"/>
136                </xsl:element>
137        </xsl:template>
138       
139        <!-- Index -->
140        <xsl:template match="index">
141                <xsl:element name="index">
142                        <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
143                       
144                        <xsl:apply-templates select="descr[1]"/>
145                       
146                        <xsl:if test="count(CLUSTERED) > 0">
147                                <xsl:element name="CLUSTERED"/>
148                        </xsl:if>
149                       
150                        <xsl:if test="count(BITMAP) > 0">
151                                <xsl:element name="BITMAP"/>
152                        </xsl:if>
153                       
154                        <xsl:if test="count(UNIQUE) > 0">
155                                <xsl:element name="UNIQUE"/>
156                        </xsl:if>
157                       
158                        <xsl:if test="count(FULLTEXT) > 0">
159                                <xsl:element name="FULLTEXT"/>
160                        </xsl:if>
161                       
162                        <xsl:if test="count(HASH) > 0">
163                                <xsl:element name="HASH"/>
164                        </xsl:if>
165                       
166                        <xsl:choose>
167                                <xsl:when test="count(DROP) > 0">
168                                        <xsl:element name="DROP"/>
169                                </xsl:when>
170                                <xsl:otherwise>
171                                        <xsl:apply-templates select="col"/>
172                                </xsl:otherwise>
173                        </xsl:choose>
174                </xsl:element>
175        </xsl:template>
176       
177        <!-- Index Column -->
178        <xsl:template match="col">
179                <xsl:element name="col">
180                        <xsl:value-of select="normalize-space(text())"/>
181                </xsl:element>
182        </xsl:template>
183       
184        <!-- SQL QuerySet -->
185        <xsl:template match="sql">
186                <xsl:element name="sql">
187                        <xsl:if test="string-length(@platform) > 0">
188                                <xsl:attribute name="platform"><xsl:value-of select="@platform"/></xsl:attribute>
189                        </xsl:if>
190                       
191                        <xsl:if test="string-length(@key) > 0">
192                                <xsl:attribute name="key"><xsl:value-of select="@key"/></xsl:attribute>
193                        </xsl:if>
194                       
195                        <xsl:if test="string-length(@prefixmethod) > 0">
196                                <xsl:attribute name="prefixmethod"><xsl:value-of select="@prefixmethod"/></xsl:attribute>
197                        </xsl:if>
198                       
199                        <xsl:apply-templates select="descr[1]"/>
200                        <xsl:apply-templates select="query"/>
201                </xsl:element>
202        </xsl:template>
203       
204        <!-- Query -->
205        <xsl:template match="query">
206                <xsl:element name="query">
207                        <xsl:if test="string-length(@platform) > 0">
208                                <xsl:attribute name="platform"><xsl:value-of select="@platform"/></xsl:attribute>
209                        </xsl:if>
210                       
211                        <xsl:value-of select="normalize-space(text())"/>
212                </xsl:element>
213        </xsl:template>
214       
215        <!-- Description -->
216        <xsl:template match="descr">
217                <xsl:element name="descr">
218                        <xsl:value-of select="normalize-space(text())"/>
219                </xsl:element>
220        </xsl:template>
221</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.