Comprendre XML CharData EBNF
Nov 13 2020
La règle EBNF suivante exprimée en
CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
est vraiment difficile pour moi de comprendre. Quelqu'un peut-il donner quelques exemples de chaînes valides et non valides. Une brève explication de ce qui est exprimé dans la règle serait également très utile. Bien que peut-être demander un peu beaucoup. Ce serait également très bien si vous aviez un extrait de code C ++ intéressant qui vous aidera à détecter cette occurrence.
Réponses
kjhughes Nov 13 2020 at 08:57
La production EBNF pour CharData,
[14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
signifie que les données de caractères XML peuvent être composées de n'importe quel caractère sauf
<, qui commence le balisage (balises, commentaires, déclarations XML, sections CDATA et PI)&, qui commence les références d'entité,- la chaîne de caractères,
]]>qui termine une section CDATA.
S'échapper:
- S'échapper
<comme<dans les données de caractères. - S'échapper
&comme&dans les données de caractères. ]]>ne peut pas apparaître dans les données de caractères; il n'y a pas de forme échappée.
Voir également:
- Moins dans la grammaire des spécifications W3C