[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

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


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