在项目中需要对通过后代代码生成的xml字符串数据做xsl样式转化,首先通过Altova XMLSpy工具进行xsl编辑:
首先给出xml数据文档CUSTOMER_Edit.xml:
<?xml version="1.0" encoding="GBK"?>
<?xml-stylesheet type="text/xsl" href="CUSTOMER_Edit.xsl"?>
<columns table="HSY_T_CUSTOMER" isWorkOrder="false" flowID="" flowName="" actionName="" title="大客户编辑" token="0428F398-9778-D1D7-2D05-968430963136">
<column seqId="000" feildName="CUSTOMER_ID" feildTitle="大用户ID" feildType="NUMBER" feildLen1="10" feildLen2="" feildNull="false" feildKey="true" defaultValue="" feildDescribe="" feildProperty="" feildValue="" feildRight="" visible="true" readOnly="false" align="right" rule="MaxValue" when="before">
</column>
<column seqId="001" feildName="CUSTOMER_NAME" feildTitle="大用户名称" feildType="VARCHAR2" feildLen1="64" feildLen2="" feildNull="true" feildKey="false" defaultValue="" feildDescribe="" feildProperty="" feildValue="" feildRight="" visible="true" readOnly="false" align="left" rule="" when="">
</column>
<column seqId="005" feildName="START_DATE" feildTitle="创建时间" feildType="DATE" feildLen1="7" feildLen2="" feildNull="true" feildKey="false" defaultValue="" feildDescribe="" feildProperty="" feildValue="" feildRight="" visible="true" readOnly="false" align="center" rule="" when="">
</column>
<column seqId="006" feildName="STOP_DATE" feildTitle="停用时间" feildType="DATE" feildLen1="7" feildLen2="" feildNull="true" feildKey="false" defaultValue="" feildDescribe="" feildProperty="" feildValue="" feildRight="" visible="true" readOnly="false" align="center" rule="" when="">
</column>
<column seqId="002" feildName="X" feildTitle="X坐标" feildType="VARCHAR2" feildLen1="20" feildLen2="" feildNull="true" feildKey="false" defaultValue="" feildDescribe="" feildProperty="" feildValue="" feildRight="" visible="true" readOnly="false" align="left" rule="" when="">
</column>
<column seqId="003" feildName="Y" feildTitle="Y坐标" feildType="VARCHAR2" feildLen1="20" feildLen2="" feildNull="true" feildKey="false" defaultValue="" feildDescribe="" feildProperty="" feildValue="" feildRight="" visible="true" readOnly="false" align="left" rule="" when="">
</column>
<column seqId="007" feildName="USER_NAME" feildTitle="用户名" feildType="VARCHAR2" feildLen1="64" feildLen2="" feildNull="true" feildKey="false" defaultValue="" feildDescribe="" feildProperty="" feildValue="" feildRight="" visible="true" readOnly="false" align="left" rule="UserName" when="before">
</column>
<column seqId="008" feildName="USER_TITLE" feildTitle="用户标题" feildType="VARCHAR2" feildLen1="64" feildLen2="" feildNull="true" feildKey="false" defaultValue="" feildDescribe="" feildProperty="" feildValue="" feildRight="" visible="true" readOnly="false" align="left" rule="UserTitle" when="before">
</column>
<column seqId="009" feildName="DEPT_ID" feildTitle="部门编号" feildType="NUMBER" feildLen1="10" feildLen2="" feildNull="true" feildKey="false" defaultValue="" feildDescribe="" feildProperty="" feildValue="" feildRight="" visible="true" readOnly="false" align="left" rule="" when="">
</column>
<column seqId="010" feildName="DEPT_NAME" feildTitle="部门名称" feildType="VARCHAR2" feildLen1="64" feildLen2="" feildNull="true" feildKey="false" defaultValue="" feildDescribe="" feildProperty="" feildValue="" feildRight="" visible="true" readOnly="false" align="left" rule="" when="">
</column>
<column seqId="004" feildName="DATA_GUID" feildTitle="DATA_GUID" feildType="VARCHAR2" feildLen1="38" feildLen2="" feildNull="true" feildKey="false" defaultValue="" feildDescribe="" feildProperty="" feildValue="" feildRight="" visible="false" readOnly="false" align="left" rule="Guid" when="before">
</column>
</columns>
然后我们通过xsl文件CUSTOMER_Edit.xsl进行xml格式的转化(已经在CUSTOMER_Edit.xml中引入了xsl文档):
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="/">
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/public.css"/>
<script type="text/javascript" src="js/My97DatePicker/WdatePicker.js"/>
<style type="text/css">
input{ width:100%; }
</style>
</head>
<body>
<!--
<div>
<xsl:value-of select="columns/attribute::title"/>
</div>
-->
<table style="width:800;" width="100%">
<!--
隐藏行中包括table、isWorkOrder、flowID、flowName、actionName、token等信息
-->
<tr id="hiddenTr" style="display:none;" width="100%">
<!-- display:none; -->
<!-- 字段 table -->
<td width="17%">
<xsl:attribute name="id">table</xsl:attribute>
<xsl:attribute name="name">table</xsl:attribute>
<xsl:attribute name="value"><xsl:value-of select="columns/attribute::table"/></xsl:attribute>
<xsl:value-of select="columns/attribute::table"/>
</td>
<!-- 字段 isWorkOrder -->
<td width="17%">
<xsl:attribute name="id">isWorkOrder</xsl:attribute>
<xsl:attribute name="name">isWorkOrder</xsl:attribute>
<xsl:attribute name="value"><xsl:value-of select="columns/attribute::isWorkOrder"/></xsl:attribute>
<xsl:value-of select="columns/attribute::isWorkOrder"/>
</td>
<!-- 字段 flowID -->
<td width="17%">
<xsl:attribute name="id">flowID</xsl:attribute>
<xsl:attribute name="name">flowID</xsl:attribute>
<xsl:attribute name="value"><xsl:value-of select="columns/attribute::flowID"/></xsl:attribute>
<xsl:value-of select="columns/attribute::flowID"/>
</td>
<!-- 字段 flowName -->
<td width="17%">
<xsl:attribute name="id">flowName</xsl:attribute>
<xsl:attribute name="name">flowName</xsl:attribute>
<xsl:attribute name="value"><xsl:value-of select="columns/attribute::flowName"/></xsl:attribute>
<xsl:value-of select="columns/attribute::flowName"/>
</td>
<!-- 字段 actionName -->
<td width="16%">
<xsl:attribute name="id">actionName</xsl:attribute>
<xsl:attribute name="name">actionName</xsl:attribute>
<xsl:attribute name="value"><xsl:value-of select="columns/attribute::actionName"/></xsl:attribute>
<xsl:value-of select="columns/attribute::actionName"/>
</td>
<!-- 字段 token -->
<td width="16%">
<xsl:attribute name="id">token</xsl:attribute>
<xsl:attribute name="name">token</xsl:attribute>
<xsl:attribute name="value"><xsl:value-of select="columns/attribute::token"/></xsl:attribute>
<xsl:value-of select="columns/attribute::token"/>
</td>
</tr>
<!-- 要在页面中显示的字段 -->
<xsl:variable name="tdStyle"/>
<!-- 定义变量tdStyle -->
<tr>
<xsl:for-each select="columns/column">
<!-- 字段 CUSTOMER_ID -->
<xsl:if test="./@feildName='CUSTOMER_ID'">
<td width="18%">
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<!-- 判断是否隐藏此列 -->
<xsl:attribute name="style">
<xsl:if test="./@visible='false'">display:none;</xsl:if>
</xsl:attribute>
<xsl:value-of select="./@feildTitle"/>
<xsl:if test="./@feildKey='true'">
<span style="color:#E58A22;font-weight:bold;font-size:15px;">(PK)</span>
</xsl:if>
<xsl:if test="./@visible='false'">
<xsl:attribute name="style">
<xsl:text>display:none;</xsl:text>
</xsl:attribute>
</xsl:if>
</td>
<td colspan="2" width="32%">
<xsl:choose>
<xsl:when test="./child::*">
<!-- select -->
<xsl:if test="./feildDef/options/option">
<select>
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<xsl:for-each select="./feildDef/options/option">
<option>
<xsl:value-of select="./@value"/>
</option>
</xsl:for-each>
</select>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<!-- input -->
<xsl:if test="./@feildLen1 < 100">
<input width="100%">
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- type 属性 -->
<xsl:attribute name="type">text</xsl:attribute>
<!-- maxLength 属性 -->
<xsl:attribute name="maxLength"><xsl:if test="./@feildLen2 = ''"><xsl:value-of select="./@feildLen1"/></xsl:if></xsl:attribute>
<!-- 时间下拉框样式 属性 -->
<xsl:if test="./@feildType = 'TIMESTAMP'">
<xsl:attribute name="onfocus">WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})</xsl:attribute>
<xsl:attribute name="class">Wdate</xsl:attribute>
</xsl:if>
<xsl:if test="./@feildType = 'DATE'">
<xsl:attribute name="onfocus">WdatePicker({dateFmt:'yyyy-MM-dd'})</xsl:attribute>
<xsl:attribute name="class">Wdate</xsl:attribute>
</xsl:if>
<!-- style 属性 -->
<xsl:attribute name="style">
<xsl:if test="./@when != ''">when:<xsl:value-of select="./@when"></xsl:value-of>;</xsl:if>
<xsl:if test="./@rule != ''">rule:<xsl:value-of select="./@rule"></xsl:value-of>;</xsl:if>
<xsl:if test="./@feildKey='true'">pk:true;</xsl:if>
<xsl:if test="./@feildLen2 != ''">
length:<xsl:value-of select="./@feildLen1"/>-<xsl:value-of select="./@feildLen2"/>;
</xsl:if>
<!-- visible 属性 -->
<xsl:if test="./@visible = 'false'">
<xsl:text>display:none;</xsl:text>
</xsl:if>
<!-- 是否是工单 -->
<xsl:if test="../attribute::isWorkOrder = 'true'">
<xsl:if test="./@feildRight = ''">
<xsl:text>border-style:none;</xsl:text>
</xsl:if>
<xsl:if test="./@feildRight = 'R'">
<xsl:text>border-color:red;</xsl:text>
</xsl:if>
</xsl:if>
<xsl:if test="../attribute::isWorkOrder = 'false'">
<xsl:if test="./@readOnly = 'true'">
<xsl:text>border-style:none;</xsl:text>
</xsl:if>
<xsl:if test="./@feildNull = 'false'">
<xsl:text>border-color:red;</xsl:text>
</xsl:if>
</xsl:if>
<xsl:if test="./@feildType = 'NUMBER'">
<xsl:text>dataType:NUMBER;</xsl:text>
</xsl:if>
<xsl:if test="./@feildType = 'VARCHAR2' or ./@feildType != 'VARCHAR'">
<xsl:text>dataType:STRING;</xsl:text>
</xsl:if>
<!-- 时间下拉框样式 属性 -->
<xsl:if test="./@feildType = 'TIMESTAMP'">
<xsl:text>dataType:TIMESTAMP;</xsl:text>
</xsl:if>
<xsl:if test="./@feildType = 'DATE'">
<xsl:text>dataType:DATE;</xsl:text>
</xsl:if>
</xsl:attribute>
<!-- readonly 属性 -->
<xsl:if test="../attribute::isWorkOrder = 'true'">
<xsl:if test="./@feildRight = ''">
<xsl:attribute name="readonly">true</xsl:attribute>
</xsl:if>
</xsl:if>
<xsl:if test="../attribute::isWorkOrder = 'false'">
<xsl:if test="./@readOnly = 'true'">
<xsl:attribute name="readonly">true</xsl:attribute>
</xsl:if>
</xsl:if>
<!-- value 属性 -->
<xsl:attribute name="value"><xsl:value-of select="./@feildValue"/></xsl:attribute>
</input>
</xsl:if>
<!-- textarea -->
<xsl:if test="./@feildLen1 >= 100">
<textarea rows="3" cols="28">
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- text -->
<xsl:value-of select="./@feildValue"/>
</textarea>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</td>
</xsl:if>
<!-- 字段 CUSTOMER_NAME-->
<xsl:if test="./@feildName='CUSTOMER_NAME'">
<td width="18%">
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<!-- 判断是否隐藏此列 -->
<xsl:attribute name="style">
<xsl:if test="./@visible='false'">display:none;</xsl:if>
</xsl:attribute>
<xsl:value-of select="./@feildTitle"/>
<xsl:if test="./@feildKey='true'">
<span style="color:#E58A22;font-weight:bold;font-size:15px;">(PK)</span>
</xsl:if>
<xsl:if test="./@visible='false'">
<xsl:attribute name="style">
<xsl:text>display:none;</xsl:text>
</xsl:attribute>
</xsl:if>
</td>
<td colspan="2" width="32%">
<xsl:choose>
<xsl:when test="./child::*">
<!-- select -->
<xsl:if test="./feildDef/options/option">
<select>
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<xsl:for-each select="./feildDef/options/option">
<option>
<xsl:value-of select="./@value"/>
</option>
</xsl:for-each>
</select>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<!-- input -->
<xsl:if test="./@feildLen1 < 100">
<input width="100%">
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- type 属性 -->
<xsl:attribute name="type">text</xsl:attribute>
<!-- maxLength 属性 -->
<xsl:attribute name="maxLength"><xsl:if test="./@feildLen2 = ''"><xsl:value-of select="./@feildLen1"/></xsl:if></xsl:attribute>
<!-- 时间下拉框样式 属性 -->
<xsl:if test="./@feildType = 'TIMESTAMP'">
<xsl:attribute name="onfocus">WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})</xsl:attribute>
<xsl:attribute name="class">Wdate</xsl:attribute>
</xsl:if>
<xsl:if test="./@feildType = 'DATE'">
<xsl:attribute name="onfocus">WdatePicker({dateFmt:'yyyy-MM-dd'})</xsl:attribute>
<xsl:attribute name="class">Wdate</xsl:attribute>
</xsl:if>
<!-- style 属性 -->
<xsl:attribute name="style">
<xsl:if test="./@when != ''">when:<xsl:value-of select="./@when"></xsl:value-of>;</xsl:if>
<xsl:if test="./@rule != ''">rule:<xsl:value-of select="./@rule"></xsl:value-of>;</xsl:if>
<xsl:if test="./@feildKey='true'">pk:true;</xsl:if>
<xsl:if test="./@feildLen2 != ''">
length:<xsl:value-of select="./@feildLen1"/>-<xsl:value-of select="./@feildLen2"/>;
</xsl:if>
<!-- visible 属性 -->
<xsl:if test="./@visible = 'false'">
<xsl:text>display:none;</xsl:text>
</xsl:if>
<!-- 是否是工单 -->
<xsl:if test="../attribute::isWorkOrder = 'true'">
<xsl:if test="./@feildRight = ''">
<xsl:text>border-style:none;</xsl:text>
</xsl:if>
<xsl:if test="./@feildRight = 'R'">
<xsl:text>border-color:red;</xsl:text>
</xsl:if>
</xsl:if>
<xsl:if test="../attribute::isWorkOrder = 'false'">
<xsl:if test="./@readOnly = 'true'">
<xsl:text>border-style:none;</xsl:text>
</xsl:if>
<xsl:if test="./@feildNull = 'false'">
<xsl:text>border-color:red;</xsl:text>
</xsl:if>
</xsl:if>
<xsl:if test="./@feildType = 'NUMBER'">
<xsl:text>dataType:NUMBER;</xsl:text>
</xsl:if>
<xsl:if test="./@feildType = 'VARCHAR2' or ./@feildType != 'VARCHAR'">
<xsl:text>dataType:STRING;</xsl:text>
</xsl:if>
<!-- 时间下拉框样式 属性 -->
<xsl:if test="./@feildType = 'TIMESTAMP'">
<xsl:text>dataType:TIMESTAMP;</xsl:text>
</xsl:if>
<xsl:if test="./@feildType = 'DATE'">
<xsl:text>dataType:DATE;</xsl:text>
</xsl:if>
</xsl:attribute>
<!-- readonly 属性 -->
<xsl:if test="../attribute::isWorkOrder = 'true'">
<xsl:if test="./@feildRight = ''">
<xsl:attribute name="readonly">true</xsl:attribute>
</xsl:if>
</xsl:if>
<xsl:if test="../attribute::isWorkOrder = 'false'">
<xsl:if test="./@readOnly = 'true'">
<xsl:attribute name="readonly">true</xsl:attribute>
</xsl:if>
</xsl:if>
<!-- value 属性 -->
<xsl:attribute name="value"><xsl:value-of select="./@feildValue"/></xsl:attribute>
</input>
</xsl:if>
<!-- textarea -->
<xsl:if test="./@feildLen1 >= 100">
<textarea rows="3" cols="28">
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- text -->
<xsl:value-of select="./@feildValue"/>
</textarea>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</td>
</xsl:if>
</xsl:for-each>
</tr>
<tr>
<xsl:for-each select="columns/column">
<!-- 字段 START_DATE -->
<xsl:if test="./@feildName='START_DATE'">
<td>
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<!-- 判断是否隐藏此列 -->
<xsl:attribute name="style">
<xsl:if test="./@visible='false'">display:none;</xsl:if>
</xsl:attribute>
<xsl:value-of select="./@feildTitle"/>
<xsl:if test="./@feildKey='true'">
<span style="color:#E58A22;font-weight:bold;font-size:15px;">(PK)</span>
</xsl:if>
<xsl:if test="./@visible='false'">
<xsl:attribute name="style">
<xsl:text>display:none;</xsl:text>
</xsl:attribute>
</xsl:if>
</td>
<td colspan="2">
<xsl:choose>
<xsl:when test="./child::*">
<!-- select -->
<xsl:if test="./feildDef/options/option">
<select>
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<xsl:for-each select="./feildDef/options/option">
<option>
<xsl:value-of select="./@value"/>
</option>
</xsl:for-each>
</select>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<!-- input -->
<xsl:if test="./@feildLen1 < 100">
<input width="100%">
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- type 属性 -->
<xsl:attribute name="type">text</xsl:attribute>
<!-- maxLength 属性 -->
<xsl:attribute name="maxLength"><xsl:if test="./@feildLen2 = ''"><xsl:value-of select="./@feildLen1"/></xsl:if></xsl:attribute>
<!-- 时间下拉框样式 属性 -->
<xsl:if test="./@feildType = 'TIMESTAMP'">
<xsl:attribute name="onfocus">WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})</xsl:attribute>
<xsl:attribute name="class">Wdate</xsl:attribute>
</xsl:if>
<xsl:if test="./@feildType = 'DATE'">
<xsl:attribute name="onfocus">WdatePicker({dateFmt:'yyyy-MM-dd'})</xsl:attribute>
<xsl:attribute name="class">Wdate</xsl:attribute>
</xsl:if>
<!-- style 属性 -->
<xsl:attribute name="style">
<xsl:if test="./@when != ''">when:<xsl:value-of select="./@when"></xsl:value-of>;</xsl:if>
<xsl:if test="./@rule != ''">rule:<xsl:value-of select="./@rule"></xsl:value-of>;</xsl:if>
<xsl:if test="./@feildKey='true'">pk:true;</xsl:if>
<xsl:if test="./@feildLen2 != ''">
length:<xsl:value-of select="./@feildLen1"/>-<xsl:value-of select="./@feildLen2"/>;
</xsl:if>
<!-- visible 属性 -->
<xsl:if test="./@visible = 'false'">
<xsl:text>display:none;</xsl:text>
</xsl:if>
<!-- 是否是工单 -->
<xsl:if test="../attribute::isWorkOrder = 'true'">
<xsl:if test="./@feildRight = ''">
<xsl:text>border-style:none;</xsl:text>
</xsl:if>
<xsl:if test="./@feildRight = 'R'">
<xsl:text>border-color:red;</xsl:text>
</xsl:if>
</xsl:if>
<xsl:if test="../attribute::isWorkOrder = 'false'">
<xsl:if test="./@readOnly = 'true'">
<xsl:text>border-style:none;</xsl:text>
</xsl:if>
<xsl:if test="./@feildNull = 'false'">
<xsl:text>border-color:red;</xsl:text>
</xsl:if>
</xsl:if>
<xsl:if test="./@feildType = 'NUMBER'">
<xsl:text>dataType:NUMBER;</xsl:text>
</xsl:if>
<xsl:if test="./@feildType = 'VARCHAR2' or ./@feildType != 'VARCHAR'">
<xsl:text>dataType:STRING;</xsl:text>
</xsl:if>
<!-- 时间下拉框样式 属性 -->
<xsl:if test="./@feildType = 'TIMESTAMP'">
<xsl:text>dataType:TIMESTAMP;</xsl:text>
</xsl:if>
<xsl:if test="./@feildType = 'DATE'">
<xsl:text>dataType:DATE;</xsl:text>
</xsl:if>
</xsl:attribute>
<!-- readonly 属性 -->
<xsl:if test="../attribute::isWorkOrder = 'true'">
<xsl:if test="./@feildRight = ''">
<xsl:attribute name="readonly">true</xsl:attribute>
</xsl:if>
</xsl:if>
<xsl:if test="../attribute::isWorkOrder = 'false'">
<xsl:if test="./@readOnly = 'true'">
<xsl:attribute name="readonly">true</xsl:attribute>
</xsl:if>
</xsl:if>
<!-- value 属性 -->
<xsl:attribute name="value"><xsl:value-of select="./@feildValue"/></xsl:attribute>
</input>
</xsl:if>
<!-- textarea -->
<xsl:if test="./@feildLen1 >= 100">
<textarea rows="3" cols="28">
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- text -->
<xsl:value-of select="./@feildValue"/>
</textarea>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</td>
</xsl:if>
<!-- 字段 STOP_DATE -->
<xsl:if test="./@feildName='STOP_DATE'">
<td>
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<!-- 判断是否隐藏此列 -->
<xsl:attribute name="style">
<xsl:if test="./@visible='false'">display:none;</xsl:if>
</xsl:attribute>
<xsl:value-of select="./@feildTitle"/>
<xsl:if test="./@feildKey='true'">
<span style="color:#E58A22;font-weight:bold;font-size:15px;">(PK)</span>
</xsl:if>
<xsl:if test="./@visible='false'">
<xsl:attribute name="style">
<xsl:text>display:none;</xsl:text>
</xsl:attribute>
</xsl:if>
</td>
<td colspan="2">
<xsl:choose>
<xsl:when test="./child::*">
<!-- select -->
<xsl:if test="./feildDef/options/option">
<select>
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<xsl:for-each select="./feildDef/options/option">
<option>
<xsl:value-of select="./@value"/>
</option>
</xsl:for-each>
</select>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<!-- input -->
<xsl:if test="./@feildLen1 < 100">
<input width="100%">
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- type 属性 -->
<xsl:attribute name="type">text</xsl:attribute>
<!-- maxLength 属性 -->
<xsl:attribute name="maxLength"><xsl:if test="./@feildLen2 = ''"><xsl:value-of select="./@feildLen1"/></xsl:if></xsl:attribute>
<!-- 时间下拉框样式 属性 -->
<xsl:if test="./@feildType = 'TIMESTAMP'">
<xsl:attribute name="onfocus">WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})</xsl:attribute>
<xsl:attribute name="class">Wdate</xsl:attribute>
</xsl:if>
<xsl:if test="./@feildType = 'DATE'">
<xsl:attribute name="onfocus">WdatePicker({dateFmt:'yyyy-MM-dd'})</xsl:attribute>
<xsl:attribute name="class">Wdate</xsl:attribute>
</xsl:if>
<!-- style 属性 -->
<xsl:attribute name="style">
<xsl:if test="./@when != ''">when:<xsl:value-of select="./@when"></xsl:value-of>;</xsl:if>
<xsl:if test="./@rule != ''">rule:<xsl:value-of select="./@rule"></xsl:value-of>;</xsl:if>
<xsl:if test="./@feildKey='true'">pk:true;</xsl:if>
<xsl:if test="./@feildLen2 != ''">
length:<xsl:value-of select="./@feildLen1"/>-<xsl:value-of select="./@feildLen2"/>;
</xsl:if>
<!-- visible 属性 -->
<xsl:if test="./@visible = 'false'">
<xsl:text>display:none;</xsl:text>
</xsl:if>
<!-- 是否是工单 -->
<xsl:if test="../attribute::isWorkOrder = 'true'">
<xsl:if test="./@feildRight = ''">
<xsl:text>border-style:none;</xsl:text>
</xsl:if>
<xsl:if test="./@feildRight = 'R'">
<xsl:text>border-color:red;</xsl:text>
</xsl:if>
</xsl:if>
<xsl:if test="../attribute::isWorkOrder = 'false'">
<xsl:if test="./@readOnly = 'true'">
<xsl:text>border-style:none;</xsl:text>
</xsl:if>
<xsl:if test="./@feildNull = 'false'">
<xsl:text>border-color:red;</xsl:text>
</xsl:if>
</xsl:if>
<xsl:if test="./@feildType = 'NUMBER'">
<xsl:text>dataType:NUMBER;</xsl:text>
</xsl:if>
<xsl:if test="./@feildType = 'VARCHAR2' or ./@feildType != 'VARCHAR'">
<xsl:text>dataType:STRING;</xsl:text>
</xsl:if>
<!-- 时间下拉框样式 属性 -->
<xsl:if test="./@feildType = 'TIMESTAMP'">
<xsl:text>dataType:TIMESTAMP;</xsl:text>
</xsl:if>
<xsl:if test="./@feildType = 'DATE'">
<xsl:text>dataType:DATE;</xsl:text>
</xsl:if>
</xsl:attribute>
<!-- readonly 属性 -->
<xsl:if test="../attribute::isWorkOrder = 'true'">
<xsl:if test="./@feildRight = ''">
<xsl:attribute name="readonly">true</xsl:attribute>
</xsl:if>
</xsl:if>
<xsl:if test="../attribute::isWorkOrder = 'false'">
<xsl:if test="./@readOnly = 'true'">
<xsl:attribute name="readonly">true</xsl:attribute>
</xsl:if>
</xsl:if>
<!-- value 属性 -->
<xsl:attribute name="value"><xsl:value-of select="./@feildValue"/></xsl:attribute>
</input>
</xsl:if>
<!-- textarea -->
<xsl:if test="./@feildLen1 >= 100">
<textarea rows="3" cols="28">
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- text -->
<xsl:value-of select="./@feildValue"/>
</textarea>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</td>
</xsl:if>
</xsl:for-each>
</tr>
<tr>
<xsl:for-each select="columns/column">
<!-- 字段 X -->
<xsl:if test="./@feildName='X'">
<td>
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<!-- 判断是否隐藏此列 -->
<xsl:attribute name="style">
<xsl:if test="./@visible='false'">display:none;</xsl:if>
</xsl:attribute>
<xsl:value-of select="./@feildTitle"/>
<xsl:if test="./@feildKey='true'">
<span style="color:#E58A22;font-weight:bold;font-size:15px;">(PK)</span>
</xsl:if>
<xsl:if test="./@visible='false'">
<xsl:attribute name="style">
<xsl:text>display:none;</xsl:text>
</xsl:attribute>
</xsl:if>
</td>
<td colspan="2">
<xsl:choose>
<xsl:when test="./child::*">
<!-- select -->
<xsl:if test="./feildDef/options/option">
<select>
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<xsl:for-each select="./feildDef/options/option">
<option>
<xsl:value-of select="./@value"/>
</option>
</xsl:for-each>
</select>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<!-- input -->
<xsl:if test="./@feildLen1 < 100">
<input width="100%">
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- type 属性 -->
<xsl:attribute name="type">text</xsl:attribute>
<!-- maxLength 属性 -->
<xsl:attribute name="maxLength"><xsl:if test="./@feildLen2 = ''"><xsl:value-of select="./@feildLen1"/></xsl:if></xsl:attribute>
<!-- 时间下拉框样式 属性 -->
<xsl:if test="./@feildType = 'TIMESTAMP'">
<xsl:attribute name="onfocus">WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})</xsl:attribute>
<xsl:attribute name="class">Wdate</xsl:attribute>
</xsl:if>
<xsl:if test="./@feildType = 'DATE'">
<xsl:attribute name="onfocus">WdatePicker({dateFmt:'yyyy-MM-dd'})</xsl:attribute>
<xsl:attribute name="class">Wdate</xsl:attribute>
</xsl:if>
<!-- style 属性 -->
<xsl:attribute name="style">
<xsl:if test="./@when != ''">when:<xsl:value-of select="./@when"></xsl:value-of>;</xsl:if>
<xsl:if test="./@rule != ''">rule:<xsl:value-of select="./@rule"></xsl:value-of>;</xsl:if>
<xsl:if test="./@feildKey='true'">pk:true;</xsl:if>
<xsl:if test="./@feildLen2 != ''">
length:<xsl:value-of select="./@feildLen1"/>-<xsl:value-of select="./@feildLen2"/>;
</xsl:if>
<!-- visible 属性 -->
<xsl:if test="./@visible = 'false'">
<xsl:text>display:none;</xsl:text>
</xsl:if>
<!-- 是否是工单 -->
<xsl:if test="../attribute::isWorkOrder = 'true'">
<xsl:if test="./@feildRight = ''">
<xsl:text>border-style:none;</xsl:text>
</xsl:if>
<xsl:if test="./@feildRight = 'R'">
<xsl:text>border-color:red;</xsl:text>
</xsl:if>
</xsl:if>
<xsl:if test="../attribute::isWorkOrder = 'false'">
<xsl:if test="./@readOnly = 'true'">
<xsl:text>border-style:none;</xsl:text>
</xsl:if>
<xsl:if test="./@feildNull = 'false'">
<xsl:text>border-color:red;</xsl:text>
</xsl:if>
</xsl:if>
<xsl:if test="./@feildType = 'NUMBER'">
<xsl:text>dataType:NUMBER;</xsl:text>
</xsl:if>
<xsl:if test="./@feildType = 'VARCHAR2' or ./@feildType != 'VARCHAR'">
<xsl:text>dataType:STRING;</xsl:text>
</xsl:if>
<!-- 时间下拉框样式 属性 -->
<xsl:if test="./@feildType = 'TIMESTAMP'">
<xsl:text>dataType:TIMESTAMP;</xsl:text>
</xsl:if>
<xsl:if test="./@feildType = 'DATE'">
<xsl:text>dataType:DATE;</xsl:text>
</xsl:if>
</xsl:attribute>
<!-- readonly 属性 -->
<xsl:if test="../attribute::isWorkOrder = 'true'">
<xsl:if test="./@feildRight = ''">
<xsl:attribute name="readonly">true</xsl:attribute>
</xsl:if>
</xsl:if>
<xsl:if test="../attribute::isWorkOrder = 'false'">
<xsl:if test="./@readOnly = 'true'">
<xsl:attribute name="readonly">true</xsl:attribute>
</xsl:if>
</xsl:if>
<!-- value 属性 -->
<xsl:attribute name="value"><xsl:value-of select="./@feildValue"/></xsl:attribute>
</input>
</xsl:if>
<!-- textarea -->
<xsl:if test="./@feildLen1 >= 100">
<textarea rows="3" cols="28">
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- text -->
<xsl:value-of select="./@feildValue"/>
</textarea>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</td>
</xsl:if>
<!-- 字段 Y -->
<xsl:if test="./@feildName='Y'">
<td>
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<!-- 判断是否隐藏此列 -->
<xsl:attribute name="style">
<xsl:if test="./@visible='false'">display:none;</xsl:if>
</xsl:attribute>
<xsl:value-of select="./@feildTitle"/>
<xsl:if test="./@feildKey='true'">
<span style="color:#E58A22;font-weight:bold;font-size:15px;">(PK)</span>
</xsl:if>
<xsl:if test="./@visible='false'">
<xsl:attribute name="style">
<xsl:text>display:none;</xsl:text>
</xsl:attribute>
</xsl:if>
</td>
<td colspan="2">
<xsl:choose>
<xsl:when test="./child::*">
<!-- select -->
<xsl:if test="./feildDef/options/option">
<select>
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<xsl:for-each select="./feildDef/options/option">
<option>
<xsl:value-of select="./@value"/>
</option>
</xsl:for-each>
</select>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<!-- input -->
<xsl:if test="./@feildLen1 < 100">
<input width="100%">
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- type 属性 -->
<xsl:attribute name="type">text</xsl:attribute>
<!-- maxLength 属性 -->
<xsl:attribute name="maxLength"><xsl:if test="./@feildLen2 = ''"><xsl:value-of select="./@feildLen1"/></xsl:if></xsl:attribute>
<!-- 时间下拉框样式 属性 -->
<xsl:if test="./@feildType = 'TIMESTAMP'">
<xsl:attribute name="onfocus">WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})</xsl:attribute>
<xsl:attribute name="class">Wdate</xsl:attribute>
</xsl:if>
<xsl:if test="./@feildType = 'DATE'">
<xsl:attribute name="onfocus">WdatePicker({dateFmt:'yyyy-MM-dd'})</xsl:attribute>
<xsl:attribute name="class">Wdate</xsl:attribute>
</xsl:if>
<!-- style 属性 -->
<xsl:attribute name="style">
<xsl:if test="./@when != ''">when:<xsl:value-of select="./@when"></xsl:value-of>;</xsl:if>
<xsl:if test="./@rule != ''">rule:<xsl:value-of select="./@rule"></xsl:value-of>;</xsl:if>
<xsl:if test="./@feildKey='true'">pk:true;</xsl:if>
<xsl:if test="./@feildLen2 != ''">
length:<xsl:value-of select="./@feildLen1"/>-<xsl:value-of select="./@feildLen2"/>;
</xsl:if>
<!-- visible 属性 -->
<xsl:if test="./@visible = 'false'">
<xsl:text>display:none;</xsl:text>
</xsl:if>
<!-- 是否是工单 -->
<xsl:if test="../attribute::isWorkOrder = 'true'">
<xsl:if test="./@feildRight = ''">
<xsl:text>border-style:none;</xsl:text>
</xsl:if>
<xsl:if test="./@feildRight = 'R'">
<xsl:text>border-color:red;</xsl:text>
</xsl:if>
</xsl:if>
<xsl:if test="../attribute::isWorkOrder = 'false'">
<xsl:if test="./@readOnly = 'true'">
<xsl:text>border-style:none;</xsl:text>
</xsl:if>
<xsl:if test="./@feildNull = 'false'">
<xsl:text>border-color:red;</xsl:text>
</xsl:if>
</xsl:if>
<xsl:if test="./@feildType = 'NUMBER'">
<xsl:text>dataType:NUMBER;</xsl:text>
</xsl:if>
<xsl:if test="./@feildType = 'VARCHAR2' or ./@feildType != 'VARCHAR'">
<xsl:text>dataType:STRING;</xsl:text>
</xsl:if>
<!-- 时间下拉框样式 属性 -->
<xsl:if test="./@feildType = 'TIMESTAMP'">
<xsl:text>dataType:TIMESTAMP;</xsl:text>
</xsl:if>
<xsl:if test="./@feildType = 'DATE'">
<xsl:text>dataType:DATE;</xsl:text>
</xsl:if>
</xsl:attribute>
<!-- readonly 属性 -->
<xsl:if test="../attribute::isWorkOrder = 'true'">
<xsl:if test="./@feildRight = ''">
<xsl:attribute name="readonly">true</xsl:attribute>
</xsl:if>
</xsl:if>
<xsl:if test="../attribute::isWorkOrder = 'false'">
<xsl:if test="./@readOnly = 'true'">
<xsl:attribute name="readonly">true</xsl:attribute>
</xsl:if>
</xsl:if>
<!-- value 属性 -->
<xsl:attribute name="value"><xsl:value-of select="./@feildValue"/></xsl:attribute>
</input>
</xsl:if>
<!-- textarea -->
<xsl:if test="./@feildLen1 >= 100">
<textarea rows="3" cols="28">
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- text -->
<xsl:value-of select="./@feildValue"/>
</textarea>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</td>
</xsl:if>
</xsl:for-each>
</tr>
<tr>
<xsl:for-each select="columns/column">
<!-- 字段 USER_NAME -->
<xsl:if test="./@feildName='USER_NAME'">
<td>
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<!-- 判断是否隐藏此列 -->
<xsl:attribute name="style">
<xsl:if test="./@visible='false'">display:none;</xsl:if>
</xsl:attribute>
<xsl:value-of select="./@feildTitle"/>
<xsl:if test="./@feildKey='true'">
<span style="color:#E58A22;font-weight:bold;font-size:15px;">(PK)</span>
</xsl:if>
<xsl:if test="./@visible='false'">
<xsl:attribute name="style">
<xsl:text>display:none;</xsl:text>
</xsl:attribute>
</xsl:if>
</td>
<td colspan="2">
<xsl:choose>
<xsl:when test="./child::*">
<!-- select -->
<xsl:if test="./feildDef/options/option">
<select>
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<xsl:for-each select="./feildDef/options/option">
<option>
<xsl:value-of select="./@value"/>
</option>
</xsl:for-each>
</select>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<!-- input -->
<xsl:if test="./@feildLen1 < 100">
<input width="100%">
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- type 属性 -->
<xsl:attribute name="type">text</xsl:attribute>
<!-- maxLength 属性 -->
<xsl:attribute name="maxLength"><xsl:if test="./@feildLen2 = ''"><xsl:value-of select="./@feildLen1"/></xsl:if></xsl:attribute>
<!-- 时间下拉框样式 属性 -->
<xsl:if test="./@feildType = 'TIMESTAMP'">
<xsl:attribute name="onfocus">WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})</xsl:attribute>
<xsl:attribute name="class">Wdate</xsl:attribute>
</xsl:if>
<xsl:if test="./@feildType = 'DATE'">
<xsl:attribute name="onfocus">WdatePicker({dateFmt:'yyyy-MM-dd'})</xsl:attribute>
<xsl:attribute name="class">Wdate</xsl:attribute>
</xsl:if>
<!-- style 属性 -->
<xsl:attribute name="style">
<xsl:if test="./@when != ''">when:<xsl:value-of select="./@when"></xsl:value-of>;</xsl:if>
<xsl:if test="./@rule != ''">rule:<xsl:value-of select="./@rule"></xsl:value-of>;</xsl:if>
<xsl:if test="./@feildKey='true'">pk:true;</xsl:if>
<xsl:if test="./@feildLen2 != ''">
length:<xsl:value-of select="./@feildLen1"/>-<xsl:value-of select="./@feildLen2"/>;
</xsl:if>
<!-- visible 属性 -->
<xsl:if test="./@visible = 'false'">
<xsl:text>display:none;</xsl:text>
</xsl:if>
<!-- 是否是工单 -->
<xsl:if test="../attribute::isWorkOrder = 'true'">
<xsl:if test="./@feildRight = ''">
<xsl:text>border-style:none;</xsl:text>
</xsl:if>
<xsl:if test="./@feildRight = 'R'">
<xsl:text>border-color:red;</xsl:text>
</xsl:if>
</xsl:if>
<xsl:if test="../attribute::isWorkOrder = 'false'">
<xsl:if test="./@readOnly = 'true'">
<xsl:text>border-style:none;</xsl:text>
</xsl:if>
<xsl:if test="./@feildNull = 'false'">
<xsl:text>border-color:red;</xsl:text>
</xsl:if>
</xsl:if>
<xsl:if test="./@feildType = 'NUMBER'">
<xsl:text>dataType:NUMBER;</xsl:text>
</xsl:if>
<xsl:if test="./@feildType = 'VARCHAR2' or ./@feildType != 'VARCHAR'">
<xsl:text>dataType:STRING;</xsl:text>
</xsl:if>
<!-- 时间下拉框样式 属性 -->
<xsl:if test="./@feildType = 'TIMESTAMP'">
<xsl:text>dataType:TIMESTAMP;</xsl:text>
</xsl:if>
<xsl:if test="./@feildType = 'DATE'">
<xsl:text>dataType:DATE;</xsl:text>
</xsl:if>
</xsl:attribute>
<!-- readonly 属性 -->
<xsl:if test="../attribute::isWorkOrder = 'true'">
<xsl:if test="./@feildRight = ''">
<xsl:attribute name="readonly">true</xsl:attribute>
</xsl:if>
</xsl:if>
<xsl:if test="../attribute::isWorkOrder = 'false'">
<xsl:if test="./@readOnly = 'true'">
<xsl:attribute name="readonly">true</xsl:attribute>
</xsl:if>
</xsl:if>
<!-- value 属性 -->
<xsl:attribute name="value"><xsl:value-of select="./@feildValue"/></xsl:attribute>
</input>
</xsl:if>
<!-- textarea -->
<xsl:if test="./@feildLen1 >= 100">
<textarea rows="3" cols="28">
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- text -->
<xsl:value-of select="./@feildValue"/>
</textarea>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</td>
</xsl:if>
<!-- 字段 USER_TITLE -->
<xsl:if test="./@feildName='USER_TITLE'">
<td>
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<!-- 判断是否隐藏此列 -->
<xsl:attribute name="style">
<xsl:if test="./@visible='false'">display:none;</xsl:if>
</xsl:attribute>
<xsl:value-of select="./@feildTitle"/>
<xsl:if test="./@feildKey='true'">
<span style="color:#E58A22;font-weight:bold;font-size:15px;">(PK)</span>
</xsl:if>
<xsl:if test="./@visible='false'">
<xsl:attribute name="style">
<xsl:text>display:none;</xsl:text>
</xsl:attribute>
</xsl:if>
</td>
<td colspan="2">
<xsl:choose>
<xsl:when test="./child::*">
<!-- select -->
<xsl:if test="./feildDef/options/option">
<select>
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<xsl:for-each select="./feildDef/options/option">
<option>
<xsl:value-of select="./@value"/>
</option>
</xsl:for-each>
</select>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<!-- input -->
<xsl:if test="./@feildLen1 < 100">
<input width="100%">
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- type 属性 -->
<xsl:attribute name="type">text</xsl:attribute>
<!-- maxLength 属性 -->
<xsl:attribute name="maxLength"><xsl:if test="./@feildLen2 = ''"><xsl:value-of select="./@feildLen1"/></xsl:if></xsl:attribute>
<!-- 时间下拉框样式 属性 -->
<xsl:if test="./@feildType = 'TIMESTAMP'">
<xsl:attribute name="onfocus">WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})</xsl:attribute>
<xsl:attribute name="class">Wdate</xsl:attribute>
</xsl:if>
<xsl:if test="./@feildType = 'DATE'">
<xsl:attribute name="onfocus">WdatePicker({dateFmt:'yyyy-MM-dd'})</xsl:attribute>
<xsl:attribute name="class">Wdate</xsl:attribute>
</xsl:if>
<!-- style 属性 -->
<xsl:attribute name="style">
<xsl:if test="./@when != ''">when:<xsl:value-of select="./@when"></xsl:value-of>;</xsl:if>
<xsl:if test="./@rule != ''">rule:<xsl:value-of select="./@rule"></xsl:value-of>;</xsl:if>
<xsl:if test="./@feildKey='true'">pk:true;</xsl:if>
<xsl:if test="./@feildLen2 != ''">
length:<xsl:value-of select="./@feildLen1"/>-<xsl:value-of select="./@feildLen2"/>;
</xsl:if>
<!-- visible 属性 -->
<xsl:if test="./@visible = 'false'">
<xsl:text>display:none;</xsl:text>
</xsl:if>
<!-- 是否是工单 -->
<xsl:if test="../attribute::isWorkOrder = 'true'">
<xsl:if test="./@feildRight = ''">
<xsl:text>border-style:none;</xsl:text>
</xsl:if>
<xsl:if test="./@feildRight = 'R'">
<xsl:text>border-color:red;</xsl:text>
</xsl:if>
</xsl:if>
<xsl:if test="../attribute::isWorkOrder = 'false'">
<xsl:if test="./@readOnly = 'true'">
<xsl:text>border-style:none;</xsl:text>
</xsl:if>
<xsl:if test="./@feildNull = 'false'">
<xsl:text>border-color:red;</xsl:text>
</xsl:if>
</xsl:if>
<xsl:if test="./@feildType = 'NUMBER'">
<xsl:text>dataType:NUMBER;</xsl:text>
</xsl:if>
<xsl:if test="./@feildType = 'VARCHAR2' or ./@feildType != 'VARCHAR'">
<xsl:text>dataType:STRING;</xsl:text>
</xsl:if>
<!-- 时间下拉框样式 属性 -->
<xsl:if test="./@feildType = 'TIMESTAMP'">
<xsl:text>dataType:TIMESTAMP;</xsl:text>
</xsl:if>
<xsl:if test="./@feildType = 'DATE'">
<xsl:text>dataType:DATE;</xsl:text>
</xsl:if>
</xsl:attribute>
<!-- readonly 属性 -->
<xsl:if test="../attribute::isWorkOrder = 'true'">
<xsl:if test="./@feildRight = ''">
<xsl:attribute name="readonly">true</xsl:attribute>
</xsl:if>
</xsl:if>
<xsl:if test="../attribute::isWorkOrder = 'false'">
<xsl:if test="./@readOnly = 'true'">
<xsl:attribute name="readonly">true</xsl:attribute>
</xsl:if>
</xsl:if>
<!-- value 属性 -->
<xsl:attribute name="value"><xsl:value-of select="./@feildValue"/></xsl:attribute>
</input>
</xsl:if>
<!-- textarea -->
<xsl:if test="./@feildLen1 >= 100">
<textarea rows="3" cols="28">
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- text -->
<xsl:value-of select="./@feildValue"/>
</textarea>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</td>
</xsl:if>
</xsl:for-each>
</tr>
<tr>
<xsl:for-each select="columns/column">
<!-- 字段 DEPT_ID -->
<xsl:if test="./@feildName='DEPT_ID'">
<td>
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<!-- 判断是否隐藏此列 -->
<xsl:attribute name="style">
<xsl:if test="./@visible='false'">display:none;</xsl:if>
</xsl:attribute>
<xsl:value-of select="./@feildTitle"/>
<xsl:if test="./@feildKey='true'">
<span style="color:#E58A22;font-weight:bold;font-size:15px;">(PK)</span>
</xsl:if>
<xsl:if test="./@visible='false'">
<xsl:attribute name="style">
<xsl:text>display:none;</xsl:text>
</xsl:attribute>
</xsl:if>
</td>
<td colspan="2">
<xsl:choose>
<xsl:when test="./child::*">
<!-- select -->
<xsl:if test="./feildDef/options/option">
<select>
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<xsl:for-each select="./feildDef/options/option">
<option>
<xsl:value-of select="./@value"/>
</option>
</xsl:for-each>
</select>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<!-- input -->
<xsl:if test="./@feildLen1 < 100">
<input width="100%">
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- type 属性 -->
<xsl:attribute name="type">text</xsl:attribute>
<!-- maxLength 属性 -->
<xsl:attribute name="maxLength"><xsl:if test="./@feildLen2 = ''"><xsl:value-of select="./@feildLen1"/></xsl:if></xsl:attribute>
<!-- 时间下拉框样式 属性 -->
<xsl:if test="./@feildType = 'TIMESTAMP'">
<xsl:attribute name="onfocus">WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})</xsl:attribute>
<xsl:attribute name="class">Wdate</xsl:attribute>
</xsl:if>
<xsl:if test="./@feildType = 'DATE'">
<xsl:attribute name="onfocus">WdatePicker({dateFmt:'yyyy-MM-dd'})</xsl:attribute>
<xsl:attribute name="class">Wdate</xsl:attribute>
</xsl:if>
<!-- style 属性 -->
<xsl:attribute name="style">
<xsl:if test="./@when != ''">when:<xsl:value-of select="./@when"></xsl:value-of>;</xsl:if>
<xsl:if test="./@rule != ''">rule:<xsl:value-of select="./@rule"></xsl:value-of>;</xsl:if>
<xsl:if test="./@feildKey='true'">pk:true;</xsl:if>
<xsl:if test="./@feildLen2 != ''">
length:<xsl:value-of select="./@feildLen1"/>-<xsl:value-of select="./@feildLen2"/>;
</xsl:if>
<!-- visible 属性 -->
<xsl:if test="./@visible = 'false'">
<xsl:text>display:none;</xsl:text>
</xsl:if>
<!-- 是否是工单 -->
<xsl:if test="../attribute::isWorkOrder = 'true'">
<xsl:if test="./@feildRight = ''">
<xsl:text>border-style:none;</xsl:text>
</xsl:if>
<xsl:if test="./@feildRight = 'R'">
<xsl:text>border-color:red;</xsl:text>
</xsl:if>
</xsl:if>
<xsl:if test="../attribute::isWorkOrder = 'false'">
<xsl:if test="./@readOnly = 'true'">
<xsl:text>border-style:none;</xsl:text>
</xsl:if>
<xsl:if test="./@feildNull = 'false'">
<xsl:text>border-color:red;</xsl:text>
</xsl:if>
</xsl:if>
<xsl:if test="./@feildType = 'NUMBER'">
<xsl:text>dataType:NUMBER;</xsl:text>
</xsl:if>
<xsl:if test="./@feildType = 'VARCHAR2' or ./@feildType != 'VARCHAR'">
<xsl:text>dataType:STRING;</xsl:text>
</xsl:if>
<!-- 时间下拉框样式 属性 -->
<xsl:if test="./@feildType = 'TIMESTAMP'">
<xsl:text>dataType:TIMESTAMP;</xsl:text>
</xsl:if>
<xsl:if test="./@feildType = 'DATE'">
<xsl:text>dataType:DATE;</xsl:text>
</xsl:if>
</xsl:attribute>
<!-- readonly 属性 -->
<xsl:if test="../attribute::isWorkOrder = 'true'">
<xsl:if test="./@feildRight = ''">
<xsl:attribute name="readonly">true</xsl:attribute>
</xsl:if>
</xsl:if>
<xsl:if test="../attribute::isWorkOrder = 'false'">
<xsl:if test="./@readOnly = 'true'">
<xsl:attribute name="readonly">true</xsl:attribute>
</xsl:if>
</xsl:if>
<!-- value 属性 -->
<xsl:attribute name="value"><xsl:value-of select="./@feildValue"/></xsl:attribute>
</input>
</xsl:if>
<!-- textarea -->
<xsl:if test="./@feildLen1 >= 100">
<textarea rows="3" cols="28">
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- text -->
<xsl:value-of select="./@feildValue"/>
</textarea>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</td>
</xsl:if>
<!-- 字段 DEPT_NAME -->
<xsl:if test="./@feildName='DEPT_NAME'">
<td>
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<!-- 判断是否隐藏此列 -->
<xsl:attribute name="style">
<xsl:if test="./@visible='false'">display:none;</xsl:if>
</xsl:attribute>
<xsl:value-of select="./@feildTitle"/>
<xsl:if test="./@feildKey='true'">
<span style="color:#E58A22;font-weight:bold;font-size:15px;">(PK)</span>
</xsl:if>
<xsl:if test="./@visible='false'">
<xsl:attribute name="style">
<xsl:text>display:none;</xsl:text>
</xsl:attribute>
</xsl:if>
</td>
<td colspan="2">
<xsl:choose>
<xsl:when test="./child::*">
<!-- select -->
<xsl:if test="./feildDef/options/option">
<select>
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<xsl:for-each select="./feildDef/options/option">
<option>
<xsl:value-of select="./@value"/>
</option>
</xsl:for-each>
</select>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<!-- input -->
<xsl:if test="./@feildLen1 < 100">
<input width="100%">
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- type 属性 -->
<xsl:attribute name="type">text</xsl:attribute>
<!-- maxLength 属性 -->
<xsl:attribute name="maxLength"><xsl:if test="./@feildLen2 = ''"><xsl:value-of select="./@feildLen1"/></xsl:if></xsl:attribute>
<!-- 时间下拉框样式 属性 -->
<xsl:if test="./@feildType = 'TIMESTAMP'">
<xsl:attribute name="onfocus">WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})</xsl:attribute>
<xsl:attribute name="class">Wdate</xsl:attribute>
</xsl:if>
<xsl:if test="./@feildType = 'DATE'">
<xsl:attribute name="onfocus">WdatePicker({dateFmt:'yyyy-MM-dd'})</xsl:attribute>
<xsl:attribute name="class">Wdate</xsl:attribute>
</xsl:if>
<!-- style 属性 -->
<xsl:attribute name="style">
<xsl:if test="./@when != ''">when:<xsl:value-of select="./@when"></xsl:value-of>;</xsl:if>
<xsl:if test="./@rule != ''">rule:<xsl:value-of select="./@rule"></xsl:value-of>;</xsl:if>
<xsl:if test="./@feildKey='true'">pk:true;</xsl:if>
<xsl:if test="./@feildLen2 != ''">
length:<xsl:value-of select="./@feildLen1"/>-<xsl:value-of select="./@feildLen2"/>;
</xsl:if>
<!-- visible 属性 -->
<xsl:if test="./@visible = 'false'">
<xsl:text>display:none;</xsl:text>
</xsl:if>
<!-- 是否是工单 -->
<xsl:if test="../attribute::isWorkOrder = 'true'">
<xsl:if test="./@feildRight = ''">
<xsl:text>border-style:none;</xsl:text>
</xsl:if>
<xsl:if test="./@feildRight = 'R'">
<xsl:text>border-color:red;</xsl:text>
</xsl:if>
</xsl:if>
<xsl:if test="../attribute::isWorkOrder = 'false'">
<xsl:if test="./@readOnly = 'true'">
<xsl:text>border-style:none;</xsl:text>
</xsl:if>
<xsl:if test="./@feildNull = 'false'">
<xsl:text>border-color:red;</xsl:text>
</xsl:if>
</xsl:if>
<xsl:if test="./@feildType = 'NUMBER'">
<xsl:text>dataType:NUMBER;</xsl:text>
</xsl:if>
<xsl:if test="./@feildType = 'VARCHAR2' or ./@feildType != 'VARCHAR'">
<xsl:text>dataType:STRING;</xsl:text>
</xsl:if>
<!-- 时间下拉框样式 属性 -->
<xsl:if test="./@feildType = 'TIMESTAMP'">
<xsl:text>dataType:TIMESTAMP;</xsl:text>
</xsl:if>
<xsl:if test="./@feildType = 'DATE'">
<xsl:text>dataType:DATE;</xsl:text>
</xsl:if>
</xsl:attribute>
<!-- readonly 属性 -->
<xsl:if test="../attribute::isWorkOrder = 'true'">
<xsl:if test="./@feildRight = ''">
<xsl:attribute name="readonly">true</xsl:attribute>
</xsl:if>
</xsl:if>
<xsl:if test="../attribute::isWorkOrder = 'false'">
<xsl:if test="./@readOnly = 'true'">
<xsl:attribute name="readonly">true</xsl:attribute>
</xsl:if>
</xsl:if>
<!-- value 属性 -->
<xsl:attribute name="value"><xsl:value-of select="./@feildValue"/></xsl:attribute>
</input>
</xsl:if>
<!-- textarea -->
<xsl:if test="./@feildLen1 >= 100">
<textarea rows="3" cols="28">
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- text -->
<xsl:value-of select="./@feildValue"/>
</textarea>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</td>
</xsl:if>
</xsl:for-each>
</tr>
<!-- DATA_GUID -->
<tr>
<xsl:for-each select="columns/column">
<!-- 此列只有此一个字段,所以隐藏改行;若有>1个字段,则不需隐藏此行 -->
<xsl:attribute name="style">
<xsl:if test="./@visible='false'">display:none;</xsl:if>
</xsl:attribute>
<!-- 字段 TITLE -->
<xsl:if test="./@feildName='DATA_GUID'">
<td>
<xsl:attribute name="align"><xsl:value-of select="./@align"/></xsl:attribute>
<!-- 判断是否隐藏此列 -->
<xsl:attribute name="style">
<xsl:if test="./@visible='false'">display:none;</xsl:if>
</xsl:attribute>
<xsl:value-of select="./@feildTitle"/>
<xsl:if test="./@feildKey='true'">
<span style="color:#E58A22;font-weight:bold;font-size:15px;">(PK)</span>
</xsl:if>
</td>
<td colspan="2">
<xsl:choose>
<xsl:when test="./child::*">
<!-- select -->
<xsl:if test="./feildDef/options/option">
<select>
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<xsl:for-each select="./feildDef/options/option">
<option>
<xsl:value-of select="./@value"/>
</option>
</xsl:for-each>
</select>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<!-- input -->
<xsl:if test="./@feildLen1 < 100">
<input width="100%">
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- type 属性 -->
<xsl:attribute name="type">text</xsl:attribute>
<!-- maxLength 属性 -->
<xsl:attribute name="maxLength"><xsl:if test="./@feildLen2 = ''"><xsl:value-of select="./@feildLen1"/></xsl:if></xsl:attribute>
<!-- 时间下拉框样式 属性 -->
<xsl:if test="./@feildType = 'TIMESTAMP'">
<xsl:attribute name="onfocus">WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})</xsl:attribute>
<xsl:attribute name="class">Wdate</xsl:attribute>
</xsl:if>
<xsl:if test="./@feildType = 'DATE'">
<xsl:attribute name="onfocus">WdatePicker({dateFmt:'yyyy-MM-dd'})</xsl:attribute>
<xsl:attribute name="class">Wdate</xsl:attribute>
</xsl:if>
<!-- style 属性 -->
<xsl:attribute name="style">
<xsl:if test="./@when != ''">when:<xsl:value-of select="./@when"></xsl:value-of>;</xsl:if>
<xsl:if test="./@rule != ''">rule:<xsl:value-of select="./@rule"></xsl:value-of>;</xsl:if>
<xsl:if test="./@feildKey='true'">pk:true;</xsl:if>
<xsl:if test="./@feildLen2 != ''">
length:<xsl:value-of select="./@feildLen1"/>-<xsl:value-of select="./@feildLen2"/>;
</xsl:if>
<!-- visible 属性 -->
<xsl:if test="./@visible = 'false'">
<xsl:text>display:none;</xsl:text>
</xsl:if>
<!-- 是否是工单 -->
<xsl:if test="../attribute::isWorkOrder = 'true'">
<xsl:if test="./@feildRight = ''">
<xsl:text>border-style:none;</xsl:text>
</xsl:if>
<xsl:if test="./@feildRight = 'R'">
<xsl:text>border-color:red;</xsl:text>
</xsl:if>
</xsl:if>
<xsl:if test="../attribute::isWorkOrder = 'false'">
<xsl:if test="./@readOnly = 'true'">
<xsl:text>border-style:none;</xsl:text>
</xsl:if>
<xsl:if test="./@feildNull = 'false'">
<xsl:text>border-color:red;</xsl:text>
</xsl:if>
</xsl:if>
<xsl:if test="./@feildType = 'NUMBER'">
<xsl:text>dataType:NUMBER;</xsl:text>
</xsl:if>
<xsl:if test="./@feildType = 'VARCHAR2' or ./@feildType != 'VARCHAR'">
<xsl:text>dataType:STRING;</xsl:text>
</xsl:if>
<!-- 时间下拉框样式 属性 -->
<xsl:if test="./@feildType = 'TIMESTAMP'">
<xsl:text>dataType:TIMESTAMP;</xsl:text>
</xsl:if>
<xsl:if test="./@feildType = 'DATE'">
<xsl:text>dataType:DATE;</xsl:text>
</xsl:if>
</xsl:attribute>
<!-- readonly 属性 -->
<xsl:if test="../attribute::isWorkOrder = 'true'">
<xsl:if test="./@feildRight = ''">
<xsl:attribute name="readonly">true</xsl:attribute>
</xsl:if>
</xsl:if>
<xsl:if test="../attribute::isWorkOrder = 'false'">
<xsl:if test="./@readOnly = 'true'">
<xsl:attribute name="readonly">true</xsl:attribute>
</xsl:if>
</xsl:if>
<!-- value 属性 -->
<xsl:attribute name="value"><xsl:value-of select="./@feildValue"/></xsl:attribute>
</input>
</xsl:if>
<!-- textarea -->
<xsl:if test="./@feildLen1 >= 100">
<textarea rows="3" cols="28">
<!-- id 属性 -->
<xsl:attribute name="id"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- name 属性 -->
<xsl:attribute name="name"><xsl:value-of select="./@feildName"/></xsl:attribute>
<!-- text -->
<xsl:value-of select="./@feildValue"/>
</textarea>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</td>
</xsl:if>
</xsl:for-each>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
通过altova xmlspy进行网页预览,结果如下: