0

有谁知道一个工具可以让我在 Java 中获取一个 XML 字符串,根据模式检查它,如果它格式错误则修复它?
例如,给定以下架构和 xml 代码

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">

  <xs:element name="tag">
   <xs:element name="subtag" type="xs:token" />
  </xs:element>
</xs:schema>


<tag>
<subtag>content
</tag>

我正在寻找一种可以读取架构、解析 XML、注意丢失的标签并添加它的工具。出于这个特定程序的目的,除了缺少标签之外,我不需要任何更正。(顺便说一句,无需使用模式即可定位和添加缺失标签的工具也很好)。
有什么建议么?

4

2 回答 2

1

当然,问题在于,对于任何不符合模式的实例,都有无数个符合模式的“相似”实例,而您的挑战是选择“最相似”的实例“在某种程度上。

HTML5 试图通过一套精心设计的规则来做到这一点。这些规则包含大量特定模式的知识,例如,如果发现 tr 作为表的子项,则 tr 将包装在 tbody 中。您可以尝试为您的模式/词汇表做同样的事情,但要为大量工作做好准备。

对任意模式做同样的事情听起来像是一个有趣的博士项目。成功地做到这一点可能需要对偏离模式的原因进行一些研究(就像拼写更正应该考虑输入是由用户键入、通过语音识别获得还是使用 OCR 扫描获得——每个都引入了不同类型的错误。)

于 2012-01-23T10:39:28.077 回答
0

试试JTidy,它将修复格式错误的 XML 以及 HTML。

于 2012-01-23T09:31:30.437 回答