例子中MySchema是继承BaseSchema的。
Schema:
BaseSchema.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/BaseSchema"
xmlns:tns="http://www.example.org/BaseSchema"
elementFormDefault="qualified">
<xs:complexType name="BaseSchema">
<xs:attribute name="id" type="xs:string" />
</xs:complexType>
</xs:schema>
MySchema.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/MySchema"
xmlns:tns="http://www.example.org/MySchema"
xmlns:b="http://www.example.org/BaseSchema"
elementFormDefault="qualified">
<xs:import namespace="http://www.example.org/BaseSchema" />
<xs:complexType name="MySchema">
<xs:complexContent>
<xs:extension base="b:BaseSchema">
<xs:sequence>
<xs:element name="name" type="xs:string" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
Ant:
build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="MySchema" basedir="." default="build.schema">
<property environment="env" />
<property name="xmlbeans.home" value="${env.XMLBEANS_HOME}" />
<property name="xmlbeans.lib" value="${xmlbeans.home}/lib" />
<echo message="xmlbeans.home: ${xmlbeans.home}" />
<echo message="xmlbeans.home: ${xmlbeans.lib}" />
<target name="init">
<delete dir="build" />
<path id="xmlbeans.classpath">
<fileset dir="${xmlbeans.lib}"
includes="xbean.jar,xmlbeans-qname.jar,jsr173_1.0_api.jar" />
</path>
<taskdef name="scomp"
classname="org.apache.xmlbeans.impl.tool.XMLBean"
classpathref="xmlbeans.classpath" />
<mkdir dir="build" />
</target>
<target name="build.base" depends="init">
<scomp schema="schema/BaseSchema.xsd"
destfile="build/BaseSchema.jar">
<classpath>
<path refid="xmlbeans.classpath" />
</classpath>
</scomp>
</target>
<target name="build.schema" depends="init,build.base">
<scomp schema="schema/MySchema.xsd"
destfile="build/MySchema.jar">
<classpath>
<pathelement location="build/BaseSchema.jar" />
<path refid="xmlbeans.classpath" />
</classpath>
</scomp>
</target>
</project>