我有几个 xml 文件,它们是在 ETL (Informatica) 上实现的流程的源代码。
我需要构建一个解决方案来分析这些 XML 并生成有关它的报告。 目标是检查是否遵守了自制开发规范。
我不关心 DTD 或 XSD 问题中的 XML 验证(顺便说一句,XML 文件是有效的并且可以解析),但我需要构建几个规则,例如:
-该节点需要将此属性设置为 false
-如果节点属性“A”为“blablabla”,则节点“B”必须设置为值“X”
-等等...
我认为 XSLT 或 XQuery 可能是一个很好的解决方案,并提供报告作为输出,但是有人知道是否有现有的代码分析工具(开源或免费软件)能够使用自制规则检查 XML?
最佳答案
首先,您可能应该根据架构 (XSD) 测试您的 XML 文件,我认为这是一个很好的做法。但是,您描述的规则例如:
If the node attribute "A" is "blablabla", the node "B" have to been set to the value "X"
不能单独通过模式进行测试。
这是一个常见问题,因此我建议不要发明自己的解决方案,而是查看现有的解决方案,例如 Schematron 。在他们的网站上,它将该技术描述为:
A language for making assertions about the presence or absence of patterns in XML documents. See this overview for more information.
我已经有一段时间没有使用它了,但我确实记得它对于这类事情非常有用。
关于XML代码分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8833331/