Pergunta

Então, estou escrevendo algum código de geração de XML e descobri que o seguinte valor de atributo estava estragando a formatação XML:

"Jim/Bob"

Então, olhei para as entidades XML usadas como sequências de fuga e todas as listas que vi não incluíam uma para a barra para a frente. Estou perdendo algo óbvio aqui? Parece o tipo de coisa que você gostaria de escapar ...

Foi útil?

Solução

A barra para a frente é válida como está e não precisa de mais codificação.

Os únicos caracteres reservados são:

>
<
&
%

Para ainda mais entidades XML - http://en.wikipedia.org/wiki/list_of_xml_and_html_character_entity_references

Outras dicas

Eu sei que isso não era o problema, mas achei que seria útil mencionar que, além da resposta de Bobince, o Fração Slash Entidade html &frasl; parece Assim como uma barra para a frente. Apenas caso qualquer pessoa que chegue a esta página na verdade faz Quer uma entidade HTML para algo que representa uma barra para a frente.

Não há referência de entidade predefinida, mas você pode usar uma referência de caractere: "/".

No entanto, você não precisa escapar / para inclusão no XML. Pode ser necessário incluí -lo para inclusão em outra coisa, por exemplo, uma parte do caminho do URI. Mas então você teria que escapar desse formato primeiro; O aplicativo que capta o URI não teria nenhuma maneira de saber se você o codificou no XML ou não.

Eu não acho que os comentários neste tópico estejam totalmente corretos, pois se você usar um esquema (XSD), poderá definir elementos com nomes Jim, Bob e Jim/Bob sem problemas. Mas então quando você deseja definir o elemento e a entidade:

<names>
  <Jim>Carrey</Jim>
  <Bob>Jones</Bob>
  <Jim/Bob>Six figured Hillbilly</Jim/Bob>
</names>

Os problemas são óbvios.

Para sua informação, embora uma barra seja XML válida, observe como está sendo usado a jusante. Usamos para conectar a uma fila de ônibus do Azure. O próprio Azure gerou teclas com barras nas cordas de conexão, mas depois quebrou silenciosamente quando tentamos usá -las. Escapando deles com “&#47;” fez funcionar

"Jim&#47;Bob"

Não vejo por que um valor de "Jim/Bob" precisaria escapar ou causar algum problema ao XML.

Você provavelmente tem um atributo restrito, conforme definido no esquema XML.

Não sei o que você quer dizer com formatação XML.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top