2013-05-21 62 views
0

我有一个XML在其上进行XSLT转换。我从其他来源收到的XSLT,所以我无法控制它。当XSLT和XML之间存在细微差别时会出现问题。例如我的XML看起来开始像这样:XSLT和XML不匹配

<a> 
    <b></b> 
    <c></c> 
</a> 

后来我的XML变化是这样的:

<a> 
    <b> 
     <c></c> 
    </b> 
</a> 

因此,在第二种情况下,XSLT转换抛出堆空间异常。 有什么办法可以验证我的XSLT对XML吗?我想检查XSLT是否与正确的XML相对应。 有人可以告诉我如何避免这种OutOfMemory异常,即使我得到这个异常,我怎么能阻止这个应用程序消耗所有的JVM堆内存?

+0

没有看到你的XSLT和一些真正的输入XML,不可能说出什么是错的。 –

回答

0

您是否有DTD或XML Schema?然后你可以验证转换输出。至于验证转换本身而不运行它,这似乎违反了不完备性定理。至于防止转换吃掉你所有的内存,防止这种情况的唯一可靠方法就是把它变成一个单独的进程,控制内存限制。

+0

这应该是一个评论,而不是一个答案。 –