我们正在使用 schemagen 从一些带注释的 POJO 创建 XSD。
这是我们的蚂蚁目标
<target name="generate-xsd" depends="compile">
<taskdef name="schemagen" classname="com.sun.tools.jxc.SchemaGenTask"
classpathref="xjc.classpath"/>
<schemagen srcdir="src" destdir="generated" includeantruntime="false">
<include name="com/acme/exam/delivery/records/**"/>
<schema namespace="http://www.acme.com/deliverylog"
file="deliverylog.xsd"/>
<schema namespace="" file="supplemental.xsd"/>
</schemagen>
</target>
这是在生成
<xs:schema elementFormDefault="qualified" version="1.0"
targetNamespace="http://www.acme.com/deliverylog"
xmlns:tns="http://www.acme.com/deliverylog"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
tns 命名空间从何而来,它意味着什么?
该信息来自包级注释@XmlSchema
,可以在package-info
类中找到。 有关示例,请参见下文。
套餐信息
@XmlSchema(
namespace = "http://www.acme.com/deliverylo",
elementFormDefault = XmlNsForm.QUALIFIED)
package example;
import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlSchema;
示例 XML
elementFormDefault
指定哪些元素应符合命名空间(true = 所有元素,false = 仅全局元素),targetNamespace
定义命名空间是什么。
<foo xmlns="http://www.acme.com/deliverylog">
<bar>Hello World</bar>
</foo>
欲了解更多信息
- http://blog.bdoughan.com/2010/08/jaxb-namespaces.html