在实施Web服务的时候,我们有时会用XML Schema来定义数据的格式,并生成代码。
在界面展示上,为了与后台的一致性,也常会采用同样的schema来规范Form的输入,但Schema会常常变化,我的想法是把Schema也作为一个Web服务,Form表单可以采用XSLT动态生成。
可以在这里:transform进行XSLT的测试,以下列XML Schema为例:
采用如下的XSLT:
就会得到基本的输入:
input的name作为Form的key,value从UI输入。
在实施Web服务的时候,我们有时会用XML Schema来定义数据的格式,并生成代码。
在界面展示上,为了与后台的一致性,也常会采用同样的schema来规范Form的输入,但Schema会常常变化,我的想法是把Schema也作为一个Web服务,Form表单可以采用XSLT动态生成。
可以在这里:transform进行XSLT的测试,以下列XML Schema为例:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:m="http://rocwing.com" targetNamespace="http://rocwing.com" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:complexType name="SwitchingSchedule"> <xs:sequence> <xs:element name="endDateTime" type="xs:dateTime"> </xs:element> <xs:element name="reason" type="xs:string"> </xs:element> <xs:element name="startDateTime" type="xs:dateTime"> </xs:element> </xs:sequence> </xs:complexType>
采用如下的XSLT:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions"> <xsl:output method="html"/> <xsl:template match="xs:schema"> <xsl:for-each select="xs:complexType/xs:sequence/xs:element"> <p> <label><xsl:value-of select="@name"/></label> <input type="text" name="{@name}"/> </p> </xsl:for-each> </xsl:template> </xsl:stylesheet>
就会得到基本的输入:
<p><label>endDateTime</label><input type="text" name="endDateTime"></p> <p><label>reason</label><input type="text" name="reason"></p> <p><label>startDateTime</label><input type="text" name="startDateTime"></p>
input的name作为Form的key,value从UI输入。
One Response
Pingback: RocWing's Blog» Java监控文件系统变化