Tho*_*sen 4 xml xslt xalan exslt
我一整天都在寻找这个问题的答案.我正在为中等大小的XML文档(~1.5MB,~1000个元素)创建样式表,这给我带来了很多麻烦.它是关于为不同的加工厂设备创建事件 - 时间线图.XML是通过SAP MII QueryTempalte thingy生成的,并且采用/ Rowsets/Rowset/Row格式.所有这些数据都以/设备/设备/事件格式处理并存储在本地节点集中.然后将此节点集处理为HTML,然后在浏览器中呈现.现在,我开始遇到麻烦了.我可以轻松地提取过去5天的数据,从而导致来自MII的约900行数据,并被处理为我的节点格式,导致不到900行.但第二个我从MII获取了1017行,样式表只会渲染大约一半,然后停止并且"没有更多的DTM ID可用"异常.现在,MII服务器只运行JDK 1.5.x,我读过,这可能是一个问题 - 唯一的问题是,我对此无能为力.所以现在我在这里问:有没有办法优化我的代码?我为我的XSL和示例XML附加了一些链接.
XSL:http: //pastie.org/1566517 Samlpe XML:http://pastie.org/1566522
现在,示例XML可能不会产生任何"有趣"的可视结果,并且无法复制错误.但是,如果有人能够发现obvoius优化,我很想知道:)我一直在想,替换/移动startOffset,endOffset等的计算会很好,但我无法弄清楚如何.
希望可以有人帮帮我!:)
我们也遇到了这个问题与不同的应用程序,错误的基础是相同的.如上所述,基本问题是用于处理xslt文档的xalan,Apache项目的限制.虽然这种限制很少被触发,但是由于耗尽了最大数量的65535(16位)DTM ID.在上面的应用程序中,显然可以通过在SAP中使用资源分配效率功能来避免这种情况,但这将不适用于其他应用程序,例如我们正在使用的应用程序.
总之,65K DTM id限制已经存在了一段时间(ca 2003),修补了,然后丢失了2.7分支中的补丁.目前最新版本的2.7.2存在这个问题.在最基本的级别,文档ID是32位整数.修复是源代码更改,增加了为DTM留出的位数.可以在这里查看更全面的讨论.建议的hack是将节点位数改为12,从而将DTM的数量增加到20,将总DTM增加到1048576.步骤是
IDENT_DTM_NODE_BITS.| 归档时间: |
|
| 查看次数: |
3217 次 |
| 最近记录: |