you can register your converter that adds the desired versioning tag to your root element
Domain class
class Person {
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
Converter
class PersonConverter implements Converter {
    public boolean canConvert(Class clazz) {
        return clazz.equals(Person.class);
    }
    public void marshal(Object value, 
                        HierarchicalStreamWriter writer, 
                        MarshallingContext context) {
        Person person = (Person) value;
        writer.addAttribute("version", "0");
        writer.startNode("fullname");
        writer.setValue(person.getName());
        writer.endNode();
    }
    public Object unmarshal(HierarchicalStreamReader reader, 
                            UnmarshallingContext context) {
        Person person = new Person();
        reader.moveDown();
        person.setName(reader.getValue());
        reader.moveUp();
        return person;
    }
}
testcase
@Test
public void versioning() {
    Person person = new Person();
    person.setName("Davide");
    XStream xStream = new XStream(new DomDriver());
    xStream.registerConverter(new PersonConverter());
    xStream.alias("person", Person.class);
    System.out.println(xStream.toXML(person));
}
output
<person version="0">
  <fullname>Davide</fullname>
</person>
a better solution is to decorate the default converter provided by XStream to add 
versioning attribute to all domain objects without writing one Converter
class for each of them