Sé que esto es una vieja pregunta, pero voy a publicar mi solución después de un googlear toda la mañana. La respuesta es proporcionar nodo raíz ficticio (etiquetas de inicio y terminación). Con el fin de lograr esto, uno de sus mejores amigos es SequenceInputStream:
Mi código es el siguiente:
reader = new XppDriver().createReader(new SequenceInputStream(
Collections.enumeration(Arrays.asList(
new InputStream[] {
new ByteArrayInputStream("<PlatformAuditEvents>".getBytes()),
new FileInputStream(file),
new ByteArrayInputStream("</PlatformAuditEvents>".getBytes())
}))
));
in = xstream.createObjectInputStream(reader);
Aquí he mezclado tres objetos InputStream, siendo las primera y la tercera los que proporcionan la necesaria etiquetas faltantes en el archivo procesado.
Esta solución se inspiró en este SO Question. Espero que esto ayude a alguien.
Parece que ha habido una conversación al respecto, y tiene sentido. está basado en un analizador XML, y XML debe contener un nodo raíz. Parece que la respuesta es "no puede". http://www.nabble.com/Serializing-JSON-with-no-root--td21732630.html –