web-dev-qa-db-fra.com

Comment commenter des attributs à l'intérieur d'une balise XML?

Est-il possible de commenter un ou plusieurs attributs à l'intérieur d'une balise XML? Quelque chose comme /* */ de C.

J'ai essayé d'utiliser <!-- -->, mais sans succès.

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

Non, ce n'est pas possible. Les commentaires ne sont pas autorisés dans une balise ouverte XML. Selon votre application, vous pouvez vous en sortir avec "commenter" les attributs en préfixant leurs noms par "_", ou vous ne pouvez pas (si le XML est validé par rapport à un schéma ou si tous les attributs sont analysés). Étant donné que les espaces sont autorisés et que la plupart des éditeurs prennent en charge les opérations de ligne, vous pouvez facilement "commenter" plusieurs attributs de cette façon:

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

Mais ces attributs font toujours partie du document.

35
Jeroen Mostert

La seule manière conforme consiste à créer un nœud sans l'attribut en question. J'utilise régulièrement cette approche:

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

Le commentaire pour clarifier ce qu'est la balise ouverte commentée dépend de vos besoins (collègues utilisant ce code, etc.).

Ensuite, lorsque vous devez déplacer des choses, changez-le simplement en:

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

Encore une fois, votre besoin de commenter changera avec chaque cas.

C'est simple et vous permet de faire du copier/coller pour commenter/décommenter comme vous le feriez dans le codage "normal".

12
Andy

Désolé, ce n'est pas le cas.

De Liam R. E. Quin à w3.org: (a demandé s'il était possible de commenter les attributs sinon maintenant dans une future version de 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">
> 
> 
> 

mais l'utilisation du même délimiteur de début et de fin a causé beaucoup de problèmes, et nous nous sommes débarrassés de cette fonctionnalité lorsque nous avons défini XML. Je voulais changer le début et la fin des commentaires en - * et * - ce qui nous aurait laissé la possibilité d'avoir des commentaires dans les balises et les déclarations, et pendant un certain temps, c'était dans la spécification XML, mais je semble me souvenir il a été supprimé en raison de problèmes de compatibilité SGML.

Je crains qu'il ne soit plus possible de modifier XML de manière incompatible - il est devenu trop omniprésent - et nous n'avons plus de groupe de travail effectuant un travail actif sur XML lui-même.

Merci d'avoir écrit.

Liam

6
ggb667

Cette opération n'est pas valide. Vous ne pouvez pas commenter les attributs des balises de noeud xml. Si vous souhaitez ajouter des commentaires à vos attributs, placez votre commentaire au-dessus du nœud cible.

< !-- -- > est un moyen valide de placer des commentaires dans un fichier xml, mais il doit être placé en tant que nœud xml, et non en tant qu '"attribut de nœud" (à l'intérieur d'une autre balise de nœud).

Exemple avec HTML:

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

Mais cela n'est pas autorisé:

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

Selon documentation W3C

Notez que les commentaires sont des balises.

Référence:

4
Beri