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

Ntr*_*ess 53 xml comments xml-attribute xml-comments

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

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

<element
    attribute1="value1"
    attribute2="value2"
    <!-- attribute3="value3" (commented value) -->
>
Run Code Online (Sandbox Code Playgroud)

Jer*_*ert 36

不,这是不可能的.XML开放标记中不允许使用注释.根据您的应用程序,您可能会通过在其名称前加上"_"来"注释掉"属性,或者您可能不会(如果根据模式验证XML或解析所有属性).由于允许使用空格,并且大多数编辑器支持行操作,因此您可以通过以下方式轻松"注释"多个属性:

<element
   _attr1="value1"
   _attr2="value2"
   _attr3="value3"
>
Run Code Online (Sandbox Code Playgroud)

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


And*_*ndy 12

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

<div>
<!-- This opening div tag replaces the one above.
<div my-attribute="my-value"> -->
  div contents here...
</div>
Run Code Online (Sandbox Code Playgroud)

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

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

<!-- <div>
This opening div tag replaces the one below. -->
<div my-attribute="my-value">
  div contents here...
</div>
Run Code Online (Sandbox Code Playgroud)

同样,您对评论的需求将随着每种情况而变化.

它很简单,允许您像"普通"编码一样复制/粘贴注释/取消注释.


Ber*_*eri 7

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

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

HTML 示例:

<!-- I can comment before the node -->
<div>This node I want to comment</div>
<!-- I can comment after the node -->
Run Code Online (Sandbox Code Playgroud)

但这是不允许的:

<div       <!--attribute="12" --> >
Run Code Online (Sandbox Code Playgroud)

根据W3C 文档

请注意,注释是标记。

参考:


ggb*_*667 6

对不起,不,不是.

来自W3.org的Liam RE 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">
> 
> 
> 
Run Code Online (Sandbox Code Playgroud)

但是使用相同的开始和结束分隔符会导致很多问题,我们在定义XML时就摆脱了这个功能.我想将评论开始和结束更改为 - *和* - 这将让我们能够在标记和声明中保留注释,并且有一段时间它在XML规范中,但我似乎记得由于SGML兼容性问题,它被删除了.

我担心不再可能以不兼容的方式更改XML - 它变得太普遍了 - 而且我们不再让工作组在XML本身中积极地工作.

谢谢你的写作.

利亚姆

  • 来自 Liam 的一封电子邮件给我个人。 (3认同)