2012-01-03 17 views
5

Volevo generare alcuni schemi XML per il mio progetto. Ho alcune classi Java, come questo:Genera schema XML dalla classe Java (o viceversa)

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() { 
    } 
} 

ho voluto generare uno schema XML in base a queste classi per il mio progetto, quindi gli altri sviluppatori possono creare un file XML in base a tale generato schema e possono convalidare le informazioni prima di inviarmi. Ma non so cosa sia meglio, per generare uno schema XML basato su una classe, o generare una classe basata su uno schema XML. Per favore, potresti indicare quali strumenti ci sono là fuori per farlo, e i vantaggi di utilizzare ognuno di questi approcci?

So che esiste uno strumento chiamato JAXB, ma non so se fa entrambi quei lavori, o nessuno di essi.

risposta

2

C'è uno strumento chiamato schemagen all'interno della directory JDK bin, che trasforma il file sorgente/classe java in uno schema XML. Vedi lo documentation.

3

Sì, JAXB può andare in entrambe le direzioni (usando le annotazioni). Controlla this question per maggiori informazioni e alcuni collegamenti.