[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/lib/adodb/xsl/ -> convert-0.1-0.2.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.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>


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