gpt4 book ai didi

java - XML 文档验证在修改后的文档上失败,但在重新解析时通过

转载 作者:行者123 更新时间:2023-11-30 04:17:45 25 4
gpt4 key购买 nike

我有通过向现有元素添加属性来修改XML文档的代码。在修改之前,我使用 SchemaValidator 通过验证运行 Document 并且它通过了。

但是,在添加 Attribute (根据架构有效)后,如果我将 Document 实例传递给 Validator,它将失败。

如果作为中间步骤,我采用 Document 实例,将其转换为 String 并重新解析为 Document,这个新的文档 通过验证。

我认为我不必这样做。我尝试使用 normalizeDocumentnormalize 但这些并没有解决问题。

更新

我编写了一个单元测试,它除了验证文档、添加属性并重新验证文档之外什么也不做。这过去了。但是,当我运行将文档传递到整个系统的集成测试时,它会根据上述情况失败。再次,转换为字符串并返回文档通过验证。

该代码不在我可以将其粘贴到此处的位置,并且自从单元测试通过以来,这似乎是一个更广泛的问题。

任何有关调查地点的建议都会有所帮助。

最佳答案

对于命名空间感知的 XML Document,我也遇到了同样的问题。

我使用 setAttribute(name, value) 添加非命名空间属性,这导致了相同的结果元素“y”异常(exception)中不允许使用属性“x”。重新解析文档,问题就消失了。

修复方法是使用命名空间感知方法 setAttributeNS(namespaceURI, qualifiedName, value) ,传递 null 作为命名空间URI。

关于java - XML 文档验证在修改后的文档上失败,但在重新解析时通过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17930217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com