Esquemas XSD permitindo caracteres especiais/reservados na etiqueta do elemento de string

StackOverflow https://stackoverflow.com/questions/806191

  •  03-07-2019
  •  | 
  •  

Pergunta

Em uma tag de elemento de string, o analisador XML receberá confuso Se encontrar os seguintes caracteres

'
"
<
>

&

(ou seja, digamos que o nome da empresa foi recuperado de um campo de banco de dados, e parece assim: "Smith & Sons")

A questão é: como você pode projetar seu XSD para ignorar esses caracteres se encontrado em um elemento?

Foi útil?

Solução

Você não pode fazê -lo ignorar esses personagens.

Eles são inválido em XML e, portanto, precisam ser escapados ou embrulhados em seções CDATA. Não há como esses personagens aparecerem em XML a não ser que Você constrói o XML usando meios inadequados (a saber: concatenação de string).

Se você criar seu XML usando meios adequados (uma biblioteca XML de alguns tipos), esses caracteres são substituídos por seus colegas de capas XML de forma transparente e nenhum analisador reclamará.

Outras dicas

A resposta é que você não.

O criador do conteúdo XML deve colocá -los em seções CDATA.

Se você extrair "Smith & Sons" do banco de dados, ele deve ser escapado quando inserido em seu XML

por exemplo, o exposto acima se tornará 'Smith & Sons'

Da mesma forma para os outros personagens acima.

Como isso acontece depende de como você cria seu conteúdo XML. Se estiver usando uma API como o DOM, isso deve acontecer automaticamente. Se você estiver montando seu XML manualmente, precisará se preocupar com isso (e outros problemas como a codificação de personagens - o que significa que usar uma API é a opção preferível aqui).

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