1 /* c/zx-xasp-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-xasp-data.h"
36 #define TPF zx_
37 #include "zx_ext_pt.h"
38 
39 
40 
zx_DEC_ATTR_xasp_XACMLAuthzDecisionQuery(struct zx_ctx * c,struct zx_xasp_XACMLAuthzDecisionQuery_s * x)41 int zx_DEC_ATTR_xasp_XACMLAuthzDecisionQuery(struct zx_ctx* c, struct zx_xasp_XACMLAuthzDecisionQuery_s* x)
42 {
43   switch (x->gg.attr->g.tok) {
44     case zx_Consent_ATTR:  x->Consent = x->gg.attr; return 1;
45     case zx_Destination_ATTR:  x->Destination = x->gg.attr; return 1;
46     case zx_ID_ATTR:  x->ID = x->gg.attr; return 1;
47     case zx_InputContextOnly_ATTR:  x->InputContextOnly = x->gg.attr; return 1;
48     case zx_IssueInstant_ATTR:  x->IssueInstant = x->gg.attr; return 1;
49     case zx_ReturnContext_ATTR:  x->ReturnContext = x->gg.attr; return 1;
50     case zx_Version_ATTR:  x->Version = x->gg.attr; return 1;
51 
52   default: return 0;
53   }
54 }
55 
zx_DEC_ELEM_xasp_XACMLAuthzDecisionQuery(struct zx_ctx * c,struct zx_xasp_XACMLAuthzDecisionQuery_s * x)56 int zx_DEC_ELEM_xasp_XACMLAuthzDecisionQuery(struct zx_ctx* c, struct zx_xasp_XACMLAuthzDecisionQuery_s* x)
57 {
58   struct zx_elem_s* el = x->gg.kids;
59   switch (el->g.tok) {
60   case zx_sa_Issuer_ELEM:
61     if (!x->Issuer)
62       x->Issuer = (struct zx_sa_Issuer_s*)el;
63     return 1;
64   case zx_ds_Signature_ELEM:
65     if (!x->Signature)
66       x->Signature = (struct zx_ds_Signature_s*)el;
67     return 1;
68   case zx_sp_Extensions_ELEM:
69     if (!x->Extensions)
70       x->Extensions = (struct zx_sp_Extensions_s*)el;
71     return 1;
72   case zx_xac_Request_ELEM:
73     if (!x->Request)
74       x->Request = (struct zx_xac_Request_s*)el;
75     return 1;
76 
77   default: return 0;
78   }
79 }
80 
81 
82 
83 
zx_DEC_ATTR_xasp_XACMLPolicyQuery(struct zx_ctx * c,struct zx_xasp_XACMLPolicyQuery_s * x)84 int zx_DEC_ATTR_xasp_XACMLPolicyQuery(struct zx_ctx* c, struct zx_xasp_XACMLPolicyQuery_s* x)
85 {
86   switch (x->gg.attr->g.tok) {
87     case zx_Consent_ATTR:  x->Consent = x->gg.attr; return 1;
88     case zx_Destination_ATTR:  x->Destination = x->gg.attr; return 1;
89     case zx_ID_ATTR:  x->ID = x->gg.attr; return 1;
90     case zx_IssueInstant_ATTR:  x->IssueInstant = x->gg.attr; return 1;
91     case zx_Version_ATTR:  x->Version = x->gg.attr; return 1;
92 
93   default: return 0;
94   }
95 }
96 
zx_DEC_ELEM_xasp_XACMLPolicyQuery(struct zx_ctx * c,struct zx_xasp_XACMLPolicyQuery_s * x)97 int zx_DEC_ELEM_xasp_XACMLPolicyQuery(struct zx_ctx* c, struct zx_xasp_XACMLPolicyQuery_s* x)
98 {
99   struct zx_elem_s* el = x->gg.kids;
100   switch (el->g.tok) {
101   case zx_sa_Issuer_ELEM:
102     if (!x->Issuer)
103       x->Issuer = (struct zx_sa_Issuer_s*)el;
104     return 1;
105   case zx_ds_Signature_ELEM:
106     if (!x->Signature)
107       x->Signature = (struct zx_ds_Signature_s*)el;
108     return 1;
109   case zx_sp_Extensions_ELEM:
110     if (!x->Extensions)
111       x->Extensions = (struct zx_sp_Extensions_s*)el;
112     return 1;
113   case zx_xac_Request_ELEM:
114     if (!x->Request)
115       x->Request = (struct zx_xac_Request_s*)el;
116     return 1;
117   case zx_xa_Target_ELEM:
118     if (!x->Target)
119       x->Target = (struct zx_xa_Target_s*)el;
120     return 1;
121   case zx_xa_PolicySetIdReference_ELEM:
122     if (!x->PolicySetIdReference)
123       x->PolicySetIdReference = (struct zx_xa_PolicySetIdReference_s*)el;
124     return 1;
125   case zx_xa_PolicyIdReference_ELEM:
126     if (!x->PolicyIdReference)
127       x->PolicyIdReference = (struct zx_xa_PolicyIdReference_s*)el;
128     return 1;
129 
130   default: return 0;
131   }
132 }
133 
134 
135 /* EOF -- c/zx-xasp-dec.c */
136