Java xsd架构文件-显示已定义elementName

Java xsd架构文件-显示已定义elementName,java,xml,xsd,jaxb,xsd-validation,Java,Xml,Xsd,Jaxb,Xsd Validation,我有两个XSD文件,我想要两个不同的XSD文件的元素具有相同的名称,但具有不同的属性类型 假设下面是 xml1.xsd 我参观的和 但我不确定如何实现版本控制和编译,并且没有错误。 任何帮助都将不胜感激 更新1: 或者我想让session元素的类型为integer或string <xsd:element name="session" type='xsd:integer | xsd:string' minOccurs="1"/> 您的两个架构的targetNamespace是相同的。

我有两个XSD文件,我想要两个不同的XSD文件的元素具有相同的名称,但具有不同的属性类型

假设下面是 xml1.xsd

我参观的和

但我不确定如何实现版本控制和编译,并且没有错误。 任何帮助都将不胜感激

更新1: 或者我想让session元素的类型为integer或string

<xsd:element name="session" type='xsd:integer | xsd:string' minOccurs="1"/>

您的两个架构的targetNamespace是相同的。为每个架构尝试一次不同的targetNamespace

感谢Umesh的回复,我想知道是否有可能同时支持xsd:integer | xsd:string类型?如果您希望会话元素的值应为string或integer类型,只需使用xsd:string,这将同时允许integer和string。如果我不理解您的要求,请纠正我。为了说明,我提供了一个基本类型,实际上它是用户定义的类型。我认为它在用户定义的类型上不起作用。
<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  targetNamespace="http://www.example.com/wm"
    xmlns="http://www.example.com/wm"
  elementFormDefault="qualified">
    <xsd:element name="testEame1">
        <xsd:annotation>
            <xsd:documentation>        test       </xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="id" type='xsd:string' minOccurs="1"/>
                <xsd:element name="session" type='xsd:integer' minOccurs="1"/>
            </xsd:sequence>
            <xsd:attribute name="pid" type="xsd:integer" use="required"/>
            <xsd:attribute name="version" type="xsd:string" use="required"/>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>
C:\Temp\tt>xjc *.xsd
parsing a schema...
[ERROR] 'testEame1' is already defined
  line 17 of file:/C:/Temp/tt/xml2.xsd

[ERROR] (related to above error) the first definition appears here
  line 5 of file:/C:/Temp/tt/xml1.xsd

Failed to parse a schema.
<xsd:element name="session" type='xsd:integer | xsd:string' minOccurs="1"/>