什么是[Soap getNodeValue:element withName:@“type”]中的@“type”; Sudzc生成代码

时间:2012-04-30 03:49:23

标签: java sudzc

我使用sudzc为我现有的Web服务(java)生成带有ARC代码的目标C.

  1. 在java中,我有一个名为syncResponseJB的对象,它包含一个SyncResponseTransactionJB []对象数组。当我看到sudzc创建的代码时,它创建了3个对象。 一个。 syncResponseJB.m和h,b。 ArrayOfSyncResponseJB.m和h和c。 SyncResponseTransactionJB。只有C包含我想要的所有属性/属性。 ArrayOfSyncResponseJB只包含

    @implementation GRSArrayOfSyncResponseTransactionJB

    • (id)init { if(self = [super init]) {

      } 回归自我; }

    • (GRSArrayOfSyncResponseTransactionJB *)newWithNode:(CXMLNode *)节点 { if(node == nil){return nil; } return(GRSArrayOfSyncResponseTransactionJB *)[[GRSArrayOfSyncResponseTransactionJB alloc] initWithNode:node]; }

    • (id)initWithNode:(CXMLNode *)node { if(self = [super initWithNode:node]) { } 回归自我; }

    • (NSMutableString *)序列化 { return [self serialize:@" ArrayOfSyncResponseTransactionJB"]; }

    • (NSMutableString *)serialize:(NSString *)nodeName { NSMutableString * s = [NSMutableString string]; [s appendFormat:@"<%@",nodeName]; [s appendString:[self serializeAttributes]]; [s appendString:@">"]; [s appendString:[self serializeElements]]; [s appendFormat:@"",nodeName]; 回归; }

    • (NSMutableString *)serializeElements { NSMutableString * s = [super serializeElements];

      返回s; }

    • (NSMutableString *)serializeAttributes { NSMutableString * s = [super serializeAttributes];

      返回s; }

    - (BOOL)isEqual:方法(ID)对象{     if(object!= nil&& [object isKindOfClass:[GRSArrayOfSyncResponseTransactionJB class]]){         return [[self serialize] isEqualToString:[object serialize]];     }     返回NO; }

    - (NSUInteger)散列{     return [Soap generateHash:self];

    }

  2. 当我执行syncResponseJB。时,它只显示ArrayOfSyncResponseJB,现在显示SyncResponseTransactionJB。我不确定使用ArrayOfSyncResponseJB。我没有Java中的等效类。

  3. 如果我忽略ArrayOfSyncResponseJB并使用SyncResponseTransactionJB,它可以部分工作。我的意思是,部分是 我的实际响应XML是

    ProvisioningFor MDT或RM版本1.2.289DT_MINUTESint1440ApplicationfalseCatherinehttps://dcstest.support.xerox.com:443 / download / dcs.jarTest MDT Version771911BHM000001AddServiceBillingProvisioningFor MDT或RM version 1.2.289DT_MINUTESint1440ApplicationfalseCatherinehttps://dcstest.support.xerox.com:443 /download/dcs.jarTest MDT Version771912BHM000001AddServiceSupplies

  4. 但是当我在此行之后打印输出时,

    output = [deserializeTo initWithNode: element];
    

    它只打印xml的前半部分,这是我要回的唯一数据。

        po [output serializeElements]
    (id) $4 = 0x06c47610 <syncResponseTrans><callType>Provisioning</callType>    <dcsBundleDescriptor><bundleDesc>For MDT or RM version 1.2.2</bundleDesc><bundleId>89</bundleId><bundleParms><bundleParmsProperties></bundleParmsProperties></bundleParms><bundleType>Application</bundleType><downloadable>false</downloadable><submitterName>Catherine</submitterName><urlOfBundle>https://dcstest.support.xerox.com:443/download/dcs.jar</urlOfBundle><version>Test MDT Version</version></dcsBundleDescriptor><orderId>77191</orderId><orderItemId>1</orderItemId><serialNo>BHM000001</serialNo><serviceActionParms><serviceAction>AddService</serviceAction><serviceActionParmsProperties></serviceActionParmsProperties></serviceActionParms><serviceName>Billing</serviceName></syncResponseTrans>
    

    我如何获得XML的第二部分?

    1. 从另一个角度来看,我试图看看是否可以使用deserializeToDictionary方法。但是,我现在明白什么是@&#34;类型&#34;。当我按原样使用代码时,它返回&#34; int&#34;对于

      下面的行

      NSString * type = [Soap getNodeValue:element withName:@&#34; xsi:type&#34;];

    2. 任何帮助对我都非常有用。

      谢谢,

1 个答案:

答案 0 :(得分:1)

看看this。 我认为它是SudzC的错误......