source: Dev/trunk/rdfapi/util/adodb/xsl/convert-0.1-0.2.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: 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.2</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="count(PRIMARY) > 0">
65                                        <xsl:element name="PRIMARY"/>
66                                </xsl:when>
67                                <xsl:when test="count(KEY) > 0">
68                                        <xsl:element name="KEY"/>
69                                </xsl:when>
70                                <xsl:when test="count(NOTNULL) > 0">
71                                        <xsl:element name="NOTNULL"/>
72                                </xsl:when>
73                        </xsl:choose>
74                       
75                        <xsl:choose>
76                                <xsl:when test="count(AUTO) > 0">
77                                        <xsl:element name="AUTO"/>
78                                </xsl:when>
79                                <xsl:when test="count(AUTOINCREMENT) > 0">
80                                        <xsl:element name="AUTOINCREMENT"/>
81                                </xsl:when>
82                        </xsl:choose>
83                       
84                        <xsl:choose>
85                                <xsl:when test="count(DEFAULT) > 0">
86                                        <xsl:element name="DEFAULT">
87                                                <xsl:attribute name="value">
88                                                        <xsl:value-of select="DEFAULT[1]/@value"/>
89                                                </xsl:attribute>
90                                        </xsl:element>
91                                </xsl:when>
92                                <xsl:when test="count(DEFDATE) > 0">
93                                        <xsl:element name="DEFDATE">
94                                                <xsl:attribute name="value">
95                                                        <xsl:value-of select="DEFDATE[1]/@value"/>
96                                                </xsl:attribute>
97                                        </xsl:element>
98                                </xsl:when>
99                                <xsl:when test="count(DEFTIMESTAMP) > 0">
100                                        <xsl:element name="DEFTIMESTAMP">
101                                                <xsl:attribute name="value">
102                                                        <xsl:value-of select="DEFTIMESTAMP[1]/@value"/>
103                                                </xsl:attribute>
104                                        </xsl:element>
105                                </xsl:when>
106                        </xsl:choose>
107                       
108                        <xsl:if test="count(NOQUOTE) > 0">
109                                <xsl:element name="NOQUOTE"/>
110                        </xsl:if>
111                       
112                        <xsl:apply-templates select="constraint"/>
113                </xsl:element>
114        </xsl:template>
115       
116        <!-- Constraint -->
117        <xsl:template match="constraint">
118                <xsl:element name="constraint">
119                        <xsl:value-of select="normalize-space(text())"/>
120                </xsl:element>
121        </xsl:template>
122       
123        <!-- Index -->
124        <xsl:template match="index">
125                <xsl:element name="index">
126                        <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
127                       
128                        <xsl:apply-templates select="descr[1]"/>
129                       
130                        <xsl:if test="count(CLUSTERED) > 0">
131                                <xsl:element name="CLUSTERED"/>
132                        </xsl:if>
133                       
134                        <xsl:if test="count(BITMAP) > 0">
135                                <xsl:element name="BITMAP"/>
136                        </xsl:if>
137                       
138                        <xsl:if test="count(UNIQUE) > 0">
139                                <xsl:element name="UNIQUE"/>
140                        </xsl:if>
141                       
142                        <xsl:if test="count(FULLTEXT) > 0">
143                                <xsl:element name="FULLTEXT"/>
144                        </xsl:if>
145                       
146                        <xsl:if test="count(HASH) > 0">
147                                <xsl:element name="HASH"/>
148                        </xsl:if>
149                       
150                        <xsl:choose>
151                                <xsl:when test="count(DROP) > 0">
152                                        <xsl:element name="DROP"/>
153                                </xsl:when>
154                                <xsl:otherwise>
155                                        <xsl:apply-templates select="col"/>
156                                </xsl:otherwise>
157                        </xsl:choose>
158                </xsl:element>
159        </xsl:template>
160       
161        <!-- Index Column -->
162        <xsl:template match="col">
163                <xsl:element name="col">
164                        <xsl:value-of select="normalize-space(text())"/>
165                </xsl:element>
166        </xsl:template>
167       
168        <!-- SQL QuerySet -->
169        <xsl:template match="sql">
170                <xsl:element name="sql">
171                        <xsl:if test="string-length(@platform) > 0">
172                                <xsl:attribute name="platform"><xsl:value-of select="@platform"/></xsl:attribute>
173                        </xsl:if>
174                       
175                        <xsl:if test="string-length(@key) > 0">
176                                <xsl:attribute name="key"><xsl:value-of select="@key"/></xsl:attribute>
177                        </xsl:if>
178                       
179                        <xsl:if test="string-length(@prefixmethod) > 0">
180                                <xsl:attribute name="prefixmethod"><xsl:value-of select="@prefixmethod"/></xsl:attribute>
181                        </xsl:if>
182                       
183                        <xsl:apply-templates select="descr[1]"/>
184                        <xsl:apply-templates select="query"/>
185                </xsl:element>
186        </xsl:template>
187       
188        <!-- Query -->
189        <xsl:template match="query">
190                <xsl:element name="query">
191                        <xsl:if test="string-length(@platform) > 0">
192                                <xsl:attribute name="platform"><xsl:value-of select="@platform"/></xsl:attribute>
193                        </xsl:if>
194                       
195                        <xsl:value-of select="normalize-space(text())"/>
196                </xsl:element>
197        </xsl:template>
198       
199        <!-- Description -->
200        <xsl:template match="descr">
201                <xsl:element name="descr">
202                        <xsl:value-of select="normalize-space(text())"/>
203                </xsl:element>
204        </xsl:template>
205</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.