xsd模式文件 - 显示已定义elementName [英] xsd schema file - shows elementName is already defined

查看:220
本文介绍了xsd模式文件 - 显示已定义elementName的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have two XSD files , I want to have elements of two different xsd files with same name but with different property type.

假设下面是
xml1.xsd

<?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:string' 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>

以下是 xml2.xsd

<?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>

xml1和xml2有区别

There is difference of xml1 and xml2 is

< xsd:element name =sessiontype ='xsd:string'minOccurs =1/>


< ; xsd:element name =sessiontype ='xsd:integer'minOccurs =1/>

在运行带有xsd文件的xjc时,我面临以下问题。

while running xjc with xsd files,I'm facing below issue.

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.

我去过的地方版本控制 link2

但我不确定如何实现版本控制和零错误编译。
我们将非常感谢您的帮助!

But I'm not sure how to implement versioning and compile with zero errors. Any help will be highly appreciated!

更新1:
我希望会话元素具有类型整数或字符串

UPDATE 1: Or I want to have session element to have type integer or string

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


推荐答案

您的两个架构的targetNamespace是相同的( http://www.example.com/wm )。尝试为每个模式使用不同的targetNamespace。

Your both schema's targetNamespace is same (http://www.example.com/wm). Once try with different targetNamespace for each schema.

这篇关于xsd模式文件 - 显示已定义elementName的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆