Genera schema XML dalla classe Java (o il contrario)
Volevo generare alcuni schemi XML per il mio progetto. Ho alcune classi Java, come questa:
package com.fortresswars.entity;
import com.fortresswars.entity.properties.Armor;
import com.jme3.scene.Spatial;
public abstract class Object extends Thing {
public Armor armor;
public short hpMax;
public boolean walkable = false;
public short hpCurrent;
public boolean alive;
public Spatial object;
public GameObject() {
this.hpMax = hpMax;
this.hpCurrent = hpMax;
}
public void setAlive(boolean alive) {
this.alive = alive;
}
public void setHpCurrent(short hpCurrent) {
this.hpCurrent = hpCurrent;
}
public void addHpCurrent(short hpToAdd) {
this.hpCurrent += hpToAdd;
}
}
package com.fortresswars.entity;
import com.jme3.texture.Image;
import eu.javaspecialists.tools.apt.NoArgsConstructor;
@NoArgsConstructor
public abstract class Thing {
Image icon;
public Thing() {
}
}
Volevo generare uno schema XML basato su quelle classi per il mio progetto, così gli altri sviluppatori possono creare un file XML basato su quello schema generato e possono convalidare le informazioni prima di inviarmi. Ma non so cosa sia meglio, generare uno schema XML basato su una classe o generare una classe basata su uno schema XML. Per favore, potrebbe indicare cosa strumenti c'è là fuori per farlo, e i vantaggi di utilizzare ciascuno di questi approcci?
So che esiste uno strumento chiamato JAXB, ma non lo so se fa entrambi quei lavori, o nessuno di essi.
3 answers
JAXB può fare entrambe le cose
C'è uno strumento chiamato schemagen
all'interno della directory JDK bin
, che trasforma il file sorgente/classe java in uno schema XML. Vedere la documentazione .
Sì, JAXB può andare in entrambe le direzioni (usando le annotazioni). Controlla questa domanda per maggiori informazioni e alcuni link.