我正在构建一个 java 工具来验证 xml 文档并构建包含输入数据和验证结果的 html 报告。 我认为可能的方法是:
- 使用 XSD 验证 XML
- 用验证结果丰富 XML
- 在最终的 HTML 报告中转换丰富的 XML(这一点不是问题的目的)
首先,这是一种有效的方法吗?或者有更合适的方法在java中完成这些事情?
如果这是一个可行的解决方案,我该如何实现第 2 步?
例如,如果我从这个输入文档开始:
<parent>
<child id="a correct id" type="a correct type"/>
<child id="an incorrect id" type="an incorrect type"/>
</parent>
如何生成这样的丰富输出文档:
<parent>
<child id="a correct id" type="a correct type">
<results>
<result>id is correct</result>
<result>type is correct</result>
</results>
</child>
<child id="an incorrect id" type="an incorrect type">
<results>
<result>id is NOT correct</result>
<result>type is NOT correct</result>
</results>
</child>
</parent>
最佳答案
首先,有很多方法可以解决这个问题。还有其他工具,例如 schematron提供用于描述验证结果的语言,以及将验证结果转换为漂亮的 HTML 的能力。有许多 java 包实际上执行模式验证,因此您尝试完成的大部分内容应该是“粘合代码”。确保您没有尝试在 Java 代码中进行架构验证。
接下来,我不确定您想要在验证后转换原始 XML 文件的要求是什么。通常您会将验证结果集转储为单独的文件。原始 XML 的架构是否允许您添加内容?
一般来说,如果您想要转换原始输入,可以通过编写一个 XSLT 程序来实现,该程序采用验证结果文件和原始源文件,然后使用这些验证结果转换原始文件。但我不建议这样做,因为我认为您的情况可能需要不改变原始文件的不同设计,除非您有更多要求想要更深入地了解。
另一个选择是直接的 DOM 操作。验证后,您可以load the DOM for the input document ,对其进行操作,然后将其写回到同一个原始文件中。
但说实话,在您采用第 2 步的任何方法之前,请确保您的需求确实需要它。
关于java - 根据 XSD 验证 XML 并丰富验证结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23111029/