我的程序的思路是:
1. 用户在UI中输出参数;
2. 参数被存在一个XML文件中,这个文件的格式就是codesmith的csp文件格式。
3. codesmith脚本,根据这个csp文件里存贮的参数,自动生成我想要的代码。这个代码事实上,也是一个变量表,用于传给一个perl脚本。
所以,第一步,分析一下,目前我手头的一个csp文件:
<?xml version="1.0"?>
<codeSmith xmlns="http://www.codesmithtools.com/schema/csp.xsd">
<propertySets>
<propertySet name="UserInputParam.pl" output="UserInputParam.pl" template="C:\work\AutoPkg\UserInputParam.cst">
<property name="root">C:\工具脚本</property>
<property name="ftpAdress">172.27.1.40</property>
<property name="ini">$root/应用程序/自动打包/XXXX.INI</property>
<property name="compressName">String[] Array</property>
<property name="updatePkg">String[] Array</property>
<property name="bVersion">String[] Array</property>
<property name="dirName">String[] Array</property>
</propertySet>
</propertySets>
</codeSmith>
我们注意到了一个xsd文件:
<codeSmith xmlns="http://www.codesmithtools.com/schema/csp.xsd">
这正是要找的。
有了xsd就好办了。
直接到codesmith安装目录去找
D:\Program Files (x86)\CodeSmith\v5.3\Schemas
csp.xsd和csmap.xsd
打开csp.xsd后,很奇怪:
也就是说,一大堆零件散在那里,没有说明从属关系。
所以,很奇怪。