【问题标题】:XML Namespace Prefixes without Namespace Definition没有命名空间定义的 XML 命名空间前缀
【发布时间】:2018-02-09 13:05:59
【问题描述】:

在 XML 文档中是否需要命名空间定义,其中前缀用于文档被认为是有效和合规的?

以下面的代码为例,这是否有效且合规?

<?xml version="1.0"?>
<ns:root_element>
  <ns:some_element>Some data</ns:some_element>
  <ns:another_element>Some more data</ns:another_element>
</ns:root_element>

(我知道定义命名空间的正确方法是使用xmlns:ns="" 属性)。

【问题讨论】:

  • “在 XML 文档中是否需要命名空间定义” - 是的。
  • @Tomalak 只是为了澄清抱歉,你是说不管使用前缀命名空间都需要定义吗?
  • 另见this关于“有效”一词的主题,因为它并不代表您认为的那样。
  • 我的意思是,您在这里所拥有的甚至不是 XML,更不用说“有效”了——XML 解析器会直接拒绝它。命名空间首先是一个URI。前缀基本上是方便句柄。 URI 是这里的相关部分,你不能没有 URI。
  • @Tomalak:实际上,Gareth 在技术上发布的 XML——它只是不是namespace-well-formed XML。但是您说得对,冒号 应该 仅用于 XML 名称中以用于命名空间。

标签: xml namespaces


【解决方案1】:

是的,命名空间前缀声明是必需的,因为规范是这样说的。 XML 命名空间规范中定义的前缀元素名称如下(注意规范甚至强调了这一要求):

PrefixedName ::= Prefix ':' LocalPart

Prefix 提供了限定名称的命名空间前缀部分,并且必须与命名空间声明中的命名空间 URI 引用相关联。 [source]

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-19
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 2022-08-10
相关资源
最近更新 更多