Compreendendo XML CharData EBNF
Nov 13 2020
A seguinte regra EBNF expressa como
CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
é muito difícil para mim entender. Alguém pode dar alguns exemplos de strings válidas e inválidas. Uma breve explicação do que está sendo expresso na regra também seria muito útil. Embora talvez pergunte um pouco demais. Também seria muito bom se você tivesse um snippet interessante de código C ++ por aí que ajudasse a detectar essa ocorrência.
Respostas
kjhughes Nov 13 2020 at 08:57
A produção de EBNF para CharData,
[14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
significa que os dados de caracteres XML podem consistir em quaisquer caracteres, exceto
<, que começa a marcação (tags, comentários, declarações XML, seções CDATA e PIs)&, que inicia referências de entidade,- a sequência de caracteres
]]>,, que termina uma seção CDATA.
Escapando:
- Escape
<como<nos dados do personagem. - Escape
&como&nos dados do personagem. ]]>não pode aparecer nos dados do personagem; não há forma de escape.
Veja também:
- Menos na gramática de especificação w3c
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino