Comprensión de XML CharData EBNF
Nov 13 2020
La siguiente regla EBNF expresada como
CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
me cuesta mucho entenderlo. ¿Alguien puede dar algunos ejemplos de cadenas válidas e inválidas? Una breve explicación de lo que se expresa en la regla también sería muy útil. Aunque quizás pidiendo un poco más. También sería muy bueno si tiene un fragmento interesante de código C ++ por ahí que ayude a detectar esta ocurrencia.
Respuestas
kjhughes Nov 13 2020 at 08:57
La producción de EBNF para CharData,
[14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
significa que los datos de caracteres XML pueden constar de cualquier carácter excepto
<, que inicia el marcado (etiquetas, comentarios, declaraciones XML, secciones CDATA y PI)&, que comienza con referencias a entidades,- la cadena de caracteres,
]]>que finaliza una sección CDATA.
Escapar:
- Escape
<como<en los datos de los personajes. - Escape
&como&en los datos de los personajes. ]]>no puede aparecer en datos de caracteres; no hay forma escapada.
Ver también:
- Menos en la gramática de la especificación w3c