gpt4 book ai didi

xml - 如果我将 XML 从具有 "xmlns"更改为不具有 "xmlns"是否会破坏兼容性?

转载 作者:数据小太阳 更新时间:2023-10-29 02:31:21 28 4
gpt4 key购买 nike

假设我的 Web 服务发出带有“xmlns”、“xmlns:xsi”和“xsi:schemaLocation”的 XML 设置为占位符,这些占位符不是有效的 URI(例如“blahblahblah”),一旦该服务已从许多系统中的一位用户发现他的 XML 解析器不喜欢占位符。

现在我必须用它做点什么。其中一个选项是只删除“xmlns”、“xmlns:xsi”和“xsi:schemaLocation”属性。

删除它们是否会破坏现有用户?这样的 XML 有效吗?

最佳答案

如果您以前在文档元素中有一个 xmlns 属性,这意味着所有 XML 元素(没有前缀)都在一个 namespace 中。如果您现在删除该 namespace ,则不再如此,并且任何( namespace 感知的)解析器的输出都会发生变化。因此,很可能是处理已解析数据的程序的行为。

举个例子,如果 XML 元素位于命名空间中,则在 Java 中使用 XPath 是不同的:How to query XML using namespaces in Java with XPath? .尽管接受的答案显示了一种以 namespace 不可知的方式使用 XPath 的方法,但大多数程序可能不会使用这种方法。

XML 应该仍然有效(实际上格式良好),您可以在支持验证的合适的 XML 编辑器(例如包括 Eclipse)中轻松检查。但是因为您删除了对架构的引用,验证将只涵盖基本的 XML 规则(如我所说,格式良好),而不是架构设置的规则。

所以简而言之,是的,您可能会破坏您的客户,但是是的,XML 将(可能)仍然有效。

关于xml - 如果我将 XML 从具有 "xmlns"更改为不具有 "xmlns"是否会破坏兼容性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12601351/

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