首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

这种需求用XML的继承机制是否可以解决解决思路

2012-02-22 
这种需求用XML的继承机制是否可以解决之所以想要问这个问题,是因为我再具体的项目中遇到这样一个情况.前一

这种需求用XML的继承机制是否可以解决
之所以想要问这个问题,是因为我再具体的项目中遇到这样一个情况.
前一阵我被分配一个任务开发一批JSP Tag对一个JavaScript绘图库进行
封装,因为大家对JS都不是很熟悉。开发并不难,很快就把基类搞出来
了,其子类用来完成具体图表的绘制。但当我为写好的JSP Tag写TLD文件
的时候发现写这些文本文件远远没有写Java文件那么轻松,即使这些子类
90%的定义基本相同,你也必须一个个的去手写,比如像下面这样:

XML code
<tag>     <name>BarChart</name>     <tagclass>com.fhd.chart.BarChar</tagclass>     <bodycontent>JSP</bodycontent>                     <attribute>     <name>label</name>     <required>false</required>     <rtexprvalue>true</rtexprvalue>    </attribute>    ...</tag><tag>     <name>LineChart</name>     <tagclass>com.fhd.chart.BarChar</tagclass>     <bodycontent>JSP</bodycontent>                     <attribute>     <name>label</name>     <required>false</required>     <rtexprvalue>true</rtexprvalue>     </attribute>     ...</tag>...

这些JSPTag的定义中有80%多是用来声明title width height backcolor这些通用属性的
当时我只是随便起的名字,然后复制粘贴,后来发现有些不合适需要调整,还需要一个
一个得修改,稍微漏下一个就会出错。想在我想问一下在xml中有没有类似的集成策略使我
能够很方便的处理这样的问题,比如我可以定义一个基类节点,然后其他节点只需集成下
就可拥有其基类下所有的子节点,就像下面这样:
XML code
<CommonChartSet>    <bodycontent>JSP</bodycontent>         <attribute>     <name>label</name>     <required>false</required>     <rtexprvalue>true</rtexprvalue>     </attribute>     <attribute>     <name>width</name>     <required>false</required>     <rtexprvalue>true</rtexprvalue>     </attribute>     <attribute>     <name>height</name>     <required>false</required>     <rtexprvalue>true</rtexprvalue>     </attribute>     ....</CommonChartSet><tag extends="CommonChartSet">    <name>LineChart</name>    <tagclass>com.fhd.chart.LineChar</tagclass></tag><tag extends="CommonChartSet">    <name>BarChart</name>    <tagclass>com.fhd.chart.BarChar</tagclass></tag>....

不知道大家明白我的意思没有。希望大家能给个思路或给些资料,当然最后是能给个HelloWorld

[解决办法]
你想用模板方法生成tld的tag内容
[解决办法]
tld的定义格式必须是这样的!不然不会符合sun的dtd
[解决办法]
scheme中倒是有,complextype
[解决办法]
没有这样的功能,这种功能显然是要解析器去做的。
其实你可以在你的解析器上加上解析extend属性的功能即可。

热点排行