source: Dev/branches/jQueryUI/rdfapi/util/adodb/xsl/convert-0.2-0.1.xsl @ 247

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

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

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