【问题标题】:How do I comment attributes inside an XML tag?如何评论 XML 标记内的属性?
【发布时间】:2014-12-15 05:05:40
【问题描述】:

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

我曾尝试使用<!-- -->,但不成功。

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

【问题讨论】:

    标签: xml comments xml-comments xml-attribute


    【解决方案1】:

    来自 w3.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">
     

    但是使用相同的开始和结束分隔符导致了很多 问题,我们在定义 XML 时就去掉了这个特性。 ID 想将评论开始和结束更改为 --* 和 *-- 这将 让我们保持在标签和声明中包含 cmets 的能力, 有一段时间它在 XML 规范中,但我似乎记得它是 由于 SGML 兼容性问题而被丢弃。恐怕不是 以不兼容的方式更改 XML 的可能性不再 - 它也变得 无处不在——我们不再有一个工作组在 XML 本身。

    感谢您的来信。

    利亚姆

    【讨论】:

    • 你有这个报价的来源吗?
    • Liam 给我的一封电子邮件。
    【解决方案2】:

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

    &lt; !-- -- &gt; 是将 cmets 放入 xml 文件的有效方式,但它应作为 xml 节点放置,而不是“节点属性”(在另一个节点标记内)。

    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

    注意 cmets 是标记。

    参考:

    【讨论】:

      【解决方案3】:

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

      <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>
      

      同样,您对评论的需求将随每个案例而变化。

      它很简单,允许您像在“正常”编码中一样复制/粘贴以注释/取消注释。

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

        • 有趣的一个
        猜你喜欢
        • 2011-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-24
        • 1970-01-01
        • 1970-01-01
        • 2012-12-10
        • 2011-09-16
        相关资源
        最近更新 更多