1 /* c/zx-b-dec.c - WARNING: This file was auto generated by xsd2sg.pl. DO NOT EDIT!
2 * $Id$ */
3 /* Code generation design Copyright (c) 2006 Sampo Kellomaki (sampo@iki.fi),
4 * All Rights Reserved. NO WARRANTY. See file COPYING for terms and conditions
5 * of use. Some aspects of code generation were driven by schema
6 * descriptions that were used as input and may be subject to their own copyright.
7 * Code generation uses a template, whose copyright statement follows. */
8
9 /** dec-templ.c - XML decoder template, used in code generation
10 ** Copyright (c) 2010 Sampo Kellomaki (sampo@iki.fi), All Rights Reserved.
11 ** Copyright (c) 2006-2007 Symlabs (symlabs@symlabs.com), All Rights Reserved.
12 ** Author: Sampo Kellomaki (sampo@iki.fi)
13 ** This is confidential unpublished proprietary source code of the author.
14 ** NO WARRANTY, not even implied warranties. Contains trade secrets.
15 ** Distribution prohibited unless authorized in writing.
16 ** Licensed under Apache License 2.0, see file COPYING.
17 ** Id: dec-templ.c,v 1.30 2008-10-04 23:42:14 sampo Exp $
18 **
19 ** 28.5.2006, created, Sampo Kellomaki (sampo@iki.fi)
20 ** 8.8.2006, reworked namespace handling --Sampo
21 ** 12.8.2006, added special scanning of xmlns to avoid backtracking elem recognition --Sampo
22 ** 23.9.2006, added collection of WO information --Sampo
23 ** 21.6.2007, improved handling of undeclared namespace prefixes --Sampo
24 ** 27.10.2010, CSE refactoring, re-engineered namespace handling --Sampo
25 ** 21.11.2010, re-engineered to extract most code to zx_DEC_elem, leaving just switches --Sampo
26 **
27 ** N.B: This template is meant to be processed by pd/xsd2sg.pl. Beware
28 ** of special markers that xsd2sg.pl expects to find and understand.
29 **/
30
31 #include "errmac.h"
32 #include "zx.h"
33 #include "c/zx-const.h"
34 #include "c/zx-data.h"
35 #include "c/zx-b-data.h"
36 #define TPF zx_
37 #include "zx_ext_pt.h"
38
39
40
zx_DEC_ATTR_b_ApplicationEPR(struct zx_ctx * c,struct zx_b_ApplicationEPR_s * x)41 int zx_DEC_ATTR_b_ApplicationEPR(struct zx_ctx* c, struct zx_b_ApplicationEPR_s* x)
42 {
43 switch (x->gg.attr->g.tok) {
44 case zx_ID_ATTR: x->ID = x->gg.attr; return 1;
45 case zx_id_ATTR: x->id = x->gg.attr; return 1;
46 case zx_notOnOrAfter_ATTR: x->notOnOrAfter = x->gg.attr; return 1;
47 case zx_Id_ATTR|zx_wsu_NS: x->Id = x->gg.attr; return 1;
48 case zx_actor_ATTR|zx_e_NS: x->actor = x->gg.attr; return 1;
49 case zx_mustUnderstand_ATTR|zx_e_NS: x->mustUnderstand = x->gg.attr; return 1;
50
51 default: return 0;
52 }
53 }
54
zx_DEC_ELEM_b_ApplicationEPR(struct zx_ctx * c,struct zx_b_ApplicationEPR_s * x)55 int zx_DEC_ELEM_b_ApplicationEPR(struct zx_ctx* c, struct zx_b_ApplicationEPR_s* x)
56 {
57 struct zx_elem_s* el = x->gg.kids;
58 switch (el->g.tok) {
59 case zx_a_Address_ELEM:
60 if (!x->Address)
61 x->Address = (struct zx_a_Address_s*)el;
62 return 1;
63 case zx_a_ReferenceParameters_ELEM:
64 if (!x->ReferenceParameters)
65 x->ReferenceParameters = (struct zx_a_ReferenceParameters_s*)el;
66 return 1;
67 case zx_a_Metadata_ELEM:
68 if (!x->Metadata)
69 x->Metadata = (struct zx_a_Metadata_s*)el;
70 return 1;
71 case zx_tas3_AltAddress_ELEM:
72 if (!x->AltAddress)
73 x->AltAddress = el;
74 return 1;
75
76 default: return 0;
77 }
78 }
79
80
81
82
zx_DEC_ATTR_b_Consent(struct zx_ctx * c,struct zx_b_Consent_s * x)83 int zx_DEC_ATTR_b_Consent(struct zx_ctx* c, struct zx_b_Consent_s* x)
84 {
85 switch (x->gg.attr->g.tok) {
86 case zx_id_ATTR: x->id = x->gg.attr; return 1;
87 case zx_timestamp_ATTR: x->timestamp = x->gg.attr; return 1;
88 case zx_uri_ATTR: x->uri = x->gg.attr; return 1;
89 case zx_Id_ATTR|zx_wsu_NS: x->Id = x->gg.attr; return 1;
90 case zx_actor_ATTR|zx_e_NS: x->actor = x->gg.attr; return 1;
91 case zx_mustUnderstand_ATTR|zx_e_NS: x->mustUnderstand = x->gg.attr; return 1;
92
93 default: return 0;
94 }
95 }
96
zx_DEC_ELEM_b_Consent(struct zx_ctx * c,struct zx_b_Consent_s * x)97 int zx_DEC_ELEM_b_Consent(struct zx_ctx* c, struct zx_b_Consent_s* x)
98 {
99 struct zx_elem_s* el = x->gg.kids;
100 switch (el->g.tok) {
101
102 default: return 0;
103 }
104 }
105
106
107
108
zx_DEC_ATTR_b_CredentialsContext(struct zx_ctx * c,struct zx_b_CredentialsContext_s * x)109 int zx_DEC_ATTR_b_CredentialsContext(struct zx_ctx* c, struct zx_b_CredentialsContext_s* x)
110 {
111 switch (x->gg.attr->g.tok) {
112 case zx_id_ATTR: x->id = x->gg.attr; return 1;
113 case zx_Id_ATTR|zx_wsu_NS: x->Id = x->gg.attr; return 1;
114 case zx_actor_ATTR|zx_e_NS: x->actor = x->gg.attr; return 1;
115 case zx_mustUnderstand_ATTR|zx_e_NS: x->mustUnderstand = x->gg.attr; return 1;
116
117 default: return 0;
118 }
119 }
120
zx_DEC_ELEM_b_CredentialsContext(struct zx_ctx * c,struct zx_b_CredentialsContext_s * x)121 int zx_DEC_ELEM_b_CredentialsContext(struct zx_ctx* c, struct zx_b_CredentialsContext_s* x)
122 {
123 struct zx_elem_s* el = x->gg.kids;
124 switch (el->g.tok) {
125 case zx_sp_RequestedAuthnContext_ELEM:
126 if (!x->RequestedAuthnContext)
127 x->RequestedAuthnContext = (struct zx_sp_RequestedAuthnContext_s*)el;
128 return 1;
129 case zx_b_SecurityMechID_ELEM:
130 if (!x->SecurityMechID)
131 x->SecurityMechID = el;
132 return 1;
133
134 default: return 0;
135 }
136 }
137
138
139
140
zx_DEC_ATTR_b_EndpointUpdate(struct zx_ctx * c,struct zx_b_EndpointUpdate_s * x)141 int zx_DEC_ATTR_b_EndpointUpdate(struct zx_ctx* c, struct zx_b_EndpointUpdate_s* x)
142 {
143 switch (x->gg.attr->g.tok) {
144 case zx_ID_ATTR: x->ID = x->gg.attr; return 1;
145 case zx_id_ATTR: x->id = x->gg.attr; return 1;
146 case zx_notOnOrAfter_ATTR: x->notOnOrAfter = x->gg.attr; return 1;
147 case zx_updateType_ATTR: x->updateType = x->gg.attr; return 1;
148 case zx_Id_ATTR|zx_wsu_NS: x->Id = x->gg.attr; return 1;
149 case zx_actor_ATTR|zx_e_NS: x->actor = x->gg.attr; return 1;
150 case zx_mustUnderstand_ATTR|zx_e_NS: x->mustUnderstand = x->gg.attr; return 1;
151
152 default: return 0;
153 }
154 }
155
zx_DEC_ELEM_b_EndpointUpdate(struct zx_ctx * c,struct zx_b_EndpointUpdate_s * x)156 int zx_DEC_ELEM_b_EndpointUpdate(struct zx_ctx* c, struct zx_b_EndpointUpdate_s* x)
157 {
158 struct zx_elem_s* el = x->gg.kids;
159 switch (el->g.tok) {
160 case zx_a_Address_ELEM:
161 if (!x->Address)
162 x->Address = (struct zx_a_Address_s*)el;
163 return 1;
164 case zx_a_ReferenceParameters_ELEM:
165 if (!x->ReferenceParameters)
166 x->ReferenceParameters = (struct zx_a_ReferenceParameters_s*)el;
167 return 1;
168 case zx_a_Metadata_ELEM:
169 if (!x->Metadata)
170 x->Metadata = (struct zx_a_Metadata_s*)el;
171 return 1;
172 case zx_tas3_AltAddress_ELEM:
173 if (!x->AltAddress)
174 x->AltAddress = el;
175 return 1;
176
177 default: return 0;
178 }
179 }
180
181
182
183
zx_DEC_ATTR_b_Framework(struct zx_ctx * c,struct zx_b_Framework_s * x)184 int zx_DEC_ATTR_b_Framework(struct zx_ctx* c, struct zx_b_Framework_s* x)
185 {
186 switch (x->gg.attr->g.tok) {
187 case zx_id_ATTR: x->id = x->gg.attr; return 1;
188 case zx_version_ATTR: x->version = x->gg.attr; return 1;
189 case zx_Id_ATTR|zx_wsu_NS: x->Id = x->gg.attr; return 1;
190 case zx_actor_ATTR|zx_e_NS: x->actor = x->gg.attr; return 1;
191 case zx_mustUnderstand_ATTR|zx_e_NS: x->mustUnderstand = x->gg.attr; return 1;
192
193 default: return 0;
194 }
195 }
196
zx_DEC_ELEM_b_Framework(struct zx_ctx * c,struct zx_b_Framework_s * x)197 int zx_DEC_ELEM_b_Framework(struct zx_ctx* c, struct zx_b_Framework_s* x)
198 {
199 struct zx_elem_s* el = x->gg.kids;
200 switch (el->g.tok) {
201
202 default: return 0;
203 }
204 }
205
206
207
208
zx_DEC_ATTR_b_InteractionService(struct zx_ctx * c,struct zx_b_InteractionService_s * x)209 int zx_DEC_ATTR_b_InteractionService(struct zx_ctx* c, struct zx_b_InteractionService_s* x)
210 {
211 switch (x->gg.attr->g.tok) {
212 case zx_ID_ATTR: x->ID = x->gg.attr; return 1;
213 case zx_id_ATTR: x->id = x->gg.attr; return 1;
214 case zx_notOnOrAfter_ATTR: x->notOnOrAfter = x->gg.attr; return 1;
215 case zx_Id_ATTR|zx_wsu_NS: x->Id = x->gg.attr; return 1;
216 case zx_actor_ATTR|zx_e_NS: x->actor = x->gg.attr; return 1;
217 case zx_mustUnderstand_ATTR|zx_e_NS: x->mustUnderstand = x->gg.attr; return 1;
218
219 default: return 0;
220 }
221 }
222
zx_DEC_ELEM_b_InteractionService(struct zx_ctx * c,struct zx_b_InteractionService_s * x)223 int zx_DEC_ELEM_b_InteractionService(struct zx_ctx* c, struct zx_b_InteractionService_s* x)
224 {
225 struct zx_elem_s* el = x->gg.kids;
226 switch (el->g.tok) {
227 case zx_a_Address_ELEM:
228 if (!x->Address)
229 x->Address = (struct zx_a_Address_s*)el;
230 return 1;
231 case zx_a_ReferenceParameters_ELEM:
232 if (!x->ReferenceParameters)
233 x->ReferenceParameters = (struct zx_a_ReferenceParameters_s*)el;
234 return 1;
235 case zx_a_Metadata_ELEM:
236 if (!x->Metadata)
237 x->Metadata = (struct zx_a_Metadata_s*)el;
238 return 1;
239 case zx_tas3_AltAddress_ELEM:
240 if (!x->AltAddress)
241 x->AltAddress = el;
242 return 1;
243
244 default: return 0;
245 }
246 }
247
248
249
250
zx_DEC_ATTR_b_ProcessingContext(struct zx_ctx * c,struct zx_b_ProcessingContext_s * x)251 int zx_DEC_ATTR_b_ProcessingContext(struct zx_ctx* c, struct zx_b_ProcessingContext_s* x)
252 {
253 switch (x->gg.attr->g.tok) {
254 case zx_id_ATTR: x->id = x->gg.attr; return 1;
255 case zx_Id_ATTR|zx_wsu_NS: x->Id = x->gg.attr; return 1;
256 case zx_actor_ATTR|zx_e_NS: x->actor = x->gg.attr; return 1;
257 case zx_mustUnderstand_ATTR|zx_e_NS: x->mustUnderstand = x->gg.attr; return 1;
258
259 default: return 0;
260 }
261 }
262
zx_DEC_ELEM_b_ProcessingContext(struct zx_ctx * c,struct zx_b_ProcessingContext_s * x)263 int zx_DEC_ELEM_b_ProcessingContext(struct zx_ctx* c, struct zx_b_ProcessingContext_s* x)
264 {
265 struct zx_elem_s* el = x->gg.kids;
266 switch (el->g.tok) {
267
268 default: return 0;
269 }
270 }
271
272
273
274
zx_DEC_ATTR_b_RedirectRequest(struct zx_ctx * c,struct zx_b_RedirectRequest_s * x)275 int zx_DEC_ATTR_b_RedirectRequest(struct zx_ctx* c, struct zx_b_RedirectRequest_s* x)
276 {
277 switch (x->gg.attr->g.tok) {
278 case zx_id_ATTR: x->id = x->gg.attr; return 1;
279 case zx_redirectURL_ATTR: x->redirectURL = x->gg.attr; return 1;
280 case zx_Id_ATTR|zx_wsu_NS: x->Id = x->gg.attr; return 1;
281 case zx_actor_ATTR|zx_e_NS: x->actor = x->gg.attr; return 1;
282 case zx_mustUnderstand_ATTR|zx_e_NS: x->mustUnderstand = x->gg.attr; return 1;
283
284 default: return 0;
285 }
286 }
287
zx_DEC_ELEM_b_RedirectRequest(struct zx_ctx * c,struct zx_b_RedirectRequest_s * x)288 int zx_DEC_ELEM_b_RedirectRequest(struct zx_ctx* c, struct zx_b_RedirectRequest_s* x)
289 {
290 struct zx_elem_s* el = x->gg.kids;
291 switch (el->g.tok) {
292
293 default: return 0;
294 }
295 }
296
297
298
299
zx_DEC_ATTR_b_Sender(struct zx_ctx * c,struct zx_b_Sender_s * x)300 int zx_DEC_ATTR_b_Sender(struct zx_ctx* c, struct zx_b_Sender_s* x)
301 {
302 switch (x->gg.attr->g.tok) {
303 case zx_affiliationID_ATTR: x->affiliationID = x->gg.attr; return 1;
304 case zx_id_ATTR: x->id = x->gg.attr; return 1;
305 case zx_providerID_ATTR: x->providerID = x->gg.attr; return 1;
306 case zx_Id_ATTR|zx_wsu_NS: x->Id = x->gg.attr; return 1;
307 case zx_actor_ATTR|zx_e_NS: x->actor = x->gg.attr; return 1;
308 case zx_mustUnderstand_ATTR|zx_e_NS: x->mustUnderstand = x->gg.attr; return 1;
309
310 default: return 0;
311 }
312 }
313
zx_DEC_ELEM_b_Sender(struct zx_ctx * c,struct zx_b_Sender_s * x)314 int zx_DEC_ELEM_b_Sender(struct zx_ctx* c, struct zx_b_Sender_s* x)
315 {
316 struct zx_elem_s* el = x->gg.kids;
317 switch (el->g.tok) {
318
319 default: return 0;
320 }
321 }
322
323
324
325
zx_DEC_ATTR_b_TargetIdentity(struct zx_ctx * c,struct zx_b_TargetIdentity_s * x)326 int zx_DEC_ATTR_b_TargetIdentity(struct zx_ctx* c, struct zx_b_TargetIdentity_s* x)
327 {
328 switch (x->gg.attr->g.tok) {
329 case zx_id_ATTR: x->id = x->gg.attr; return 1;
330 case zx_Id_ATTR|zx_wsu_NS: x->Id = x->gg.attr; return 1;
331 case zx_actor_ATTR|zx_e_NS: x->actor = x->gg.attr; return 1;
332 case zx_mustUnderstand_ATTR|zx_e_NS: x->mustUnderstand = x->gg.attr; return 1;
333
334 default: return 0;
335 }
336 }
337
zx_DEC_ELEM_b_TargetIdentity(struct zx_ctx * c,struct zx_b_TargetIdentity_s * x)338 int zx_DEC_ELEM_b_TargetIdentity(struct zx_ctx* c, struct zx_b_TargetIdentity_s* x)
339 {
340 struct zx_elem_s* el = x->gg.kids;
341 switch (el->g.tok) {
342 case zx_sa_Assertion_ELEM:
343 if (!x->Assertion)
344 x->Assertion = (struct zx_sa_Assertion_s*)el;
345 return 1;
346 case zx_sa_EncryptedAssertion_ELEM:
347 if (!x->EncryptedAssertion)
348 x->EncryptedAssertion = (struct zx_sa_EncryptedAssertion_s*)el;
349 return 1;
350 case zx_sa11_Assertion_ELEM:
351 if (!x->sa11_Assertion)
352 x->sa11_Assertion = (struct zx_sa11_Assertion_s*)el;
353 return 1;
354 case zx_ff12_Assertion_ELEM:
355 if (!x->ff12_Assertion)
356 x->ff12_Assertion = (struct zx_ff12_Assertion_s*)el;
357 return 1;
358
359 default: return 0;
360 }
361 }
362
363
364
365
zx_DEC_ATTR_b_Timeout(struct zx_ctx * c,struct zx_b_Timeout_s * x)366 int zx_DEC_ATTR_b_Timeout(struct zx_ctx* c, struct zx_b_Timeout_s* x)
367 {
368 switch (x->gg.attr->g.tok) {
369 case zx_id_ATTR: x->id = x->gg.attr; return 1;
370 case zx_maxProcessingTime_ATTR: x->maxProcessingTime = x->gg.attr; return 1;
371 case zx_Id_ATTR|zx_wsu_NS: x->Id = x->gg.attr; return 1;
372 case zx_actor_ATTR|zx_e_NS: x->actor = x->gg.attr; return 1;
373 case zx_mustUnderstand_ATTR|zx_e_NS: x->mustUnderstand = x->gg.attr; return 1;
374
375 default: return 0;
376 }
377 }
378
zx_DEC_ELEM_b_Timeout(struct zx_ctx * c,struct zx_b_Timeout_s * x)379 int zx_DEC_ELEM_b_Timeout(struct zx_ctx* c, struct zx_b_Timeout_s* x)
380 {
381 struct zx_elem_s* el = x->gg.kids;
382 switch (el->g.tok) {
383
384 default: return 0;
385 }
386 }
387
388
389
390
zx_DEC_ATTR_b_UsageDirective(struct zx_ctx * c,struct zx_b_UsageDirective_s * x)391 int zx_DEC_ATTR_b_UsageDirective(struct zx_ctx* c, struct zx_b_UsageDirective_s* x)
392 {
393 switch (x->gg.attr->g.tok) {
394 case zx_id_ATTR: x->id = x->gg.attr; return 1;
395 case zx_ref_ATTR: x->ref = x->gg.attr; return 1;
396 case zx_Id_ATTR|zx_wsu_NS: x->Id = x->gg.attr; return 1;
397 case zx_actor_ATTR|zx_e_NS: x->actor = x->gg.attr; return 1;
398 case zx_mustUnderstand_ATTR|zx_e_NS: x->mustUnderstand = x->gg.attr; return 1;
399
400 default: return 0;
401 }
402 }
403
zx_DEC_ELEM_b_UsageDirective(struct zx_ctx * c,struct zx_b_UsageDirective_s * x)404 int zx_DEC_ELEM_b_UsageDirective(struct zx_ctx* c, struct zx_b_UsageDirective_s* x)
405 {
406 struct zx_elem_s* el = x->gg.kids;
407 switch (el->g.tok) {
408 case zx_xa_Obligation_ELEM:
409 if (!x->Obligation)
410 x->Obligation = (struct zx_xa_Obligation_s*)el;
411 return 1;
412 case zx_tas3sol_Dict_ELEM:
413 if (!x->Dict)
414 x->Dict = (struct zx_tas3sol_Dict_s*)el;
415 return 1;
416
417 default: return 0;
418 }
419 }
420
421
422
423
zx_DEC_ATTR_b_UserInteraction(struct zx_ctx * c,struct zx_b_UserInteraction_s * x)424 int zx_DEC_ATTR_b_UserInteraction(struct zx_ctx* c, struct zx_b_UserInteraction_s* x)
425 {
426 switch (x->gg.attr->g.tok) {
427 case zx_id_ATTR: x->id = x->gg.attr; return 1;
428 case zx_interact_ATTR: x->interact = x->gg.attr; return 1;
429 case zx_language_ATTR: x->language = x->gg.attr; return 1;
430 case zx_maxInteractTime_ATTR: x->maxInteractTime = x->gg.attr; return 1;
431 case zx_redirect_ATTR: x->redirect = x->gg.attr; return 1;
432 case zx_Id_ATTR|zx_wsu_NS: x->Id = x->gg.attr; return 1;
433 case zx_actor_ATTR|zx_e_NS: x->actor = x->gg.attr; return 1;
434 case zx_mustUnderstand_ATTR|zx_e_NS: x->mustUnderstand = x->gg.attr; return 1;
435
436 default: return 0;
437 }
438 }
439
zx_DEC_ELEM_b_UserInteraction(struct zx_ctx * c,struct zx_b_UserInteraction_s * x)440 int zx_DEC_ELEM_b_UserInteraction(struct zx_ctx* c, struct zx_b_UserInteraction_s* x)
441 {
442 struct zx_elem_s* el = x->gg.kids;
443 switch (el->g.tok) {
444 case zx_b_InteractionService_ELEM:
445 if (!x->InteractionService)
446 x->InteractionService = (struct zx_b_InteractionService_s*)el;
447 return 1;
448
449 default: return 0;
450 }
451 }
452
453
454 /* EOF -- c/zx-b-dec.c */
455