xml:
<?xml version="1.0" encoding="UTF-8"?>
<table name="student" id="444">
<columns>
<column name="name" id="11111" tableId="111111" dataType="varchar" length="2" comment="dddd" uuid="33333" isPk="1" default="" ></column>
<!-- <column name="" id="" tableId="" dataType="" length="" comment="" uuid="" isPk="0"></column> -->
<!-- <column name="" id="" tableId="" dataType="" length="" comment="" uuid="" isPk="0"></column> -->
<!-- <column name="" id="" tableId="" dataType="" length="" comment="" uuid="" isPk="0"></column> -->
</columns>
</table>
xsl:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<!-- TODO: Auto-generated template -->
<xsl:apply-templates select="table"></xsl:apply-templates>
</xsl:template>
<!-- 转换 table -->
<xsl:template match="table">
<h6>
-- <xsl:value-of select="./@name"></xsl:value-of>表:<xsl:value-of select="./@comnent"></xsl:value-of>
create Table <xsl:value-of select="./@name"></xsl:value-of>(
<!-- 判断是否多主键 -->
<xsl:apply-templates select="columns/column"></xsl:apply-templates>
<xsl:if test="count(//@isPk) > 0 ">
--TODO 联合主键
,CONSTRAINT <xsl:value-of select="./@name"></xsl:value-of>_PK primary key (
<xsl:if test="//column[@isPk=1]"><xsl:apply-templates select="//column[@isPk=1]"></xsl:apply-templates> <!-- <xsl:value-of select="//column[@isPk=1]"></xsl:value-of> --> </xsl:if> <xsl:if test="position()!=last()">,
 </xsl:if>)
</xsl:if>
)
</h6>
</xsl:template>
<!-- 转换 column -->
<xsl:template match="columns/column">
<xsl:value-of select="./@name"></xsl:value-of>
<!-- 判断是否有输入长度 -->
<xsl:if test="string-length(./@length) > 0 "> <xsl:value-of select="./@dataType"></xsl:value-of> </xsl:if>
<xsl:if test="string-length(./@default) > 0 "> default <xsl:value-of select="./@default"></xsl:value-of></xsl:if>
<xsl:if test="string-length(./@comment) > 0 "> comment <xsl:value-of select="./@comment"></xsl:value-of></xsl:if>
<!-- 判断是否主键
<xsl:if test="number(./@isPk) = 1 "> primary key </xsl:if> -->
<xsl:if test="position()!=last()">,
 </xsl:if>
</xsl:template>
<xsl:template match="//column[@isPk=1]">
<xsl:value-of select="./@name"></xsl:value-of>
<xsl:if test="position()!=last()">,
 </xsl:if>
</xsl:template>
</xsl:stylesheet>