2

我试图证明我的 XML 在 Nifi 上格式正确。

我已经根据某些模式对其进行了验证,但有时我没有模式,因此希望确认它的格式正确。然而,所有的 XML 处理程序似乎都需要一个模式或类似的东西,而不仅仅是显示它的格式正确。

任何人都可以提供一些帮助吗?非常感谢

4

2 回答 2

6

要添加到 kjhughes 的答案(特定于 NiFi),如果您总是知道根标签(我们称其为“根”),您可以将这篇 SO 帖子中提到的 XSD与ValidateXml处理器一起使用。

如果您不知道根标签,您可以使用ExecuteGroovyScript并将“失败策略”属性设置为“转移到失败”并将“脚本主体”设置为以下脚本:

def flowFile = session.get()
if(!flowFile) return
InputStream i = flowFile.read()
new XmlSlurper().parse(i)
i.close()
REL_SUCCESS << flowFile
于 2018-02-28T15:06:08.367 回答
0

只需尝试使用任何符合标准的 XML 解析器来解析它。

如果它解析成功,即没有致命错误,那么它是格式良好的

良构约束

[定义:适用于所有格式良好的XML 文档的规则。违反格式良好的约束是致命的错误。]

于 2018-02-28T13:35:21.413 回答