it-swarm.dev

Como comento atributos dentro de uma tag XML?

É possível comentar um ou vários atributos dentro de uma tag XML? Algo como /* */ de C.

Eu tentei usar <!-- -->, mas não teve êxito.

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

Não, isso não é possível. Comentários não são permitidos em uma marca aberta XML. Dependendo do seu aplicativo, você pode "comentar" os atributos prefixando os nomes com "_" ou não (se o XML for validado em um esquema ou se todos os atributos forem analisados). Como o espaço em branco é permitido e a maioria dos editores suporta operações de linha, você pode "comentar" vários atributos facilmente desta maneira:

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

Mas esses atributos ainda fazem parte do documento.

35
Jeroen Mostert

A única maneira compatível é criar um nó sem o atributo em questão. Eu regularmente uso esta abordagem:

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

O comentário para esclarecer qual é a tag aberta comentada depende da sua necessidade (colegas de trabalho usando esse código etc.).

Então, quando você precisar mudar as coisas, simplesmente mude para:

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

Novamente, sua necessidade de comentar mudará a cada caso.

É simples e permite copiar/colar para comentar/descomentar como faria na codificação "normal".

12
Andy

Desculpe, não, não é.

De Liam R. E. Quin, em w3.org: (Questionado se era possível comentar atributos, se não agora, em uma versão futura do 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">
> 
> 
> 

mas o uso do mesmo delimitador de início e fim causou muitos problemas e nos livramos desse recurso quando definimos XML. Eu queria mudar o início e o fim do comentário para - * e * - o que nos permitiria manter a capacidade de ter comentários dentro de tags e declarações e, durante algum tempo, estava na especificação XML, mas me lembro foi descartado devido a problemas de compatibilidade com SGML.

Receio que não seja mais possível alterar o XML de maneiras incompatíveis - ele se tornou muito difundido - e não temos mais um Grupo de Trabalho realizando trabalho ativo no próprio XML.

Obrigado por escrever.

Liam

6
ggb667

Essa operação não é válida. Você não pode comentar atributos de tags de nó xml. Se você deseja adicionar alguns comentários aos seus atributos, coloque-o acima do nó de destino.

< !-- -- > é uma maneira válida de inserir comentários em um arquivo xml, mas deve ser colocado como um nó xml, não como um "atributo do nó" (dentro de outra tag do nó).

Exemplo com HTML:

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

Mas isso não é permitido:

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

De acordo com documentação do W3C

Observe que os comentários são de marcação.

Referência:

4
Beri