Więcej
Jakich znaków muszę unikać w dokumentach XML?
Jakie znaki muszą być escape'owane w dokumentach XML, lub gdzie mógłbym znaleźć taką listę?
885
3
Jeśli użyjesz odpowiedniej klasy lub biblioteki, wykonają one ucieczkę za Ciebie. Wiele problemów z XML jest spowodowanych przez konkatenację łańcuchów.
Znaki ucieczki XML
Jest ich tylko pięć:
Unikanie znaków zależy od tego, gdzie znak specjalny jest używany.
Przykłady mogą być zweryfikowane na stronie W3C Markup Validation Service.
Text
Bezpiecznym sposobem jest ucieczka wszystkich pięciu znaków w tekście, jednakże, trzy znaki
"
,'
i>
nie muszą być ucieczką w tekście:Attributes
Bezpiecznym sposobem jest ucieczka wszystkich pięciu znaków w atrybutach, jednakże znak
>
nie musi być ucieczką w atrybutach:Znak
'
nie musi być escape'owany w atrybutach, jeśli cudzysłów jest"
:Podobnie, znak
"
nie musi być escape'owany w atrybutach, jeśli cudzysłów jest'
:Komentarze
Wszystkie 5 znaków specjalnych nie mogą być escape'owane w komentarzach:
CDATA
Wszystkie 5 znaków specjalnych nie mogą być escape'owane w sekcjach CDATA:
Może to pomoże:
Lista referencji encji znaków XML i HTML:
W tym artykule wymieniono pięć następujących predefiniowanych encji XML:
oprócz powszechnie znanych pięciu znaków [, &, ", '], uciekłbym również od znaku pionowej tabulacji (0x0B). Jest to prawidłowy UTF-8, ale nie prawidłowy XML 1.0, a nawet wiele bibliotek (włączając libxml2) pomija go i po cichu wypisuje nieprawidłowy XML.