source: Dev/trunk/rdfapi/util/adodb/xsl/convert-0.2-0.3.xsl @ 12

Last change on this file since 12 was 12, checked in by basvannuland, 14 years ago

Added RAP RDF API
Added RDF reader writer for save and load survey

File size: 7.8 KB
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.