Soap “重新定义xsd元素抛出”;“格式不好”;错误
我试图在xsd中使用元素重定义。我尝试了不同的组合,但仍然没有解决这个错误。当我尝试将包含重新定义的模式的WSDL加载到SOAP UI中时,会出现错误。而且,它没有出现在eclipse中xsd的设计中 WSDL->Imports TestService.xsd->Imports CreateTest.xsd->包含CreateTestRequestType的定义 当我把它加载到我的SOAPUI中时,一切看起来都很好,没有错误 现在,我试图在另一个名为CreateRedefineTest.xsd的xsd中重新定义类型CreateTestRequestType,并将此xsd导入TestService.xsd(import语句已注释,但我必须取消注释此导入并注释另一个以进行测试)。但是,当我将WSDL加载到SOAP UI中时,会出现以下错误:Soap “重新定义xsd元素抛出”;“格式不好”;错误,soap,xsd,wsdl,soapui,w3c,Soap,Xsd,Wsdl,Soapui,W3c,我试图在xsd中使用元素重定义。我尝试了不同的组合,但仍然没有解决这个错误。当我尝试将包含重新定义的模式的WSDL加载到SOAP UI中时,会出现错误。而且,它没有出现在eclipse中xsd的设计中 WSDL->Imports TestService.xsd->Imports CreateTest.xsd->包含CreateTestRequestType的定义 当我把它加载到我的SOAPUI中时,一切看起来都很好,没有错误 现在,我试图在另一个名为CreateRedefineTest.xsd的
Source: null Error: URL "CreateTest.xsd" is not well-formed
EDIT1:
我可以通过给出一个绝对路径来解决这个错误。是否有可能使其与相对路径一起工作
EDIT2
我看了w3关于这个元素的文章,这个例子确实使用了相对路径。但我试着复制,但仍然不起作用。该示例可在本网站上找到
我想我遗漏了一些规则,但我已经尝试了很多方法,似乎无法解决这个问题
下面是WSDL和XSD的源代码
WSDL:
这可能是因为解析器无法找到“cp:”的模式文档。
如果您对cp xsd使用绝对URL,或者使用XML目录,这种情况还会发生吗?SoapUI是一个很好的工具,它帮助我度过了难关,并将在未来以很好的方式继续帮助我 我认为这是许多用户显然不使用的功能之一,并且似乎是SOAPUI5.0.0中的一个bug。我在几个旧版本的SoapUI中尝试了同样的方法,得到了同样的结果。我还在SOAPUINGPro 1.2.2的试用版中试用了它 然后我在XMLSpy中尝试了这个方法,它没有任何错误,完全相同的xsd,没有任何修改。(注意:TestService.xsd需要重定义的.xsd的注释导入语句) 我还发现报告了一个bug,但没有找到解决方案或对该解决方案的任何评论。如果有人想要这些bug的引用,请访问。如果愿意,您可以查找相关的bug 651、586和539 我希望在某个时候,这个bug在SoapUI中得到修复。 我还创建了一个新的bug来引用这些旧bug并进行整合: 如果其他人遇到同样的问题,希望这篇文章能节省他们的时间
感谢所有看过这篇文章的人。我想确认一下,在5.0.0版的SOAP UI中尝试使用消息集中的xsd:redefinite元素时,我遇到了与上面相同的错误 基本上,我必须扩展另一个应用程序的消息定义,即开放地理空间组-Web功能服务定义的消息集,并在WSDL的请求和响应定义中使用重新定义的模式 除了“格式不正确”错误,我还得到:
“源:空错误:类型”QueryType@http://www.opengis.net/wfs“未找到”。
Eclipse在WSDL验证方面没有问题,我可以毫无问题地将其导入Rational Service Tester(V8.5.0.2)。我不知道XMLBeans(它使用的是SOAPUI加载WSDL和XSD的框架)中是否有错误。问题是,如果我在
xs:redefinite
中为schemaLocation
使用绝对路径,则使用follow符号file:///C:/Path_to_xsd
似乎在加载WSDL时会抛出非错误。但是,当我创建请求并手动添加新元素
时,我使用SOAPUI验证请求,它会说不允许使用该元素。因此,如果完整路径wsdl加载没有错误,但加载不正确。。。希望您能幸运地找到解决方案。@albciff,谢谢您查看并尝试。我尝试使用绝对路径,它工作并加载预期的元素,并验证OK。我用“/”代替“\”,效果很好。现在,我需要弄清楚如何使用相对路径使其工作。非常感谢您的尝试!很高兴我的评论能帮助你:)