Интересно, допустим ли 0x12 даже в XML 1.1. См. сводку о разнице 1,0 против 1,1. В частности:
Кроме того, XML 1.1 позволяет вам
есть контрольные символы в вашем
документы с использованием символов
Рекомендации. Это касается контроля
символы с # x1 по # x1F, большинство
которые запрещены в XML 1.0. это
означает, что ваш документ теперь может
включите символ звонка, как это:
, Тем не менее, вы все еще не можете иметь
эти символы появляются прямо в
ваши документы; это нарушает
определение типа пантомимы, используемого для
XML (текст / xml).
Xerces может анализировать XML 1.1, но, похоже, ожидает, что объект 
вместо истинного символа 0x12:
val s = "<?xml version='1.1'?><root>\u0012</root>"
// causes An invalid XML character (Unicode: 0x12)
//XML.loadXML(xml.Source.fromString(s), XML.parser)
val u = "<?xml version='1.1'?><root></root>"
val v = XML.loadXML(xml.Source.fromString(u), XML.parser)
println(v) // works
Как подсказывает lavinio, вы можете отфильтровать недопустимые символы. Это не занимает слишком много строк в Scala:
val in = new InputStream {
val in0 = new FileInputStream("invalid.xml")
override def read():Int = in0.read match { case 0x12=> read() case x=> x}
}
val x = XML.load(in)