XML 1.1与1.0
鉴于1.1中不再接受1.0中的某些字符,这是在xml元素上设置Text的正确方法吗?
如果元素e =新元素(“foo”)
我应该这样做:
e.setText(sanitized_text_illegal_characters_removed_or_escaped)?
或
e.setText(any_text)
答案 0 :(得分:2)
你已经倒退了:XML 1.1放宽了角色限制。 XML 1.0不允许大多数ASCII控制字符,XML 1.1允许除NUL之外的所有控制字符(都禁止代理)。
如果必须处理包含禁止字符的字符串,则有两种选择:使用依赖于应用程序的方案转义它们,或者删除它们。请注意,不能使用XML character reference(也就是数字实体)来“转义”值;解析器将翻译这些引用并拒绝它们。
但是,在你遇到麻烦之前,你应该验证你真的必须这样做。