从Java类生成XML Schema(或相反)

时间:2012-01-03 23:19:15

标签: java xsd

我想为我的项目生成一些XML Schema。我有一些Java类,比如这个:

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

我想基于我的项目的那些类生成XML Schema,因此其他开发人员可以基于生成的Schema构建XML文件,他们可以在发送给我之前验证信息。但我不知道什么是最好的,基于类生成XML Schema,或者基于XML Schema生成类。请问,您能指出那里有哪些工具可以做到,以及使用这些方法的优势吗?

我知道有一个名为JAXB的工具,但我不知道它是否同时完成这两项工作。

3 个答案:

答案 0 :(得分:10)

答案 1 :(得分:4)

在JDK schemagen目录中有一个名为bin的工具,它将java源/类文件转换为XML模式。请参阅documentation

答案 2 :(得分:3)

是的,JAXB可以双向使用(使用注释)。查看this question了解更多信息和一些链接。