使用Schemagen从java类变成schema
1.编写一个自己需要的java类
package com.soa.my.java2schema; public class Product { private static final long serialVersionUID=12345L; private String name; private int price; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } public Product() { super(); } }
2.下载xjc工具,可以到下面的链接进行下载:
http://download.csdn.net/detail/u013998070/8569667
3.打开命令行,调整到xjc工具包的bin 目录
如果不清楚需要输入什么,可以直接输入Schemagen命令进行查看,如下
4.在命令行输入相关指令,如下图
5.生成的schema.xsd文件内容如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:complexType name="product"> <xs:sequence> <xs:element name="name" type="xs:string" minOccurs="0"/> <xs:element name="price" type="xs:int"/> </xs:sequence> </xs:complexType> </xs:schema>
6.结果分析,从上面的schema中我们可以看出,该schema文件并没有命名空间;而且生成的是complexType
而不是element,要想改变该问文件的内容,则需要对product.java使用jaxb注解
productAnnoction.java如下
package com.soa.my.java2schema; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; @XmlRootElement(name="productAnnoaction1",namespace="my.soa.java2schema.com") @XmlType(namespace="my.soa.java2schema.com") public class ProductAnnoction { private static final long serialVersionUID=12345L; @XmlElement(defaultValue="gzy") private String name; private int price; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } public ProductAnnoction() { super(); } }
运行命令行,生成的文件如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <xs:schema version="1.0" targetNamespace="my.soa.java2schema.com" xmlns:tns="my.soa.java2schema.com" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="productAnnoaction1" type="tns:productAnnoction"/> <xs:complexType name="productAnnoction"> <xs:sequence> <xs:element name="version" type="xs:string" default="1.0" minOccurs="0"/> <xs:element name="name" type="xs:string" minOccurs="0"/> <xs:element name="price" type="xs:int"/> </xs:sequence> </xs:complexType> </xs:schema>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。