1 /* c/zx-m20-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-m20-data.h"
36 #define TPF zx_
37 #include "zx_ext_pt.h"
38 
39 
40 
zx_DEC_ATTR_m20_AdditionalMetaLocation(struct zx_ctx * c,struct zx_m20_AdditionalMetaLocation_s * x)41 int zx_DEC_ATTR_m20_AdditionalMetaLocation(struct zx_ctx* c, struct zx_m20_AdditionalMetaLocation_s* x)
42 {
43   switch (x->gg.attr->g.tok) {
44     case zx_namespace_ATTR:  x->namespace_is_cxx_keyword = x->gg.attr; return 1;
45 
46   default: return 0;
47   }
48 }
49 
zx_DEC_ELEM_m20_AdditionalMetaLocation(struct zx_ctx * c,struct zx_m20_AdditionalMetaLocation_s * x)50 int zx_DEC_ELEM_m20_AdditionalMetaLocation(struct zx_ctx* c, struct zx_m20_AdditionalMetaLocation_s* x)
51 {
52   struct zx_elem_s* el = x->gg.kids;
53   switch (el->g.tok) {
54 
55   default: return 0;
56   }
57 }
58 
59 
60 
61 
zx_DEC_ATTR_m20_AffiliationDescriptor(struct zx_ctx * c,struct zx_m20_AffiliationDescriptor_s * x)62 int zx_DEC_ATTR_m20_AffiliationDescriptor(struct zx_ctx* c, struct zx_m20_AffiliationDescriptor_s* x)
63 {
64   switch (x->gg.attr->g.tok) {
65     case zx_affiliationOwnerID_ATTR:  x->affiliationOwnerID = x->gg.attr; return 1;
66     case zx_cacheDuration_ATTR:  x->cacheDuration = x->gg.attr; return 1;
67     case zx_id_ATTR:  x->id = x->gg.attr; return 1;
68     case zx_validUntil_ATTR:  x->validUntil = x->gg.attr; return 1;
69 
70   default: return 0;
71   }
72 }
73 
zx_DEC_ELEM_m20_AffiliationDescriptor(struct zx_ctx * c,struct zx_m20_AffiliationDescriptor_s * x)74 int zx_DEC_ELEM_m20_AffiliationDescriptor(struct zx_ctx* c, struct zx_m20_AffiliationDescriptor_s* x)
75 {
76   struct zx_elem_s* el = x->gg.kids;
77   switch (el->g.tok) {
78   case zx_m20_AffiliateMember_ELEM:
79     if (!x->AffiliateMember)
80       x->AffiliateMember = el;
81     return 1;
82   case zx_m20_Extension_ELEM:
83     if (!x->Extension)
84       x->Extension = (struct zx_m20_Extension_s*)el;
85     return 1;
86   case zx_m20_KeyDescriptor_ELEM:
87     if (!x->KeyDescriptor)
88       x->KeyDescriptor = (struct zx_m20_KeyDescriptor_s*)el;
89     return 1;
90   case zx_ds_Signature_ELEM:
91     if (!x->Signature)
92       x->Signature = (struct zx_ds_Signature_s*)el;
93     return 1;
94 
95   default: return 0;
96   }
97 }
98 
99 
100 
101 
zx_DEC_ATTR_m20_AssertionConsumerServiceURL(struct zx_ctx * c,struct zx_m20_AssertionConsumerServiceURL_s * x)102 int zx_DEC_ATTR_m20_AssertionConsumerServiceURL(struct zx_ctx* c, struct zx_m20_AssertionConsumerServiceURL_s* x)
103 {
104   switch (x->gg.attr->g.tok) {
105     case zx_id_ATTR:  x->id = x->gg.attr; return 1;
106     case zx_isDefault_ATTR:  x->isDefault = x->gg.attr; return 1;
107 
108   default: return 0;
109   }
110 }
111 
zx_DEC_ELEM_m20_AssertionConsumerServiceURL(struct zx_ctx * c,struct zx_m20_AssertionConsumerServiceURL_s * x)112 int zx_DEC_ELEM_m20_AssertionConsumerServiceURL(struct zx_ctx* c, struct zx_m20_AssertionConsumerServiceURL_s* x)
113 {
114   struct zx_elem_s* el = x->gg.kids;
115   switch (el->g.tok) {
116 
117   default: return 0;
118   }
119 }
120 
121 
122 
123 
zx_DEC_ATTR_m20_ContactPerson(struct zx_ctx * c,struct zx_m20_ContactPerson_s * x)124 int zx_DEC_ATTR_m20_ContactPerson(struct zx_ctx* c, struct zx_m20_ContactPerson_s* x)
125 {
126   switch (x->gg.attr->g.tok) {
127     case zx_contactType_ATTR:  x->contactType = x->gg.attr; return 1;
128     case zx_libertyPrincipalIdentifier_ATTR:  x->libertyPrincipalIdentifier = x->gg.attr; return 1;
129 
130   default: return 0;
131   }
132 }
133 
zx_DEC_ELEM_m20_ContactPerson(struct zx_ctx * c,struct zx_m20_ContactPerson_s * x)134 int zx_DEC_ELEM_m20_ContactPerson(struct zx_ctx* c, struct zx_m20_ContactPerson_s* x)
135 {
136   struct zx_elem_s* el = x->gg.kids;
137   switch (el->g.tok) {
138   case zx_m20_Company_ELEM:
139     if (!x->Company)
140       x->Company = el;
141     return 1;
142   case zx_m20_GivenName_ELEM:
143     if (!x->GivenName)
144       x->GivenName = el;
145     return 1;
146   case zx_m20_SurName_ELEM:
147     if (!x->SurName)
148       x->SurName = el;
149     return 1;
150   case zx_m20_EmailAddress_ELEM:
151     if (!x->EmailAddress)
152       x->EmailAddress = el;
153     return 1;
154   case zx_m20_TelephoneNumber_ELEM:
155     if (!x->TelephoneNumber)
156       x->TelephoneNumber = el;
157     return 1;
158   case zx_m20_Extension_ELEM:
159     if (!x->Extension)
160       x->Extension = (struct zx_m20_Extension_s*)el;
161     return 1;
162 
163   default: return 0;
164   }
165 }
166 
167 
168 
169 
zx_DEC_ATTR_m20_EntitiesDescriptor(struct zx_ctx * c,struct zx_m20_EntitiesDescriptor_s * x)170 int zx_DEC_ATTR_m20_EntitiesDescriptor(struct zx_ctx* c, struct zx_m20_EntitiesDescriptor_s* x)
171 {
172   switch (x->gg.attr->g.tok) {
173 
174   default: return 0;
175   }
176 }
177 
zx_DEC_ELEM_m20_EntitiesDescriptor(struct zx_ctx * c,struct zx_m20_EntitiesDescriptor_s * x)178 int zx_DEC_ELEM_m20_EntitiesDescriptor(struct zx_ctx* c, struct zx_m20_EntitiesDescriptor_s* x)
179 {
180   struct zx_elem_s* el = x->gg.kids;
181   switch (el->g.tok) {
182   case zx_m20_EntityDescriptor_ELEM:
183     if (!x->EntityDescriptor)
184       x->EntityDescriptor = (struct zx_m20_EntityDescriptor_s*)el;
185     return 1;
186 
187   default: return 0;
188   }
189 }
190 
191 
192 
193 
zx_DEC_ATTR_m20_EntityDescriptor(struct zx_ctx * c,struct zx_m20_EntityDescriptor_s * x)194 int zx_DEC_ATTR_m20_EntityDescriptor(struct zx_ctx* c, struct zx_m20_EntityDescriptor_s* x)
195 {
196   switch (x->gg.attr->g.tok) {
197     case zx_cacheDuration_ATTR:  x->cacheDuration = x->gg.attr; return 1;
198     case zx_id_ATTR:  x->id = x->gg.attr; return 1;
199     case zx_providerID_ATTR:  x->providerID = x->gg.attr; return 1;
200     case zx_validUntil_ATTR:  x->validUntil = x->gg.attr; return 1;
201 
202   default: return 0;
203   }
204 }
205 
zx_DEC_ELEM_m20_EntityDescriptor(struct zx_ctx * c,struct zx_m20_EntityDescriptor_s * x)206 int zx_DEC_ELEM_m20_EntityDescriptor(struct zx_ctx* c, struct zx_m20_EntityDescriptor_s* x)
207 {
208   struct zx_elem_s* el = x->gg.kids;
209   switch (el->g.tok) {
210   case zx_m20_IDPDescriptor_ELEM:
211     if (!x->IDPDescriptor)
212       x->IDPDescriptor = (struct zx_m20_IDPDescriptor_s*)el;
213     return 1;
214   case zx_m20_SPDescriptor_ELEM:
215     if (!x->SPDescriptor)
216       x->SPDescriptor = (struct zx_m20_SPDescriptor_s*)el;
217     return 1;
218   case zx_m20_AffiliationDescriptor_ELEM:
219     if (!x->AffiliationDescriptor)
220       x->AffiliationDescriptor = (struct zx_m20_AffiliationDescriptor_s*)el;
221     return 1;
222   case zx_m20_ContactPerson_ELEM:
223     if (!x->ContactPerson)
224       x->ContactPerson = (struct zx_m20_ContactPerson_s*)el;
225     return 1;
226   case zx_m20_Organization_ELEM:
227     if (!x->Organization)
228       x->Organization = (struct zx_m20_Organization_s*)el;
229     return 1;
230   case zx_m20_Extension_ELEM:
231     if (!x->Extension)
232       x->Extension = (struct zx_m20_Extension_s*)el;
233     return 1;
234   case zx_ds_Signature_ELEM:
235     if (!x->Signature)
236       x->Signature = (struct zx_ds_Signature_s*)el;
237     return 1;
238 
239   default: return 0;
240   }
241 }
242 
243 
244 
245 
zx_DEC_ATTR_m20_Extension(struct zx_ctx * c,struct zx_m20_Extension_s * x)246 int zx_DEC_ATTR_m20_Extension(struct zx_ctx* c, struct zx_m20_Extension_s* x)
247 {
248   switch (x->gg.attr->g.tok) {
249 
250   default: return 0;
251   }
252 }
253 
zx_DEC_ELEM_m20_Extension(struct zx_ctx * c,struct zx_m20_Extension_s * x)254 int zx_DEC_ELEM_m20_Extension(struct zx_ctx* c, struct zx_m20_Extension_s* x)
255 {
256   struct zx_elem_s* el = x->gg.kids;
257   switch (el->g.tok) {
258 
259   default: return 0;
260   }
261 }
262 
263 
264 
265 
zx_DEC_ATTR_m20_IDPDescriptor(struct zx_ctx * c,struct zx_m20_IDPDescriptor_s * x)266 int zx_DEC_ATTR_m20_IDPDescriptor(struct zx_ctx* c, struct zx_m20_IDPDescriptor_s* x)
267 {
268   switch (x->gg.attr->g.tok) {
269     case zx_cacheDuration_ATTR:  x->cacheDuration = x->gg.attr; return 1;
270     case zx_id_ATTR:  x->id = x->gg.attr; return 1;
271     case zx_protocolSupportEnumeration_ATTR:  x->protocolSupportEnumeration = x->gg.attr; return 1;
272     case zx_validUntil_ATTR:  x->validUntil = x->gg.attr; return 1;
273 
274   default: return 0;
275   }
276 }
277 
zx_DEC_ELEM_m20_IDPDescriptor(struct zx_ctx * c,struct zx_m20_IDPDescriptor_s * x)278 int zx_DEC_ELEM_m20_IDPDescriptor(struct zx_ctx* c, struct zx_m20_IDPDescriptor_s* x)
279 {
280   struct zx_elem_s* el = x->gg.kids;
281   switch (el->g.tok) {
282   case zx_m20_KeyDescriptor_ELEM:
283     if (!x->KeyDescriptor)
284       x->KeyDescriptor = (struct zx_m20_KeyDescriptor_s*)el;
285     return 1;
286   case zx_m20_SoapEndpoint_ELEM:
287     if (!x->SoapEndpoint)
288       x->SoapEndpoint = el;
289     return 1;
290   case zx_m20_SingleLogoutServiceURL_ELEM:
291     if (!x->SingleLogoutServiceURL)
292       x->SingleLogoutServiceURL = el;
293     return 1;
294   case zx_m20_SingleLogoutServiceReturnURL_ELEM:
295     if (!x->SingleLogoutServiceReturnURL)
296       x->SingleLogoutServiceReturnURL = el;
297     return 1;
298   case zx_m20_FederationTerminationServiceURL_ELEM:
299     if (!x->FederationTerminationServiceURL)
300       x->FederationTerminationServiceURL = el;
301     return 1;
302   case zx_m20_FederationTerminationServiceReturnURL_ELEM:
303     if (!x->FederationTerminationServiceReturnURL)
304       x->FederationTerminationServiceReturnURL = el;
305     return 1;
306   case zx_m20_FederationTerminationNotificationProtocolProfile_ELEM:
307     if (!x->FederationTerminationNotificationProtocolProfile)
308       x->FederationTerminationNotificationProtocolProfile = el;
309     return 1;
310   case zx_m20_SingleLogoutProtocolProfile_ELEM:
311     if (!x->SingleLogoutProtocolProfile)
312       x->SingleLogoutProtocolProfile = el;
313     return 1;
314   case zx_m20_RegisterNameIdentifierProtocolProfile_ELEM:
315     if (!x->RegisterNameIdentifierProtocolProfile)
316       x->RegisterNameIdentifierProtocolProfile = el;
317     return 1;
318   case zx_m20_RegisterNameIdentifierServiceURL_ELEM:
319     if (!x->RegisterNameIdentifierServiceURL)
320       x->RegisterNameIdentifierServiceURL = el;
321     return 1;
322   case zx_m20_RegisterNameIdentifierServiceReturnURL_ELEM:
323     if (!x->RegisterNameIdentifierServiceReturnURL)
324       x->RegisterNameIdentifierServiceReturnURL = el;
325     return 1;
326   case zx_m20_NameIdentifierMappingProtocolProfile_ELEM:
327     if (!x->NameIdentifierMappingProtocolProfile)
328       x->NameIdentifierMappingProtocolProfile = el;
329     return 1;
330   case zx_m20_NameIdentifierMappingEncryptionProfile_ELEM:
331     if (!x->NameIdentifierMappingEncryptionProfile)
332       x->NameIdentifierMappingEncryptionProfile = el;
333     return 1;
334   case zx_m20_Organization_ELEM:
335     if (!x->Organization)
336       x->Organization = (struct zx_m20_Organization_s*)el;
337     return 1;
338   case zx_m20_ContactPerson_ELEM:
339     if (!x->ContactPerson)
340       x->ContactPerson = (struct zx_m20_ContactPerson_s*)el;
341     return 1;
342   case zx_m20_AdditionalMetaLocation_ELEM:
343     if (!x->AdditionalMetaLocation)
344       x->AdditionalMetaLocation = (struct zx_m20_AdditionalMetaLocation_s*)el;
345     return 1;
346   case zx_m20_Extension_ELEM:
347     if (!x->Extension)
348       x->Extension = (struct zx_m20_Extension_s*)el;
349     return 1;
350   case zx_ds_Signature_ELEM:
351     if (!x->Signature)
352       x->Signature = (struct zx_ds_Signature_s*)el;
353     return 1;
354   case zx_m20_SingleSignOnServiceURL_ELEM:
355     if (!x->SingleSignOnServiceURL)
356       x->SingleSignOnServiceURL = el;
357     return 1;
358   case zx_m20_SingleSignOnProtocolProfile_ELEM:
359     if (!x->SingleSignOnProtocolProfile)
360       x->SingleSignOnProtocolProfile = el;
361     return 1;
362   case zx_m20_AuthnServiceURL_ELEM:
363     if (!x->AuthnServiceURL)
364       x->AuthnServiceURL = el;
365     return 1;
366 
367   default: return 0;
368   }
369 }
370 
371 
372 
373 
zx_DEC_ATTR_m20_KeyDescriptor(struct zx_ctx * c,struct zx_m20_KeyDescriptor_s * x)374 int zx_DEC_ATTR_m20_KeyDescriptor(struct zx_ctx* c, struct zx_m20_KeyDescriptor_s* x)
375 {
376   switch (x->gg.attr->g.tok) {
377     case zx_use_ATTR:  x->use = x->gg.attr; return 1;
378 
379   default: return 0;
380   }
381 }
382 
zx_DEC_ELEM_m20_KeyDescriptor(struct zx_ctx * c,struct zx_m20_KeyDescriptor_s * x)383 int zx_DEC_ELEM_m20_KeyDescriptor(struct zx_ctx* c, struct zx_m20_KeyDescriptor_s* x)
384 {
385   struct zx_elem_s* el = x->gg.kids;
386   switch (el->g.tok) {
387   case zx_m20_EncryptionMethod_ELEM:
388     if (!x->EncryptionMethod)
389       x->EncryptionMethod = el;
390     return 1;
391   case zx_m20_KeySize_ELEM:
392     if (!x->KeySize)
393       x->KeySize = el;
394     return 1;
395   case zx_ds_KeyInfo_ELEM:
396     if (!x->KeyInfo)
397       x->KeyInfo = (struct zx_ds_KeyInfo_s*)el;
398     return 1;
399   case zx_m20_Extension_ELEM:
400     if (!x->Extension)
401       x->Extension = (struct zx_m20_Extension_s*)el;
402     return 1;
403 
404   default: return 0;
405   }
406 }
407 
408 
409 
410 
zx_DEC_ATTR_m20_Organization(struct zx_ctx * c,struct zx_m20_Organization_s * x)411 int zx_DEC_ATTR_m20_Organization(struct zx_ctx* c, struct zx_m20_Organization_s* x)
412 {
413   switch (x->gg.attr->g.tok) {
414 
415   default: return 0;
416   }
417 }
418 
zx_DEC_ELEM_m20_Organization(struct zx_ctx * c,struct zx_m20_Organization_s * x)419 int zx_DEC_ELEM_m20_Organization(struct zx_ctx* c, struct zx_m20_Organization_s* x)
420 {
421   struct zx_elem_s* el = x->gg.kids;
422   switch (el->g.tok) {
423   case zx_m20_OrganizationName_ELEM:
424     if (!x->OrganizationName)
425       x->OrganizationName = (struct zx_m20_OrganizationName_s*)el;
426     return 1;
427   case zx_m20_OrganizationDisplayName_ELEM:
428     if (!x->OrganizationDisplayName)
429       x->OrganizationDisplayName = (struct zx_m20_OrganizationDisplayName_s*)el;
430     return 1;
431   case zx_m20_OrganizationURL_ELEM:
432     if (!x->OrganizationURL)
433       x->OrganizationURL = (struct zx_m20_OrganizationURL_s*)el;
434     return 1;
435   case zx_m20_Extension_ELEM:
436     if (!x->Extension)
437       x->Extension = (struct zx_m20_Extension_s*)el;
438     return 1;
439 
440   default: return 0;
441   }
442 }
443 
444 
445 
446 
zx_DEC_ATTR_m20_OrganizationDisplayName(struct zx_ctx * c,struct zx_m20_OrganizationDisplayName_s * x)447 int zx_DEC_ATTR_m20_OrganizationDisplayName(struct zx_ctx* c, struct zx_m20_OrganizationDisplayName_s* x)
448 {
449   switch (x->gg.attr->g.tok) {
450     case zx_lang_ATTR:  x->lang = x->gg.attr; return 1;
451 
452   default: return 0;
453   }
454 }
455 
zx_DEC_ELEM_m20_OrganizationDisplayName(struct zx_ctx * c,struct zx_m20_OrganizationDisplayName_s * x)456 int zx_DEC_ELEM_m20_OrganizationDisplayName(struct zx_ctx* c, struct zx_m20_OrganizationDisplayName_s* x)
457 {
458   struct zx_elem_s* el = x->gg.kids;
459   switch (el->g.tok) {
460 
461   default: return 0;
462   }
463 }
464 
465 
466 
467 
zx_DEC_ATTR_m20_OrganizationName(struct zx_ctx * c,struct zx_m20_OrganizationName_s * x)468 int zx_DEC_ATTR_m20_OrganizationName(struct zx_ctx* c, struct zx_m20_OrganizationName_s* x)
469 {
470   switch (x->gg.attr->g.tok) {
471     case zx_lang_ATTR:  x->lang = x->gg.attr; return 1;
472 
473   default: return 0;
474   }
475 }
476 
zx_DEC_ELEM_m20_OrganizationName(struct zx_ctx * c,struct zx_m20_OrganizationName_s * x)477 int zx_DEC_ELEM_m20_OrganizationName(struct zx_ctx* c, struct zx_m20_OrganizationName_s* x)
478 {
479   struct zx_elem_s* el = x->gg.kids;
480   switch (el->g.tok) {
481 
482   default: return 0;
483   }
484 }
485 
486 
487 
488 
zx_DEC_ATTR_m20_OrganizationURL(struct zx_ctx * c,struct zx_m20_OrganizationURL_s * x)489 int zx_DEC_ATTR_m20_OrganizationURL(struct zx_ctx* c, struct zx_m20_OrganizationURL_s* x)
490 {
491   switch (x->gg.attr->g.tok) {
492     case zx_lang_ATTR:  x->lang = x->gg.attr; return 1;
493 
494   default: return 0;
495   }
496 }
497 
zx_DEC_ELEM_m20_OrganizationURL(struct zx_ctx * c,struct zx_m20_OrganizationURL_s * x)498 int zx_DEC_ELEM_m20_OrganizationURL(struct zx_ctx* c, struct zx_m20_OrganizationURL_s* x)
499 {
500   struct zx_elem_s* el = x->gg.kids;
501   switch (el->g.tok) {
502 
503   default: return 0;
504   }
505 }
506 
507 
508 
509 
zx_DEC_ATTR_m20_SPDescriptor(struct zx_ctx * c,struct zx_m20_SPDescriptor_s * x)510 int zx_DEC_ATTR_m20_SPDescriptor(struct zx_ctx* c, struct zx_m20_SPDescriptor_s* x)
511 {
512   switch (x->gg.attr->g.tok) {
513     case zx_cacheDuration_ATTR:  x->cacheDuration = x->gg.attr; return 1;
514     case zx_id_ATTR:  x->id = x->gg.attr; return 1;
515     case zx_protocolSupportEnumeration_ATTR:  x->protocolSupportEnumeration = x->gg.attr; return 1;
516     case zx_validUntil_ATTR:  x->validUntil = x->gg.attr; return 1;
517 
518   default: return 0;
519   }
520 }
521 
zx_DEC_ELEM_m20_SPDescriptor(struct zx_ctx * c,struct zx_m20_SPDescriptor_s * x)522 int zx_DEC_ELEM_m20_SPDescriptor(struct zx_ctx* c, struct zx_m20_SPDescriptor_s* x)
523 {
524   struct zx_elem_s* el = x->gg.kids;
525   switch (el->g.tok) {
526   case zx_m20_KeyDescriptor_ELEM:
527     if (!x->KeyDescriptor)
528       x->KeyDescriptor = (struct zx_m20_KeyDescriptor_s*)el;
529     return 1;
530   case zx_m20_SoapEndpoint_ELEM:
531     if (!x->SoapEndpoint)
532       x->SoapEndpoint = el;
533     return 1;
534   case zx_m20_SingleLogoutServiceURL_ELEM:
535     if (!x->SingleLogoutServiceURL)
536       x->SingleLogoutServiceURL = el;
537     return 1;
538   case zx_m20_SingleLogoutServiceReturnURL_ELEM:
539     if (!x->SingleLogoutServiceReturnURL)
540       x->SingleLogoutServiceReturnURL = el;
541     return 1;
542   case zx_m20_FederationTerminationServiceURL_ELEM:
543     if (!x->FederationTerminationServiceURL)
544       x->FederationTerminationServiceURL = el;
545     return 1;
546   case zx_m20_FederationTerminationServiceReturnURL_ELEM:
547     if (!x->FederationTerminationServiceReturnURL)
548       x->FederationTerminationServiceReturnURL = el;
549     return 1;
550   case zx_m20_FederationTerminationNotificationProtocolProfile_ELEM:
551     if (!x->FederationTerminationNotificationProtocolProfile)
552       x->FederationTerminationNotificationProtocolProfile = el;
553     return 1;
554   case zx_m20_SingleLogoutProtocolProfile_ELEM:
555     if (!x->SingleLogoutProtocolProfile)
556       x->SingleLogoutProtocolProfile = el;
557     return 1;
558   case zx_m20_RegisterNameIdentifierProtocolProfile_ELEM:
559     if (!x->RegisterNameIdentifierProtocolProfile)
560       x->RegisterNameIdentifierProtocolProfile = el;
561     return 1;
562   case zx_m20_RegisterNameIdentifierServiceURL_ELEM:
563     if (!x->RegisterNameIdentifierServiceURL)
564       x->RegisterNameIdentifierServiceURL = el;
565     return 1;
566   case zx_m20_RegisterNameIdentifierServiceReturnURL_ELEM:
567     if (!x->RegisterNameIdentifierServiceReturnURL)
568       x->RegisterNameIdentifierServiceReturnURL = el;
569     return 1;
570   case zx_m20_NameIdentifierMappingProtocolProfile_ELEM:
571     if (!x->NameIdentifierMappingProtocolProfile)
572       x->NameIdentifierMappingProtocolProfile = el;
573     return 1;
574   case zx_m20_NameIdentifierMappingEncryptionProfile_ELEM:
575     if (!x->NameIdentifierMappingEncryptionProfile)
576       x->NameIdentifierMappingEncryptionProfile = el;
577     return 1;
578   case zx_m20_Organization_ELEM:
579     if (!x->Organization)
580       x->Organization = (struct zx_m20_Organization_s*)el;
581     return 1;
582   case zx_m20_ContactPerson_ELEM:
583     if (!x->ContactPerson)
584       x->ContactPerson = (struct zx_m20_ContactPerson_s*)el;
585     return 1;
586   case zx_m20_AdditionalMetaLocation_ELEM:
587     if (!x->AdditionalMetaLocation)
588       x->AdditionalMetaLocation = (struct zx_m20_AdditionalMetaLocation_s*)el;
589     return 1;
590   case zx_m20_Extension_ELEM:
591     if (!x->Extension)
592       x->Extension = (struct zx_m20_Extension_s*)el;
593     return 1;
594   case zx_ds_Signature_ELEM:
595     if (!x->Signature)
596       x->Signature = (struct zx_ds_Signature_s*)el;
597     return 1;
598   case zx_m20_AssertionConsumerServiceURL_ELEM:
599     if (!x->AssertionConsumerServiceURL)
600       x->AssertionConsumerServiceURL = (struct zx_m20_AssertionConsumerServiceURL_s*)el;
601     return 1;
602   case zx_m20_AuthnRequestsSigned_ELEM:
603     if (!x->AuthnRequestsSigned)
604       x->AuthnRequestsSigned = el;
605     return 1;
606 
607   default: return 0;
608   }
609 }
610 
611 
612 /* EOF -- c/zx-m20-dec.c */
613