在 Haskell 中验证 XML 文件可以很好地使用HXT和Relax NG,除了一件事:我怎样才能得到结果?
使用以下代码,XML 文件xmlFilename
将根据 Relax NG 方案进行验证rngFilename
。如果发生错误,则将错误输出到stderr
,并继续评估。
v <- runX
( readDocument
[ withRemoveWS yes -- remove redundant whitespace
, withValidate no -- don't validate source by DTD
] xmlFilename
>>>
-- validate source by Relax NG
validateDocumentWithRelaxSchema [] rngFilename
)
如果出现错误,变量v
会根据hxt-relaxng 文档保存以下信息:
在验证错误的情况下,根中包含状态信息的空文档 [输出]
生成的带有错误文档的树确实包含一个status
(and module
) 属性:
NTree (XAttr "module") [NTree (XText "validate document with Relax NG schema") []],
NTree (XAttr "status") [NTree (XText "2") []]
现在的问题:
如何检查validateDocumentWithRelaxSchema
是否存在验证错误的输出?
有没有我可以使用的预定义函数(但还没有找到)?