[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/lib/adodb/xsl/ -> convert-0.1-0.3.xsl (source)

   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>
  10  ADODB XMLSchema
  11  http://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>


Generated: Thu Aug 11 10:00:09 2016 Cross-referenced by PHPXref 0.7.1