在2个XSD文件中具有相同名称的complexType是典型的吗?

在2个XSD文件中具有相同名称的complexType是典型的吗?,xsd,jaxb,Xsd,Jaxb,我不熟悉JAXB,也不熟悉XSD。我正在使用Maven JAXB2插件对它们的类进行封装。我是从我需要使用的web服务提供商那里得到的,但我不确定他们的文档中是否有错误,或者我只是没有正确处理复制 所以我有两个XSD文件a.XSD和b.XSD,它们都位于同一个目录中 在a.xsd中,我有一个偏差: <xs:complexType name="AttributeType"> <xs:sequence> <xs:element ref="Attr

我不熟悉JAXB,也不熟悉XSD。我正在使用Maven JAXB2插件对它们的类进行封装。我是从我需要使用的web服务提供商那里得到的,但我不确定他们的文档中是否有错误,或者我只是没有正确处理复制

所以我有两个XSD文件a.XSD和b.XSD,它们都位于同一个目录中

在a.xsd中,我有一个偏差:

<xs:complexType name="AttributeType">
    <xs:sequence>
        <xs:element ref="AttributeValue" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="AttributeName" type="xs:string" use="required" />
    <xs:attribute name="AttributeNamespace" type="xs:string"
        use="required" />
</xs:complexType>
它们看起来和我一模一样,复制它们是没有意义的。但正如我所说,我对这些东西还不熟悉,所以我想确保我没有遗漏什么


谢谢。:)

只要这两个模式具有不同的名称空间,就可以了。查找根架构元素的
targetNamespace
attribute

如果缺少目标命名空间或目标命名空间相同,则可能会出现问题

这看起来像是一个“复制粘贴”的模式设计,不是一个首选的模块化设计,但是如果没有看到模式,就很难做出判断


“复制粘贴”设计不是非典型的,但也不是一种好的做法。

服务提供商给了我错误的复制复杂类型的文件。结果,副本失败。

谢谢您的回答。我查看了这些文件,它们都定义了targetNamespace,并且URI不同:(
<xs:complexType name="AttributeType">
    <xs:sequence>
        <xs:element ref="AttributeValue" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="AttributeName" type="xs:string" use="required" />
    <xs:attribute name="AttributeNamespace" type="xs:string"
        use="required" />
</xs:complexType>
A class/interface with the same name   "com.mycompany.voice.gcs.correspondenceservice.v1.AttributeType" is already in use. Use a class customization to resolve this conflict.