XML元素属性中的双重哈希“##”是什么意思?

时间:2017-04-12 15:30:19

标签: xml bpmn

我正在阅读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">

或者查看spec pdf文件表10.9和表10.45作为示例。这个pdf包含更多使用此语法的地方。

当我想知道这意味着什么时,我开始搜索。我看到它在XML模式any元素(https://www.w3schools.com/xml/el_any.asp),namespace属性中使用,其值似乎始终以##开头。

在BPMN中,似乎当它们(规范的编写者)希望用户指定她希望用作实现的技术时使用它。默认设置是Web服务,但他们会尝试将其留给用户。用户可以使用##Unspecified##WebService,或者提供一些URI。

我找不到任何关于XML中的双哈希以及为什么以这种方式使用它。

为什么##在这里使用?这是什么意思?起源是什么?它叫什么?

编辑。我接受了迈克尔凯斯的答案,但我仍然有兴趣听听是否有人知道这是否在某处特定地指定。

1 个答案:

答案 0 :(得分:0)

它并不意味着什么。在XML Schema令牌中,如&#34; ## other&#34;因为它们不是有效的URI(有效的URI不能包含&#34; ##&#34;)而被使用,因此不能被误认为是名称空间。也许BMPN出于同样的原因正在使用这个约定,或者它有其自身的原因。无论哪种方式,它在XML级别上都没有任何意义,它是在您的特定词汇表中使用的惯例,并且他们很可能选择它只是因为它比#34; **&#更突出。 34;或&#34; $$&#34;。