function xml.sax.saxutils.escape('\x00qweqwe<') returns '\x00qweqwe<' \x00 did not escaped to � is this is a correct behavior? this is influences tools like xmpppy, which sends \x00 not encoded and leads to xmpp error.
>This is correct behavior. \x00 is not supported in XML: > not in raw form, and not in escaped form last sentence in forth paragraph of section 1.3 in XML 1.1 specification says following: ====== Due to potential problems with APIs, #x0 is still forbidden both directly and as a character reference. ====== And, second sentence in paragraph 2 in subsection 'Validity constraint: Notation Declared' of section 4.2.2 says following: ====== The characters to be escaped are the control characters #x0 to #x1F and #x7F (most of which cannot appear in XML), space #x20, the delimiters '<' #x3C, '>' #x3E and '"' #x22, the unwise characters '{' #x7B, '}' #x7D, '|' #x7C, '\' #x5C, '^' #x5E and '`' #x60, as well as all characters above #x7F. ====== (xml 1.1) http://www.w3.org/TR/2006/REC-xml11-20060816/ (xml 1.0) http://www.w3.org/TR/2008/REC-xml-20081126/
The characters are forbidden both in raw form *and* in escaped form. So even if they get escaped, they *still* will lead to errors. So there is no point in escaping them.