public String toXML(PackageDefinition def) {
start("package");
if (def.getType() != null) {
attr("type", def.getType().getValue());
attr("name", def.getName());
if (def.getVersion() != null) {
attr("version", def.getVersion().toString());
element("title", def.getTitle());
element("description", def.getDescription());
element("vendor", def.getVendor());
element("classifier", def.getClassifier());
element("home-page", def.getHomePage());
element("hotreload-support", Boolean.valueOf(def.supportsHotReload()).toString());
element("supported", Boolean.valueOf(def.isSupported()).toString());
element("require-terms-and-conditions-acceptance", Boolean.valueOf(def.requireTermsAndConditionsAcceptance())
.toString());
element("production-state", def.getProductionState().toString());
element("nuxeo-validation", def.getValidationState().toString());
if (def.getInstaller() != null) {
start("installer");
attr("class", def.getInstaller().getType());
attr("restart", String.valueOf(def.getInstaller().getRequireRestart()));
end();
if (def.getUninstaller() != null) {
start("uninstaller");