gpt4 book ai didi

xml - 是 xsi :schemaLocation actually used?

转载 作者:行者123 更新时间:2023-12-04 04:59:22 26 4
gpt4 key购买 nike

我正在使用 xmllint检查一些工具 XML 反对他们的文件 XSD 模式。该工具似乎被调用为

xmllint --noout --schema foo.xsd bar.xml

...并且不包括检索 的选项XSD 来自 的文件XML 文件的 xsi:schemaLocation 属性。此外,在 relevant w3.org specs一个写道:

The presence of these hints [i.e. the xsi:schemaLocation ] does not require the processor to obtain or use the cited schema documents, and the processor is free to use other schemas obtained by any suitable means, or to use no schema at all.



所以说在实践中 是否公平? xsi:schemaLocation 属性相当于(软)文档?此外,因为允许传入的 XML 文档告诉应用程序如何验证它们可能不是一个好的做法,所以我看不到好处。

最佳答案

XSD 位置提示,架构位置 noNamespaceSchemaLocation , 实际上很少在生产环境中使用(我从未见过)。

我个人认为它是 期间使用的工具的便捷方法。发展 阶段。它被认为是一种可互操作的方式,用于指示应使用哪些 XSD 进行验证、IntelliSense 等。

假设您构建了一堆 XML 文件(示例),作为更好地说明(记录)另一堆 XSD 文件的方法。从我过去所见,人们使用模式位置提示(相对 URI),压缩整个集合(XSD、XML 等),然后将存档发送给消费者。这样,无论人们使用什么开发工具,都有更多的机会实现“互操作”。例如,MS Visual Studio 维护一个内部专有存储,用于保存特定 XML 文件的架构; “元数据”不能像 xsi 模式位置提示一样移植到其他工具。

我还看到了模式位置提示的一些真正“高级”用途,这就是为什么至少在我们的工具中我们确实花费了大量周期来阅读这些提示并动态调整智能感知和验证消息......

关于xml - 是 xsi :schemaLocation actually used?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16336680/

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