¿Cómo puedo comentar una sola línea en XML?

123

Esto más bien es una verificación para no perderse.

¿Hay / no hay un comentario de línea en XML? Entonces, uno sin un cerrador, como "//" usa el compilador.

Vi ¿Cómo comento un bloque de etiquetas en XML? y varias otras discusiones.

Este tipo de comentario sería práctico para comentar una línea sin molestar a su cerrador en algún lugar hacia abajo.

Vagar
fuente
2
XML está diseñado bajo el supuesto de que herramientas como los editores a menudo realizarán ajustes de palabras y que, por lo tanto, las terminaciones de línea son frágiles. Sería una mala idea si los finales de línea tuvieran que preservarse solo en caso de comentarios.
Michael Kay
2
Seguramente los editores solo ajustan líneas para su visualización . Nunca he sabido que se agreguen nuevas líneas duras arbitrariamente al archivo en sí. Es una molestia infernal no tener un comentario de línea.
John White

Respuestas:

147

No, no hay forma de comentar una línea en XML y hacer que el comentario finalice automáticamente en un salto de línea.

XML solo tiene una definición para un comentario :

'<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'

XML prohíbe los --comentarios para mantener la compatibilidad con SGML .

kojiro
fuente
Una solución alternativa es usar comentarios de línea ( //) y ejecutar un script para eliminar esos comentarios antes de usarlos (puede ser parte de un proceso de compilación de un solo paso). Es una forma mucho más conveniente de usar los comentarios. (He utilizado esta técnica con la fuente WiX (herramienta de instalación para Windows). Se requirieron otros pasos para compilar el instalador, por lo que este fue solo un paso más para agregar a un script / proceso de compilación.)
Peter Mortensen
20

Como han dicho otros, no hay forma de hacer un comentario de una sola línea legalmente en XML que comente varias líneas, pero hay maneras de facilitar la observación de segmentos de XML.

Mirando el ejemplo a continuación, si agrega '>' a la línea uno, el XmlTag no tendrá comentarios. Elimine el '>' y se volverá a comentar. Esta es la forma más sencilla en la que he visto comentar / descomentar rápidamente XML sin romper cosas.

<!-- --
<XmlTag variable="0" />
<!-- -->

El beneficio adicional es que solo manipulas el comentario superior, y el comentario inferior puede quedarse ahí para siempre. Esto rompe la compatibilidad con SGML y algunos analizadores XML lo molestarán. Mientras este no sea un elemento permanente en su XML, y sus analizadores lo acepten, no es realmente un problema.

El resaltador de sintaxis de Stack Overflow y Notepad ++ lo trata como un comentario de varias líneas, la biblioteca Boost de C ++ lo trata como un comentario de varias líneas, y el único analizador que he encontrado hasta ahora que se rompe es el de .NET, específicamente C #. Por lo tanto, asegúrese de probar primero que sus herramientas, IDE, bibliotecas, idioma, etc., lo acepten antes de usarlo.

Si le importa la compatibilidad SGML, simplemente use esto en su lugar:

<!-- -
<XmlTag variable="0" />
<!- -->

Agregue '->' al comentario superior y un '-' al comentario inferior. La desventaja es tener que editar el comentario inferior cada vez, lo que probablemente facilitaría escribir simplemente en <!--la parte superior e -->inferior cada vez.

También quiero mencionar que otros comentaristas recomiendan usar un editor XML que le permita hacer clic con el botón derecho y comentar / descomentar bloques de XML, lo que probablemente sea preferible a los trucos de buscar / reemplazar sofisticados (también sería una buena respuesta en sí misma, pero nunca he usado tales herramientas. Solo quiero asegurarme de que la información no se pierda con el tiempo). Personalmente, nunca tuve que lidiar con XML lo suficiente como para justificar tener un editor más elegante que Notepad ++, por lo que esto depende totalmente de usted.

Shaz
fuente
3
Lamentablemente, esto está mal. La especificación dice: Por compatibilidad, la cadena "-" (guión doble) NO DEBE aparecer dentro de los comentarios.
kojiro
2
Por supuesto que no es legal. La especificación es clara en eso. Los analizadores XML pueden seguir la Ley de Postel y dejar que te salgas con la tuya, pero un verificador de buena conformidad lo marcará.
kojiro
44
Como dice @kojiro, un comentario que contiene "-" no es un XML bien formado. La frase sobre "Por compatibilidad" es simplemente los editores de especificaciones que indican su razón para incluir esta horrible regla: no significa que pueda ignorar la regla si no está interesado en la compatibilidad. Votando la respuesta como incorrecta.
Michael Kay
10
Puede escribirlo <!-- ->y hacer que se trate de agregar un guión en lugar de tener un formato que no sea XML.
kojiro
3
@RyanWH continúa haciendo lo que funciona para usted, pero parece depender de un error en el analizador XML que está utilizando. Personalmente, utilizo un IDE (oXygen) que me permite seleccionar un fragmento de texto XML, hacer clic con el botón derecho y solicitar comentarlo. Lo cual parece mucho más fácil que tu técnica.
Michael Kay
12

Es lo mismo que los comentarios de bloque HTML o JavaScript:

<!-- The to-be-commented XML block goes here. -->
nassim
fuente
5

No es ortodoxo, pero a veces me funciona; establece tu comentario como otro atributo:

<node usefulAttr="foo" comment="Your comment here..."/>
j rdl
fuente