用 XSLT 生成源代码(0分)

Y

yysun

Unregistered / Unconfirmed
GUEST, unregistred user!
当我们设计的类,尤其是 JavaBean 那些属性的 setXXX,getXXX 真是很麻烦。
为此我设计了一个些小工具,通过 XML + XSLT 自动生成源代码。
http://www.richsearch.com/dfwlib/xsl4src.zip
例如 user.xml
<use id="int" name="String">
<firstname>String</firstname>
<lastname>String</lastname>
</use>
- 可以自动生成:JavaBean
public class User {
private int id;
private String name;
private String firstname;
private String lastname;
public int getId() {
return id;
}
public void setId(int value) {
id = value;
}
public String getName() {
return name;
}
public void setName(String value) {
name = value;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String value) {
firstname = value;
}
public String getLastname() {
return lastname;
}
public void setLastname(String value) {
lastname = value;
}
public User() {
}
} // user
- 可以自动生成:VBScript 类:
Class clsuser
private m_id
private m_name
private m_firstname
private m_lastname
public property Get id()
id = m_id
end property
public property Let id(value)
m_id = value
end property
public property Get name()
name = m_name
end property
public property Let name(value)
m_name = value
end property
public property Get firstname()
firstname = m_firstname
end property
public property Let firstname(value)
m_firstname = value
end property
public property Get lastname()
lastname = m_lastname
end property
public property Let lastname(value)
m_lastname = value
end property
End Class
- 甚至可以自动生成:SQL
Create Table user (
id int,
name vchar(),
firstname vchar(),
lastname vchar(),
);
我把我的方法称为 Design by Example,因为我用来表现类的 XML 是个实例,而不是 DTD。
您可以一遍设想您的类有哪里属性,一遍就随手用 XML,以实例的形式记录下来,然后按一
个键就得到 JavaBean ...
如果使用 DTD,那要麻烦得多。上述 user 的 DTD 为:
<!ELEMENT user (firstname, lastname)>
<!ELEMENT firstname (#PCDATA)>
<!ELEMENT lastname (#PCDATA)>
<!ATTLIST user id CDATA #REQUIRED>
<!ATTLIST user name CDATA #REQUIRED>
JavaTM Architecture for XML Binding (JAXB) 使用了 DTD,要麻烦不少,
不过 JAXB 生成的 JavaBean 能 Parse XML。
http://java.sun.com/xml/jaxb/index.html
正在就此写篇文章,这里给大家 XSLT 源码先玩起来吧。[:D]
 
嘿嘿。。java的东西看不大明白
推一下吧
 
文章完成。 http://www.richsearch.com/dfwlib/xsl4srcdoc.zip
(投稿中,请勿转贴!)
 
孙老师文章中有点问题哎!
>3、再扫描一遍每个节点的属性和子节点,生成类属性的 set 和 get 函数,
>Java 的命名规范这时又要求set和get后的属性的首字母必须大写,所以再用
>firstLower 模板。
~~~~~~~~~~~~应该是firstUpper吧!
 
yysun老师的这个东西满有意思,但就我的认识来说,我觉得他的意义不是很大。希望能够
告知更多的思想
 
SuperJS, 谢谢指正!应该是 firstUpper。
gutian, 最近因为做大富翁练功场设计,需要写上几百个 setXXX,getXXX 函数,
觉得很麻烦,就想到应该用个工具来生成一下,看看现成的做法(文章里提到的)
还不够简单,就自己做了这个。
 
正好请教一下孙先生
在xml中,中文文字是用什么编码?
UTF-8的需要支持的编辑器,不是很方便
请问您用什么编码?
 
还有,您的想法我觉得很有意思
我曾经想作SVG时
自己定义一些元素
然后用xsl转换为svg的文档
和您的意思是否一致?
 
编码可以用 gb2312 即 ANSI 双字节,只要把 XML/XSL 文件第一句写成
<?xml version="1.0" encoding="gb2312" ?>
BTW,这篇文章将发表在下一期的《程序员》杂志上。
 
谢谢孙先生
我曾经试过gb2312
刚才也看了一下
但是IE称:"unknown encoding: line 1 column 30"
似乎不支持gb2312编码
我用的是svgview 3.0
用xsl把一个xml转换为另一个xml
确实很有效
 
MrMengyi, 您可以试试下面的连接:
http://www.delphibbs.com/delphibbs/dispq_.asp?LID=1000434
http://www.delphibbs.com/delphibbs/dispq_2.xsl
 
谢谢,我看到了
可能是Adobe的SVG不支持GB2312
对于UTF-8还有UltraEdit可以使用
 
不错!可以节省不少时间。
 
顶部