1 /* c/zx-sec-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-sec-data.h" 36 #define TPF zx_ 37 #include "zx_ext_pt.h" 38 39 40 41 int zx_DEC_ATTR_sec_Token(struct zx_ctx* c, struct zx_sec_Token_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_ref_ATTR: x->ref = x->gg.attr; return 1; 46 case zx_usage_ATTR: x->usage = x->gg.attr; return 1; 47 48 default: return 0; 49 } 50 } 51 52 int zx_DEC_ELEM_sec_Token(struct zx_ctx* c, struct zx_sec_Token_s* x) 53 { 54 struct zx_elem_s* el = x->gg.kids; 55 switch (el->g.tok) { 56 case zx_sa_Assertion_ELEM: 57 if (!x->Assertion) 58 x->Assertion = (struct zx_sa_Assertion_s*)el; 59 return 1; 60 case zx_sa_EncryptedAssertion_ELEM: 61 if (!x->EncryptedAssertion) 62 x->EncryptedAssertion = (struct zx_sa_EncryptedAssertion_s*)el; 63 return 1; 64 case zx_sa11_Assertion_ELEM: 65 if (!x->sa11_Assertion) 66 x->sa11_Assertion = (struct zx_sa11_Assertion_s*)el; 67 return 1; 68 case zx_ff12_Assertion_ELEM: 69 if (!x->ff12_Assertion) 70 x->ff12_Assertion = (struct zx_ff12_Assertion_s*)el; 71 return 1; 72 73 default: return 0; 74 } 75 } 76 77 78 79 80 int zx_DEC_ATTR_sec_TokenPolicy(struct zx_ctx* c, struct zx_sec_TokenPolicy_s* x) 81 { 82 switch (x->gg.attr->g.tok) { 83 case zx_issueTo_ATTR: x->issueTo = x->gg.attr; return 1; 84 case zx_type_ATTR: x->type = x->gg.attr; return 1; 85 case zx_validUntil_ATTR: x->validUntil = x->gg.attr; return 1; 86 case zx_wantDSEPR_ATTR: x->wantDSEPR = x->gg.attr; return 1; 87 88 default: return 0; 89 } 90 } 91 92 int zx_DEC_ELEM_sec_TokenPolicy(struct zx_ctx* c, struct zx_sec_TokenPolicy_s* x) 93 { 94 struct zx_elem_s* el = x->gg.kids; 95 switch (el->g.tok) { 96 case zx_sp_NameIDPolicy_ELEM: 97 if (!x->NameIDPolicy) 98 x->NameIDPolicy = (struct zx_sp_NameIDPolicy_s*)el; 99 return 1; 100 101 default: return 0; 102 } 103 } 104 105 106 107 108 int zx_DEC_ATTR_sec_TransitedProvider(struct zx_ctx* c, struct zx_sec_TransitedProvider_s* x) 109 { 110 switch (x->gg.attr->g.tok) { 111 case zx_confirmationURI_ATTR: x->confirmationURI = x->gg.attr; return 1; 112 case zx_timeStamp_ATTR: x->timeStamp = x->gg.attr; return 1; 113 114 default: return 0; 115 } 116 } 117 118 int zx_DEC_ELEM_sec_TransitedProvider(struct zx_ctx* c, struct zx_sec_TransitedProvider_s* x) 119 { 120 struct zx_elem_s* el = x->gg.kids; 121 switch (el->g.tok) { 122 123 default: return 0; 124 } 125 } 126 127 128 129 130 int zx_DEC_ATTR_sec_TransitedProviderPath(struct zx_ctx* c, struct zx_sec_TransitedProviderPath_s* x) 131 { 132 switch (x->gg.attr->g.tok) { 133 134 default: return 0; 135 } 136 } 137 138 int zx_DEC_ELEM_sec_TransitedProviderPath(struct zx_ctx* c, struct zx_sec_TransitedProviderPath_s* x) 139 { 140 struct zx_elem_s* el = x->gg.kids; 141 switch (el->g.tok) { 142 case zx_sec_TransitedProvider_ELEM: 143 if (!x->TransitedProvider) 144 x->TransitedProvider = (struct zx_sec_TransitedProvider_s*)el; 145 return 1; 146 147 default: return 0; 148 } 149 } 150 151 152 /* EOF -- c/zx-sec-dec.c */ 153