首页 > 解决方案 > 和标签有什么区别?

问题描述

</x:out>在 XML 中,标签和标签有什么区别</out>?因此,例如,如果我有 a<quantity>23</x:quantity>和 a<quantity>23</quantity>会有什么不同?

标签: xmlxml-namespaces

解决方案


xin被<x:out>XML 解析器解释为命名空间前缀,这是一种组合文档的机制,其中包含两个或多个具有相同本地名称元素的 XML 词汇表。例如,XHTML 有title元素,SVG 也有。现在,在同时包含 XHTML 和 SVG 标记的文档中,需要根据给定元素是分别用于 XHTML 还是 SVG 内容,对title元素进行不同的处理(出于验证目的和允许的属性等) 。title在 XML 中,命名空间前缀(出现:在元素或属性名称之前的所有内容)必须命名空间绑定xmlns(一个或多个以or开头的特殊 XML 属性)绑定xmlns:)。例如,以下文档使用xmlns:myvocabulary="http://example.com/myvocabulary"名称空间绑定将 XML 名称空间前缀分配给myvocabulary由 URI 标识的名称空间名称http://example.com/myvocabulary

<p>
  <myvocabulary:myelement xmlns:myvocabulary="http://example.com/myvocabulary"/>
</p>

命名空间名称是 URL的事实并不重要 - XML 解析器只使用 URL 作为命名空间名称的字符串标识符。

编辑:正如迈克尔指出的那样,以下内容不正确。相反,该构造<x:myelement>...</y:myelement>始终无效,并且命名空间前缀,而不仅仅是绑定到的命名空间名称在匹配的开始元素和结束元素标记上必须相同

请注意,对于 XML 命名空间,XML 要求 XML 内容的格式正确:只有当 the和命名空间前缀都绑定到相同的命名空间名称时,这样的构造<x:myelement>...</y:myelement>才有效,例如在xy

<x:myelement xmlns:x="http://example.com/myvocab" xmlns:y="http://example.com/myvocab">...</y:myelement>

相比之下,SGML(XML 和 HTML 的祖先/超集)通常不会(1) 将命名空间前缀甚至冒号 ( :) 字符视为特殊字符,并将整个字符串解释x:myelement为元素名称。

请参阅XML 中的命名空间

(1) 除非使用 ISO/IEC 19757-9:2008 中定义的特殊 DSDL-9 命名空间绑定处理指令


推荐阅读