Что такое @"type" в [Soap getNodeValue: элемент withName:@"type"]; Sudzc сгенерированный код

Я использовал sudzc для генерации цели C с кодом ARC для моего существующего веб-сервиса (Java).

  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 *) node {if (node ​​== nil) {return nil; } return (GRSArrayOfSyncResponseTransactionJB *) [[GRSArrayOfSyncResponseTransactionJB alloc] initWithNode: node]; }

    • (id) initWithNode: (CXMLNode *) node {if (self = [super initWithNode: node]) {} return self; }

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

    • (NSMutableString *) serialize: (NSString *) имя_узла { NSMutableString* s = [строка NSMutableString]; [s appendFormat: @"<% @", имя_узла]; [s appendString: [self serializeAttributes]]; [s appendString: @">"]; [s appendString: [self serializeElements]]; [s appendFormat: @"", имя_узла]; возврат с; }

    • (NSMutableString *) serializeElements { NSMutableString* s = [супер serializeElements];

      возврат с; }

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

      возврат с; }

    - (BOOL) isEqual: (id) object {if (object! = Nil && [object isKindOfClass:[GRSArrayOfSyncResponseTransactionJB class]]) { return [[self serialize] isEqualToString:[object serialize]]; } вернуть NO; }

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

    }

  2. Когда я делаю syncResponseJB., Он показывает только ArrayOfSyncResponseJB и теперь SyncResponseTransactionJB. Я не уверен насчет использования ArrayOfSyncResponseJB. У меня нет эквивалентного класса в Java.

  3. Если я игнорирую ArrayOfSyncResponseJB и использую SyncResponseTransactionJB, он будет работать частично. Под частичным я подразумеваю, что мой фактический XML-ответ

    Подготовка для MDT или версии RM 1.2.289DT_MINUTESint1440ApplicationfalseCatherinehttps://dcstest.support.xerox.com:443/download/dcs.jarTest Версия MDT 771911BHM000001AddServiceBillingProvisioning Для загрузки MDT или MDT мин. 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. Тем не менее, я теперь понимаю, что такое @"тип". Когда я использую код как есть, он возвращает "int" для строки ниже

    NSString* type = [Soap getNodeValue: элемент withName:@"xsi:type"];

Любая помощь будет очень полезна для меня.

Спасибо,

1 ответ

Посмотри на это. Я думаю, что это ошибка SudzC...

Другие вопросы по тегам