XML (и, следовательно, XHTML) может содержать только эти символы:
\x09 \x0A \x0D
\x{0020}-\x{D7FF}
\x{E000}-\x{FFFD}
\x{10000}-\x{10FFFF}
Из вышесказанного следует избегать следующего:
\x7F-\x84
\x86-\x9F
\x{FDD0}-\x{FDEF}
\x{1FFFE}-\x{1FFFF}
\x{2FFFE}-\x{2FFFF}
\x{3FFFE}-\x{3FFFF}
\x{4FFFE}-\x{4FFFF}
\x{5FFFE}-\x{5FFFF}
\x{6FFFE}-\x{6FFFF}
\x{7FFFE}-\x{7FFFF}
\x{8FFFE}-\x{8FFFF}
\x{9FFFE}-\x{9FFFF}
\x{AFFFE}-\x{AFFFF}
\x{BFFFE}-\x{BFFFF}
\x{CFFFE}-\x{CFFFF}
\x{DFFFE}-\x{DFFFF}
\x{EFFFE}-\x{EFFFF}
\x{FFFFE}-\x{FFFFF}
\x{10FFFE}-\x{10FFFF}
Если вы генерируете XHTML, вам нужно экранировать следующее:
&
& rArr; &
<
& rArr; <
>
& rArr; >
(необязательно)
"
& rArr; "
(необязательно, кроме значений атрибутов, ограниченных "
)
'
& rArr; '
(необязательно, кроме значений атрибутов, ограниченных '
)
HTML должен иметь такие же, если не более жесткие требования, поэтому, если вы будете придерживаться этого, вы должны быть в безопасности.