How do I comment attributes inside an XML tag?

27,745

Solution 1

No, this isn't possible. Comments are not allowed in an XML open tag. Depending on your application, you might get away with "commenting out" the attributes by prefixing their names with "_", or you might not (if the XML is validated against a schema or all attributes are parsed). Because whitespace is allowed, and most editors support line operations, you can "comment" multiple attributes easily this way:

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

But these attributes are still part of the document.

Solution 2

The only compliant way is to create a node without the attribute in question. I regularly use this approach:

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

The comment to clarify what the commented-out open tag is depends on your need (co-workers using this code, etc.).

Then, when you need to shift things around, simply change it to:

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

Again, your need for commenting will change with each case.

It's simple and allows you to do copy/paste to comment/uncomment as you would in "normal" coding.

Solution 3

From Liam R. E. Quin at w3.org: (Asked if it were possible to comment out attributes if not now then in a future version of 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">
 

But the use of the same start & end delimiter caused a lot of problems, and we got rid of that feature when we defined XML. I'd wanted to change comment start & end to --* and *-- which would have let us keep the ability to have comments inside tags & declarations, and for a while it was in the XML spec, but I seem to remember it was dropped because of SGML compatibility problems. I'm afraid it's no longer possible to change XML in incompatible ways - it has become too pervasive - and we no longer have a Working Group doing active work in XML itself.

Thank you for writing.

Liam

Solution 4

That operation is not valid. You can't comment attributes of xml node tags. If you are looking to add some comments to your attributes, place your comment above target node.

< !-- -- > is a valid way to put comments inside an xml file, but it should be placed as a xml node, not a "node attribute" (inside another node tag).

Example with HTML:

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

But this is not allowed:

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

According to W3C documentation

Note that comments are markup.

Reference:

Share:
27,745
Ntropy Nameless
Author by

Ntropy Nameless

Updated on July 05, 2022

Comments

  • Ntropy Nameless
    Ntropy Nameless almost 2 years

    Is it possible to comment one or several attributes inside an XML tag? Something like /* */ from C.

    I have tried using <!-- -->, but it was unsuccessful.

    <element
        attribute1="value1"
        attribute2="value2"
        <!-- attribute3="value3" (commented value) -->
    >
    
  • Stevoisiak
    Stevoisiak over 6 years
    Do you have a source for this quote?
  • ggb667
    ggb667 over 6 years
    An email fromn Liam to me personally.
  • Pacerier
    Pacerier almost 4 years
    Interesting one