如何在XML标记内注释属性?

时间:2014-10-20 08:59:10

标签: xml comments xml-comments xml-attribute

是否可以在XML标记内注释一个或多个属性?类似于来自C的/* */

我尝试使用<!-- -->,但没有成功。

<element
    attribute1="value1"
    attribute2="value2"
    <!-- attribute3="value3" (commented value) -->
>

4 个答案:

答案 0 :(得分:33)

不,这是不可能的。 XML开放标记中不允许使用注释。根据您的应用程序,您可能会放弃&#34;评论&#34;这些属性的名称前缀为&#34; _&#34;,或者您可能没有(如果针对模式验证XML或解析所有属性)。由于允许使用空格,并且大多数编辑器支持行操作,因此您可以评论&#34;多种属性很容易这样:

<element
   _attr1="value1"
   _attr2="value2"
   _attr3="value3"
>

但这些属性仍然是文档的一部分。

答案 1 :(得分:12)

唯一合规的方法是创建一个没有相关属性的节点。我经常使用这种方法:

<div>
<!-- This opening div tag replaces the one above.
<div my-attribute="my-value"> -->
  div contents here...
</div>

澄清注释掉的开放标签的注释取决于您的需求(使用此代码的同事等)。

然后,当你需要改变一切时,只需将其改为:

<!-- <div>
This opening div tag replaces the one below. -->
<div my-attribute="my-value">
  div contents here...
</div>

同样,您对评论的需求会因每种情况而改变。

它很简单,允许你复制/粘贴以评论/取消评论,就像你在&#34;正常&#34;编码

答案 2 :(得分:6)

对不起,不,不是。

来自Wiam.org的Liam R. E. Quin :(当被问及是否可以在未来的XML版本中注释属性时):

  

> 
>     SGML allows this, with e.g.
>         <sock -- age="19" -- state="clean" -- id="s36" >
>         <shoe -- id="s12" ></sock>
>     being the same as
>         <sock state="clean" id="s12">
> 
> 
> 

     

但使用相同的开始&amp;结束分隔符造成了很多   问题,我们在定义XML时摆脱了这个功能。 ID   想要改变评论开始&amp;结束 - *和* - 这将有   让我们保持在标签内部发表评论的能力。声明   有一段时间它是在XML规范中,但我似乎记得它   由于SGML兼容性问题而丢弃。

     

我担心不可能以不兼容的方式更改XML    - 它变得太普遍了 - 我们不再有工作组这样做了   XML本身的积极工作。

     

感谢您的来信。

     

利安

答案 3 :(得分:4)

该操作无效。您无法评论xml节点标记的属性。如果您要为属性添加一些注释,请将注释放在目标节点上方。

< !-- -- >是将注释放在xml文件中的有效方法,但它应该作为xml节点放置,而不是&#34;节点属性&#34; (在另一个节点标签内)。

HTML示例:

<!-- I can comment before the node -->
<div>This node I want to comment</div>
<!-- I can comment after the node -->

但这是不允许的:

<div       <!--attribute="12" --> >

根据W3C documentation

  

请注意,评论是标记。

参考:

相关问题