Reputation: 2243
Are these nested comments allowed in a XML file?
<!-- Making only one observation attempting to correct the error code -->
<!-- <component>
<!-- Result observation template -->
<!-- <id root="2.16.840.1.113883.19.5.10" extension="103220"/>
</component> -->
Upvotes: 77
Views: 41083
Reputation: 21
Here is how I accomplished the task. It's quick and dirty, but it shows the process. It parses properly and uses the NP++ Block comment/uncomment style
Python:
dummyCoordinates = [(0,0),(1000,0),(1000,10000),(0,10000),]
comment1 = ET.Comment("<CutoutSubdesign>")
xmlTag.insert(1, comment1)
comment2 = ET.Comment("\t<Polygon>")
xmlTag.insert(2, comment2)
idxCount = 3
for X,Y in dummyCoordinates:
comment = ET.Comment("\t\t<Point x=\"{:.3f}um\" y=\"{:.3f}um\"/>".format(X,Y))
xmlTag.insert(idxCount, comment)
idxCount += 1
comment3 = ET.Comment("\t</Polygon>")
xmlTag.insert(idxCount, comment3)
comment4 = ET.Comment("</CutoutSubdesign>")
xmlTag.insert(idxCount + 1, comment4)
Result:
<!--<CutoutSubdesign>-->
<!-- <Polygon>-->
<!-- <Point x="0.000um" y="0.000um"/>-->
<!-- <Point x="1000.000um" y="0.000um"/>-->
<!-- <Point x="1000.000um" y="10000.000um"/>-->
<!-- <Point x="0.000um" y="10000.000um"/>-->
<!-- </Polygon>-->
<!--</CutoutSubdesign>-->
Upvotes: 0
Reputation: 1280
Without a workaround described below, it's not allowed because -- can't appear in a comment.
Potential solutions:
Upvotes: 0
Reputation: 385
Notepad++ together with the plugin XML Tools can do this.
Select a block of xml and on the xml tools submenu selected "Comment Selection".
Each existing "inner xml comment" will be altered so that it looks like this
<!{1}** inner xml comment **{1}>
and if you add another outer comment in this way, those original inner comments will be further altered to
<!{2}** inner xml comment **{2}>
Upvotes: 5
Reputation: 3031
As it is said in How do I comment out a block of tags in XML?, you can try to wrap your code with a non-existing processing-instruction, e.g.:
<?ignore
<component>
<!-- Result observation template -->
<!-- <id root="2.16.840.1.113883.19.5.10" extension="103220"/>
</component>
?>
Upvotes: 49
Reputation: 19603
No, the string --
is not permitted to appear within comments in XML. So the fact you have --
show up inside another comment is going to cause failures.
And trying to post that answer also broke the text entry parsing ;)
For further proof, check the W3C specification:
http://www.w3.org/TR/2008/REC-xml-20081126/#sec-comments
The phrase
For compatibility, the string " -- " (double-hyphen) MUST NOT occur within comments.]
appears in the first paragraph of the section on XML comments.
Upvotes: 60
Reputation: 75814
In a word - no.
The first encountered end-comment marker will, er... end the comment and the rest of it will look somewhat unpleasant from there on out.
Upvotes: 5
Reputation: 943569
You can't. --
both starts and terminates a comment. This makes nesting them impossible.
Upvotes: 4