【问题标题】:What is @"type" in [Soap getNodeValue:element withName:@"type"]; Sudzc generated code[Soap getNodeValue:element withName:@"type"] 中的@"type" 是什么? Sudzc 生成的代码
【发布时间】:2012-04-30 03:49:23
【问题描述】:

我已使用 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) 初始化 { if(self = [超级初始化]) {

      } 回归自我; }

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

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

    • (NSMutableString*) 序列化 { return [自我序列化:@“ArrayOfSyncResponseTransactionJB”]; }

    • (NSMutableString*) 序列化:(NSString*) nodeName { NSMutableString* s = [NSMutableString 字符串]; [s appendFormat:@""]; [s appendString: [self serializeElements]]; [s appendFormat:@"", nodeName]; 返回 s; }

    • (NSMutableString*) 序列化元素 { NSMutableString* s = [超级序列化元素];

      返回; }

    • (NSMutableString*) 序列化属性 { NSMutableString* s = [超级序列化属性];

      返回; }

    -(BOOL)isEqual:(id)object{ if(object != nil && [object isKindOfClass:[GRSArrayOfSyncResponseTransactionJB class]]) { return [[self serialize] isEqualToString:[object serialize]]; } 返回否; }

    -(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 版本771911BHM000001AddServiceBillingProvisioningFor MDT 或 RM 版本 1.2.289DT_MINUTESint1440ApplicationfalseCatherinehttps://dcstest.support.xerox /download/dcs.jarTest MDT Version771912BHM000001AddServiceSupplies

但是当我在这一行之后打印输出时,

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 方法。但是,我现在明白了@"type" 是什么。当我按原样使用代码时,它为下面的行返回“int”

    NSString* type = [Soap getNodeValue:element withName:@"xsi:type"];

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

谢谢,

【问题讨论】:

  • @"foo" 表示法是 Objective-C 的快捷方式,用于创建内容设置为 foo 的 NSString。
  • 谢谢亚历克斯。我的问题是,如果我将 @"type" 更改为我的元素名称 "@syncResponseTransactionJB",它会返回 Null。当我把它留给@“type”时,它返回int。我不确定它在我的 XML 中从哪里获得“int”,为什么它看不到我的 @"syncResponseTransactionJB",它是我的响应 xml 中的一个元素。换句话说,我应该在 @"XXX" 使用什么来获取我的元素属性值。

标签: java sudzc


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 2014-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-19
    • 2021-01-23
    相关资源
    最近更新 更多