XML 标准:在根级别定义的命名空间

XML standards: Namespaces defined at root level

提问人:Miya 提问时间:7/18/2023 最后编辑:kjhughesMiya 更新时间:7/18/2023 访问量:39

问:

是否可以根据 xml 最佳实践在根元素中定义所有命名空间?请看下面的简化示例:

<ns1:Root xmlns:ns1="Root" xmlns:ns2="urn...." xmlns:ns3="urn...">
  <ns1:Tag1></ns1:Tag1>
  <ns2:Tag2></ns2:Tag2>
  <ns3:Tag3></ns3:Tag3>
</ns1:Root>

对标准和最佳实践提出更多问题。

xml xsd 解析 xml 命名空间 xsd 验证

评论


答:

2赞 kjhughes 7/18/2023 #1

是的,XML 标准允许在根级别定义所有 XML 命名空间前缀。

是的,作为最佳实践,许多人建议仅在根级别定义 XML 命名空间前缀。

不可以,不应假定或编写假定 XML 命名空间前缀仅在根级别定义的代码。

3赞 Michael Kay 7/18/2023 #2

你可以这样做,它有时很有用,但永远没有必要。例如,如果您有一个 SOAP 结构,其中应用程序有效负载位于 SOAP 信封内,则在“有效负载”级别声明应用程序命名空间是完全可以接受的。

“最佳实践”是指使你的生活更轻松的东西,这取决于你用XML做了什么。