Fixes to the PaintWeb cron task.
[moodle/mihaisucan.git] / lib / adodb / xsl / convert-0.1-0.3.xsl
blob381aa4fe7b6c82fa89e854c85a1ad8793b0e5b0e
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xsl:stylesheet version="1.0"
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
5 <xsl:output method="xml" indent="yes" omit-xml-declaration="no" encoding="UTF-8"/>
7 <!-- Schema -->
8 <xsl:template match="/">
9 <xsl:comment>
10 ADODB XMLSchema
11 http://adodb-xmlschema.sourceforge.net
12 </xsl:comment>
14 <xsl:element name="schema">
15 <xsl:attribute name="version">0.3</xsl:attribute>
17 <xsl:apply-templates select="schema/table|schema/sql"/>
18 </xsl:element>
19 </xsl:template>
21 <!-- Table -->
22 <xsl:template match="table">
23 <xsl:variable name="table_name" select="@name"/>
25 <xsl:element name="table">
26 <xsl:attribute name="name"><xsl:value-of select="$table_name"/></xsl:attribute>
28 <xsl:if test="string-length(@platform) > 0">
29 <xsl:attribute name="platform"><xsl:value-of select="@platform"/></xsl:attribute>
30 </xsl:if>
32 <xsl:if test="string-length(@version) > 0">
33 <xsl:attribute name="version"><xsl:value-of select="@version"/></xsl:attribute>
34 </xsl:if>
36 <xsl:apply-templates select="descr[1]"/>
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>
47 <xsl:apply-templates select="constraint"/>
49 <xsl:apply-templates select="../index[@table=$table_name]"/>
50 </xsl:element>
51 </xsl:template>
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>
59 <xsl:if test="string-length(@size) > 0">
60 <xsl:attribute name="size"><xsl:value-of select="@size"/></xsl:attribute>
61 </xsl:if>
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>
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>
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>
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>
124 <xsl:if test="count(NOQUOTE) > 0">
125 <xsl:element name="NOQUOTE"/>
126 </xsl:if>
128 <xsl:apply-templates select="constraint"/>
129 </xsl:element>
130 </xsl:template>
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>
139 <!-- Index -->
140 <xsl:template match="index">
141 <xsl:element name="index">
142 <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
144 <xsl:apply-templates select="descr[1]"/>
146 <xsl:if test="count(CLUSTERED) > 0">
147 <xsl:element name="CLUSTERED"/>
148 </xsl:if>
150 <xsl:if test="count(BITMAP) > 0">
151 <xsl:element name="BITMAP"/>
152 </xsl:if>
154 <xsl:if test="count(UNIQUE) > 0">
155 <xsl:element name="UNIQUE"/>
156 </xsl:if>
158 <xsl:if test="count(FULLTEXT) > 0">
159 <xsl:element name="FULLTEXT"/>
160 </xsl:if>
162 <xsl:if test="count(HASH) > 0">
163 <xsl:element name="HASH"/>
164 </xsl:if>
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>
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>
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>
191 <xsl:if test="string-length(@key) > 0">
192 <xsl:attribute name="key"><xsl:value-of select="@key"/></xsl:attribute>
193 </xsl:if>
195 <xsl:if test="string-length(@prefixmethod) > 0">
196 <xsl:attribute name="prefixmethod"><xsl:value-of select="@prefixmethod"/></xsl:attribute>
197 </xsl:if>
199 <xsl:apply-templates select="descr[1]"/>
200 <xsl:apply-templates select="query"/>
201 </xsl:element>
202 </xsl:template>
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>
211 <xsl:value-of select="normalize-space(text())"/>
212 </xsl:element>
213 </xsl:template>
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>