0

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

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

后来我的 XML 变成了这样:

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

所以在第二种情况下,XSLT 转换会引发堆空间异常。有什么方法可以针对 XML 验证我的 XSLT?我想检查 XSLT 是否对应于正确的 XML。有人可以告诉我如何避免这个 outOfMemory 异常,即使我得到这个异常,我怎样才能防止这个应用程序消耗所有的 JVM 堆内存?

4

1 回答 1

0

您有 DTD 或 XML 模式吗?然后您可以验证转换输出。至于在不运行它的情况下验证转换本身,这似乎与不完备性定理相冲突。

至于防止转换耗尽所有内存,唯一可靠的防止这种情况的方法是将其沙箱化到具有受控内存约束的单独进程中。

于 2013-05-21T06:22:06.660 回答