适用于iOS的Sudz-c问题,缺少命名空间

时间:2011-08-04 01:40:07

标签: iphone namespaces sudzc

我正在开发一个使用网络服务的应用。这是一个私人服务,所以我不能在这里发布WSDL或生成代码,所以这对于一些一般性建议而不是细节来说更是一个问题。

我将WSDL输入Sudz-c。 WSDL最初有一些XSD的导入,sudz-c会忽略,所以我将它们复制到WSDL的types部分。

我使用生成的代码向服务发出请求,但我发现请求缺少复制到WSDL的types部分的复杂类型对象的名称空间。

我再次知道这是非常一般的信息,但如果其他人与Sudz有类似的问题,那么获得你的建议会很棒。

3 个答案:

答案 0 :(得分:2)

我知道线程已经结束,但我找到了解决这个问题的方法.. 如果WSDL包含/导入外部XSD然后是YES,那么将这些XSD类型复制到WSDL中是正确的(即直接将其嵌入到WSDL中而不是包含/导入)。生成的代码在任何意义上都是完美的,因为它也为XSD类型生成类型..但是你可能会收到一个ERROR(多个文件中的同一个错误)..这将是一个缺少几个请求/响应类型的BASE类。在分析代码后我意识到缺少名称空间只是相同的SOAPObject对象,所以我用SOAPObject.h替换了缺少的命名空间,并使用SOAPObject接口/类作为基类。 例如在我的情况下

#include "SOAP.h"

#include "sudz.h"
@class sudz;

@interface sudzAbstractRequestType : sudz
{
}

(注意:'sudz'是您在使用SUDZ-C网站/项目生成代码时使用的唯一名称,在您的情况下它可能不同)。 我将代码更改为(遇到此错误的项目中的所有位置):

#include "SOAP.h"

#include "SOAPObject.h"
@class SOAPObject;
//#include "sudz.h"
//@class sudz;

@interface sudzAbstractRequestType : SOAPObject//sudz
{
}

我希望这会对别人有所帮助......我被困了好几天但后来才开始工作了...... 快乐编码:)

答案 1 :(得分:0)

您可能尝试的一件事是确保在实际服务本身中修复命名空间。

这是一个链接帮助完成:

http://alensiljak.blogspot.com/2009/06/removing-httptempuriorg-namespace-from.html

答案 2 :(得分:0)

无法找到答案,所以最后只需手工编写网络服务信息:(