Добиться того, что вы хотите, просто.
Вы создаете экземпляр XStream и настраиваете его (в приведенном ниже примере я должен установить псевдоним для PersonalVehicleCoverage
, поскольку статические внутренние классы сериализуются с префиксом содержащего класса.
Поскольку в примере не используется пакет, он сериализуется так, как вам требуется. Если ваши классы находятся в пакете, вы можете использовать что-то вроде этого для адаптации XML: xStream.aliasPackage("pre", "my.package");
Вот пример кода:
import java.sql.Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import com.thoughtworks.xstream.XStream;
public class XStreamDemo {
public static void main(String[] args) throws ParseException {
XStream xStream = new XStream();
xStream.alias("PersonalVehicleCoverage", PersonalVehicleCoverage.class);
PersonalVehicleCoverage object = new PersonalVehicleCoverage();
DateFormat dateFormat = new SimpleDateFormat("yyyy MMM DD");
object.EffectiveDate = new Date(dateFormat.parse("2011 Jan 1").getTime());
object.ExpirationDate = new Date(dateFormat.parse("2011 Jan 31").getTime());
System.out.println(xStream.toXML(object));
}
static class PersonalVehicleCoverage {
Date EffectiveDate;
Date ExpirationDate;
}
}
И вот результат этого примера:
<PersonalVehicleCoverage>
<EffectiveDate>2011-01-01</EffectiveDate>
<ExpirationDate>2011-01-31</ExpirationDate>
</PersonalVehicleCoverage>