这回小学期,我们的任务是做一个需求获取和自动分析的web工具。
从通过问题获得用户的需求(大量文本) 到通过“着色法”获取关键信息(主要包括element和link),接着生成xml文件作为中间的信息存储,通过相应的xslt转换最后显示某种特定的图表,用svg文件表示。
在下的任务就是从xml 经xsl 到svg。
主要的步骤是这样滴:
1)开发XML schema;
2)开发XML数据文件;
3)根据schema文件验证XML数据文件的有效性;
4)开发XSLT变换程序,通过XSLT程序变换XML数据文件;
5)通过SVG浏览器显示对应图表。
实际中,是先做2), 然后通过visual studio或者Altova XMLSpy等转换出Schema文件框架,修改后就完成了。
在XLST转换中,需要为svg元素们分配位置,我感觉XSLT这样一种在变量的编译和处理上比较不直观的语言来说,是不太合适的,它可以很好的处理局部,因为xPointer的关系,它就像一个很好的正则表达式机器,可以管好局部,对整体缺稍显乏力。(其实是比较难学,XSLT2.0的高级功能都没看过呢~ ~)
于是,在挣扎了一番,将element的位置用xslt诡异的递归计算出来后,决定将link的位置计算交给javascript了。
javascript是挺好用的,语法上较为规范,与C、java等较一致,DOM的处理结构性很强,加上SVG本身的一些图像转换函数,使用起来果然功能强大。
学了这么多东西,感觉web技术上手还是较快的,但是一些服务器端 客户端 处理函数 的具体执行过程—postback的问题,xml中的一些编码和节点类型的问题(DOM处理的时候,空白文本被算成了文本节点,这个让我郁闷了一下,对DOM的功能产生了暂时的怀疑),还有svg中的转换矩阵还是有点晕。
来日有机会 贴上 代码。小分析一下。