我有两个模式(Progect,系统),但所有这个模式都有一个类共享(Image),我在java中为每个这个模式生成JAXB时遇到问题我为每个这个模式都有一个类(progect中的图像和系统中的图像),但我需要一个图像用于项目架构和系统架构。 项目架构:
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/ProjectDataBase"
xmlns:tns="http://www.example.org/ProjectDataBase" elementFormDefault="qualified">
<element name="Project">
<complexType>
<sequence>
<element name="Layer" type="tns:Layer" minOccurs="0"
maxOccurs="unbounded">
</element>
</sequence>
<attribute name="name" type="string" />
</complexType>
</element>
<complexType name="Layer">
<sequence>
<element name="LayerName" type="string" maxOccurs="1"
minOccurs="1">
</element>
<element name="Visible" type="boolean" maxOccurs="1"
minOccurs="1"></element>
<element name="Image" type="tns:Image" minOccurs="0"
maxOccurs="unbounded">
</element>
</sequence>
<attribute name="idLayer" type="int"></attribute>
</complexType>
<complexType name="Image">
<sequence>
<element name="name" type="string" maxOccurs="1"
minOccurs="1">
</element>
<element name="path" type="string" maxOccurs="1"
minOccurs="1"/>
</sequence>
</complexType>
系统原理:
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/systemDataBase"
xmlns:tns="http://www.example.org/systemDataBase" elementFormDefault="qualified">
<element name="SystemDataBase">
<complexType>
<sequence>
<element name="Classification" type="tns:Classification"
minOccurs="0" maxOccurs="unbounded">
</element>
</sequence>
</complexType>
</element>
<complexType name="Classification">
<sequence>
<element name="Image" type="tns:Image" maxOccurs="unbounded"
minOccurs="0"></element>
</sequence>
<attribute name="id" type="int"></attribute>
</complexType>
<complexType name="Image">
<sequence>
<element name="name" type="string" maxOccurs="1" minOccurs="1">
</element>
<element name="path" type="string" maxOccurs="1" minOccurs="1">
</element>
</sequence>
</complexType>
</schema>
答案 0 :(得分:1)
您可以在其中一个模式中定义复杂类型“Image”(比如“System”),并通过将定义模式(“System”)导入客户端模式('Project'来引用另一个模式(“Project”) ')并在本地模式元素中声明外部名称空间('System')( '工程&GT;模式')。 在生成期间,您可能必须生成剧集文件以防止模型工件重复。
This article包含有关命名空间导入需要查看结果模式的示例。所选的this question答案包含有关剧集文件的良好信息。