XML 元素属性中的双哈希“##”是什么意思?
What does the double hash `##` in an XML element attribute mean?
我正在阅读 BPMN 2.0 (http://www.omg.org/spec/BPMN/2.0/) 的规范,发现使用双散列标记 ##
作为 XML 元素值的第一个字符属性。例如:
<semantic:userTask implementation="##unspecified" completionQuantity="1" isForCompensation="false" startQuantity="1" name="edit 1st level ticket" id="_6-145">
或者查看规范 pdf 文件 table 10.9 和 table 10.45 作为示例。此 pdf 包含更多使用此语法的地方。
当我想知道这是什么意思时,我开始搜索。我看到它用在 XML 架构 any
元素 (https://www.w3schools.com/xml/el_any.asp),名称空间属性中,它的值似乎总是以 ##
.
开头
在 BPMN 中,似乎当他们(规范的作者)希望用户指定她希望使用什么技术作为实现时使用它。默认是 Web 服务,但他们试图将其留给用户。用户可以使用 ##Unspecified
或 ##WebService
,或者提供一些 URI。
我找不到任何关于 XML 中的双哈希以及为什么以这种方式使用它的信息。
这里为什么用##
?这是什么意思?起源是什么?它叫什么?
编辑。我接受了 Michael Kays 的回答,但我仍然很想知道是否有人知道这是否在某处正式指定。
没有什么特别的意思。在 XML 中使用像“##other”这样的模式标记,因为它们不是有效的 URI(有效的 URI 不能包含“##”),因此不会被误认为是命名空间。也许 BMPN 出于同样的原因使用这个约定,或者它有自己的原因。无论哪种方式,它在 XML 级别都没有任何意义,它是您特定词汇表中使用的约定,他们很可能选择它只是因为它比“**”或“$$”更突出.
我正在阅读 BPMN 2.0 (http://www.omg.org/spec/BPMN/2.0/) 的规范,发现使用双散列标记 ##
作为 XML 元素值的第一个字符属性。例如:
<semantic:userTask implementation="##unspecified" completionQuantity="1" isForCompensation="false" startQuantity="1" name="edit 1st level ticket" id="_6-145">
或者查看规范 pdf 文件 table 10.9 和 table 10.45 作为示例。此 pdf 包含更多使用此语法的地方。
当我想知道这是什么意思时,我开始搜索。我看到它用在 XML 架构 any
元素 (https://www.w3schools.com/xml/el_any.asp),名称空间属性中,它的值似乎总是以 ##
.
在 BPMN 中,似乎当他们(规范的作者)希望用户指定她希望使用什么技术作为实现时使用它。默认是 Web 服务,但他们试图将其留给用户。用户可以使用 ##Unspecified
或 ##WebService
,或者提供一些 URI。
我找不到任何关于 XML 中的双哈希以及为什么以这种方式使用它的信息。
这里为什么用##
?这是什么意思?起源是什么?它叫什么?
编辑。我接受了 Michael Kays 的回答,但我仍然很想知道是否有人知道这是否在某处正式指定。
没有什么特别的意思。在 XML 中使用像“##other”这样的模式标记,因为它们不是有效的 URI(有效的 URI 不能包含“##”),因此不会被误认为是命名空间。也许 BMPN 出于同样的原因使用这个约定,或者它有自己的原因。无论哪种方式,它在 XML 级别都没有任何意义,它是您特定词汇表中使用的约定,他们很可能选择它只是因为它比“**”或“$$”更突出.