pub fn wrap_xml(inner: &str) -> String {
format!("<?xml version=\"1.0\" encoding=\"UTF-8\"?>{inner}")
}
pub fn xml_escape(s: &str) -> String {
let mut out = String::with_capacity(s.len());
for c in s.chars() {
match c {
'&' => out.push_str("&"),
'<' => out.push_str("<"),
'>' => out.push_str(">"),
'"' => out.push_str("""),
'\'' => out.push_str("'"),
c if (c as u32) < 0x20 && c != '\t' && c != '\n' && c != '\r' => {
out.push_str(&format!("&#x{:X};", c as u32));
}
c => out.push(c),
}
}
out
}