Jaxb 尝试使用XJC生成架构时出错

Jaxb 尝试使用XJC生成架构时出错,jaxb,xsd,Jaxb,Xsd,因此,我解析了一堆XML,使用trang生成了一个巨大的模式文件,运行良好。但是,当我尝试使用xjc生成源代码时,我得到以下错误: xjc reutersXMLSchema.xsd parsing a schema... [ERROR] no-xsi: The {target namespace} of an attribute declaration must not match 'http://www.w3.org/2001/XMLSchema-instance'. line

因此,我解析了一堆XML,使用trang生成了一个巨大的模式文件,运行良好。但是,当我尝试使用xjc生成源代码时,我得到以下错误:

xjc reutersXMLSchema.xsd 
parsing a schema...
[ERROR] no-xsi: The {target namespace} of an attribute declaration must not match       'http://www.w3.org/2001/XMLSchema-instance'.
line 11 of file:/Users/cqin/Downloads/trang-20081028/xsi.xsd

Failed to parse a schema.
模式如下所示

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"   targetNamespace="http://www.w3.org/2001/XMLSchema-instance"      xmlns:filter="http://schemas.reuters.com/ns/2006/04/14/rmds/webservices/news/filter"   xmlns:ns0="http://www.reuters.com/ns/2006/05/01/webservices/rkd/News_1"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:s="http://www.w3.org/2003/05/soap-envelope"  xmlns:ns1="http://schemas.reuters.com/ns/2006/04/14/rmds/webservices/news/headlineml"  xmlns:cache_1="http://www.reuters.com/ns/2008/03/01/webservices/rkd/Cache_1"  xmlns:ns2="http://www.reuters.com/ns/2006/05/01/webservices/rkd/TokenManagement_1" xmlns:global="http://www.reuters.com/ns/2006/05/01/webservices/rkd/Common_1"  xmlns:a="http://www.w3.org/2005/08/addressing">
<xs:import   namespace="http://schemas.reuters.com/ns/2006/04/14/rmds/webservices/news/filter"   schemaLocation="filter.xsd"/>
<xs:import namespace="http://schemas.reuters.com/ns/2006/04/14/rmds/webservices/news/headlineml" schemaLocation="ns1.xsd"/>
<xs:import namespace="http://www.reuters.com/ns/2006/05/01/webservices/rkd/Common_1" schemaLocation="global.xsd"/>
<xs:import namespace="http://www.reuters.com/ns/2006/05/01/webservices/rkd/News_1" schemaLocation="reutersXMLSchema.xsd"/>
<xs:import namespace="http://www.reuters.com/ns/2006/05/01/webservices/rkd/TokenManagement_1" schemaLocation="ns2.xsd"/>
<xs:import namespace="http://www.reuters.com/ns/2008/03/01/webservices/rkd/Cache_1" schemaLocation="cache_1.xsd"/>
<xs:import namespace="http://www.w3.org/2003/05/soap-envelope" schemaLocation="s.xsd"/>
<xs:import namespace="http://www.w3.org/2005/08/addressing" schemaLocation="a.xsd"/>
<xs:attribute name="type" type="xs:NCName"/>
</xs:schema>
知道为什么它不起作用吗

我尝试将targetNameSpace更改为唯一的名称空间,但我遇到了更多错误,因此我想知道是否可以对原始错误进行处理

谢谢

是的,这不对:

targetNamespace="http://www.w3.org/2001/XMLSchema-instance"
这意味着模式的目标名称空间实际上是模式定义模式本身的名称空间,即定义类似和实际含义的内容的模式。这个模式是固定的,您不能针对它编写自己的模式,这就是XJC拒绝它的原因

我尝试将targetNameSpace更改为唯一的名称空间,但出现了更多错误


继续尝试,你会比现在做得更好。然而,trang正在生成这个糟糕的模式这一事实表明,您在这条线路上做了一些错误的事情。也许您要求它生成一个包含http://www.w3.org/2001/XMLSchema-instance 模式本身,这几乎肯定不是您想要做的。

也许我处理任务的方式是错误的,也许您可以提供更多的见解。基本上,我有几个XML,由几个SOAP XML请求/响应组成,大约有6个。我只是尝试使用trang将所有XML组合成一个巨大的模式,正如一位同事向我建议的那样。首先,这是正确的方法吗?@soulesschild:不,根据你告诉我的,这听起来不是个好主意。你想实现什么?基本上,我们使用第三方的API来构建我们自己的API供内部使用。调用他们的API的方法是使用POST-to-POST soap XML处理请求,然后接收soap XML形式的响应。大约有5种不同的请求和响应。整个API都是用java编写的,我也遇到了同样的问题。过了这么久,你还记得你是怎么修复的吗?对我来说,trang正在创建一个xsi.xsd,它已经存在,xjc对此表示不满。我用一个通配符*.xml文件运行trang,在一个文件夹中存储了大约20个xml文件。