Revised metadata API.
[shibboleth/cpp-sp.git] / xmlproviders / XML.cpp
1 /*
2  * The Shibboleth License, Version 1.
3  * Copyright (c) 2002
4  * University Corporation for Advanced Internet Development, Inc.
5  * All rights reserved
6  *
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions are met:
10  *
11  * Redistributions of source code must retain the above copyright notice, this
12  * list of conditions and the following disclaimer.
13  *
14  * Redistributions in binary form must reproduce the above copyright notice,
15  * this list of conditions and the following disclaimer in the documentation
16  * and/or other materials provided with the distribution, if any, must include
17  * the following acknowledgment: "This product includes software developed by
18  * the University Corporation for Advanced Internet Development
19  * <http://www.ucaid.edu>Internet2 Project. Alternately, this acknowledegement
20  * may appear in the software itself, if and wherever such third-party
21  * acknowledgments normally appear.
22  *
23  * Neither the name of Shibboleth nor the names of its contributors, nor
24  * Internet2, nor the University Corporation for Advanced Internet Development,
25  * Inc., nor UCAID may be used to endorse or promote products derived from this
26  * software without specific prior written permission. For written permission,
27  * please contact shibboleth@shibboleth.org
28  *
29  * Products derived from this software may not be called Shibboleth, Internet2,
30  * UCAID, or the University Corporation for Advanced Internet Development, nor
31  * may Shibboleth appear in their name, without prior written permission of the
32  * University Corporation for Advanced Internet Development.
33  *
34  *
35  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
36  * AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
37  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
38  * PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK
39  * OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE.
40  * IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY
41  * CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT,
42  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
43  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
44  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
45  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
46  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
47  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
48  */
49
50
51 /* XML.cpp - XML constants
52
53    Scott Cantor
54    6/4/02
55
56    $History:$
57 */
58
59 #include "internal.h"
60
61 // Namespace and schema string literals
62
63 const XMLCh XML::CREDS_NS[] = // urn:mace:shibboleth:credentials:1.0
64 { chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_m, chLatin_a, chLatin_c, chLatin_e, chColon,
65   chLatin_s, chLatin_h, chLatin_i, chLatin_b, chLatin_b, chLatin_o, chLatin_l, chLatin_e, chLatin_t, chLatin_h, chColon,
66   chLatin_c, chLatin_r, chLatin_e, chLatin_d, chLatin_e, chLatin_n, chLatin_t, chLatin_i, chLatin_a, chLatin_l, chLatin_s, chColon,
67   chDigit_1, chPeriod, chDigit_0, chNull
68 };
69
70 const XMLCh XML::CREDS_SCHEMA_ID[] = // credentials.xsd
71 { chLatin_c, chLatin_r, chLatin_e, chLatin_d, chLatin_e, chLatin_n, chLatin_t, chLatin_i, chLatin_a, chLatin_l, chLatin_s,
72   chPeriod, chLatin_x, chLatin_s, chLatin_d, chNull
73 };
74
75 const XMLCh XML::TRUST_NS[] = // urn:mace:shibboleth:trust:1.0
76 { chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_m, chLatin_a, chLatin_c, chLatin_e, chColon,
77   chLatin_s, chLatin_h, chLatin_i, chLatin_b, chLatin_b, chLatin_o, chLatin_l, chLatin_e, chLatin_t, chLatin_h, chColon,
78   chLatin_t, chLatin_r, chLatin_u, chLatin_s, chLatin_t, chColon, chDigit_1, chPeriod, chDigit_0, chNull
79 };
80
81 const XMLCh XML::TRUST_SCHEMA_ID[] = // shibboleth-trust-1.0.xsd
82 { chLatin_s, chLatin_h, chLatin_i, chLatin_b, chLatin_b, chLatin_o, chLatin_l, chLatin_e, chLatin_t, chLatin_h, chDash,
83   chLatin_t, chLatin_r, chLatin_u, chLatin_s, chLatin_t, chDash, chDigit_1, chPeriod, chDigit_0, chPeriod,
84   chLatin_x, chLatin_s, chLatin_d, chNull
85 };
86
87 const XMLCh XML::SHIB_NS[] = // urn:mace:shibboleth:1.0
88 { chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_m, chLatin_a, chLatin_c, chLatin_e, chColon,
89   chLatin_s, chLatin_h, chLatin_i, chLatin_b, chLatin_b, chLatin_o, chLatin_l, chLatin_e, chLatin_t, chLatin_h, chColon,
90   chDigit_1, chPeriod, chDigit_0, chNull
91 };
92
93 const XMLCh XML::SHIB_SCHEMA_ID[] = // shibboleth.xsd
94 { chLatin_s, chLatin_h, chLatin_i, chLatin_b, chLatin_b, chLatin_o, chLatin_l, chLatin_e, chLatin_t, chLatin_h, 
95   chPeriod, chLatin_x, chLatin_s, chLatin_d, chNull
96 };
97
98 const XMLCh XML::SAML2ASSERT_NS[] = // urn:oasis:names:tc:SAML:2.0:assertion
99 { chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_o, chLatin_a, chLatin_s, chLatin_i, chLatin_s, chColon,
100   chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chColon, chLatin_t, chLatin_c, chColon,
101   chLatin_S, chLatin_A, chLatin_M, chLatin_L, chColon, chDigit_2, chPeriod, chDigit_0, chColon,
102   chLatin_a, chLatin_s, chLatin_s, chLatin_e, chLatin_r, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull
103 };
104
105 const XMLCh XML::SAML2ASSERT_SCHEMA_ID[] = // sstc-saml-schema-assertion-2.0.xsd
106 { chLatin_s, chLatin_s, chLatin_t, chLatin_c, chDash, chLatin_s, chLatin_a, chLatin_m, chLatin_l, chDash,
107   chLatin_s, chLatin_c, chLatin_h, chLatin_e, chLatin_m, chLatin_a, chDash,
108   chLatin_a, chLatin_s, chLatin_s, chLatin_e, chLatin_r, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chDash,
109   chDigit_2, chPeriod, chDigit_0, chPeriod, chLatin_x, chLatin_s, chLatin_d, chNull
110 };
111
112 const XMLCh XML::SAML2META_NS[] = // urn:oasis:names:tc:SAML:2.0:metadata
113 { chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_o, chLatin_a, chLatin_s, chLatin_i, chLatin_s, chColon,
114   chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chColon, chLatin_t, chLatin_c, chColon,
115   chLatin_S, chLatin_A, chLatin_M, chLatin_L, chColon, chDigit_2, chPeriod, chDigit_0, chColon,
116   chLatin_m, chLatin_e, chLatin_t, chLatin_a, chLatin_d, chLatin_a, chLatin_t, chLatin_a, chNull
117 };
118
119 const XMLCh XML::SAML2META_SCHEMA_ID[] = // sstc-saml-schema-metadata-2.0.xsd
120 { chLatin_s, chLatin_s, chLatin_t, chLatin_c, chDash, chLatin_s, chLatin_a, chLatin_m, chLatin_l, chDash,
121   chLatin_s, chLatin_c, chLatin_h, chLatin_e, chLatin_m, chLatin_a, chDash,
122   chLatin_m, chLatin_e, chLatin_t, chLatin_a, chLatin_d, chLatin_a, chLatin_t, chLatin_a, chDash,
123   chDigit_2, chPeriod, chDigit_0, chPeriod, chLatin_x, chLatin_s, chLatin_d, chNull
124 };
125
126 const XMLCh XML::XMLENC_NS[] = // http://www.w3.org/2001/04/xmlenc#
127 { chLatin_h, chLatin_t, chLatin_t, chLatin_p, chColon, chForwardSlash, chForwardSlash,
128   chLatin_w, chLatin_w, chLatin_w, chPeriod, chLatin_w, chDigit_3, chPeriod, chLatin_o, chLatin_r, chLatin_g, chForwardSlash,
129   chDigit_2, chDigit_0, chDigit_0, chDigit_1, chForwardSlash, chDigit_0, chDigit_4, chForwardSlash,
130   chLatin_x, chLatin_m, chLatin_l, chLatin_e, chLatin_n, chLatin_c, chPound, chNull
131 };
132
133 const XMLCh XML::XMLENC_SCHEMA_ID[] = // xenc-schema.xsd
134 { chLatin_x, chLatin_e, chLatin_n, chLatin_c, chDash,
135   chLatin_s, chLatin_c, chLatin_h, chLatin_e, chLatin_m, chLatin_a, chPeriod, chLatin_x, chLatin_s, chLatin_d, chNull
136 };
137
138 const XMLCh XML::XMLSIG_RETMETHOD_RAWX509[] = // http://www.w3.org/2000/09/xmldsig#rawX509Certificate
139 { chLatin_h, chLatin_t, chLatin_t, chLatin_p, chColon, chForwardSlash, chForwardSlash,
140   chLatin_w, chLatin_w, chLatin_w, chPeriod, chLatin_w, chDigit_3, chPeriod, chLatin_o, chLatin_r, chLatin_g, chForwardSlash,
141   chDigit_2, chDigit_0, chDigit_0, chDigit_0, chForwardSlash, chDigit_0, chDigit_9, chForwardSlash,
142   chLatin_x, chLatin_m, chLatin_l, chLatin_d, chLatin_s, chLatin_i, chLatin_g, chPound,
143   chLatin_r, chLatin_a, chLatin_w, chLatin_X, chDigit_5, chDigit_0, chDigit_9,
144     chLatin_C, chLatin_e, chLatin_r, chLatin_t, chLatin_i, chLatin_f, chLatin_i, chLatin_c, chLatin_a, chLatin_t, chLatin_e, chNull
145 };
146
147 const XMLCh XML::XMLSIG_RETMETHOD_RAWX509CRL[] = // // http://www.w3.org/2000/09/xmldsig-more#rawX509CRL
148 { chLatin_h, chLatin_t, chLatin_t, chLatin_p, chColon, chForwardSlash, chForwardSlash,
149   chLatin_w, chLatin_w, chLatin_w, chPeriod, chLatin_w, chDigit_3, chPeriod, chLatin_o, chLatin_r, chLatin_g, chForwardSlash,
150   chDigit_2, chDigit_0, chDigit_0, chDigit_0, chForwardSlash, chDigit_0, chDigit_9, chForwardSlash,
151   chLatin_x, chLatin_m, chLatin_l, chLatin_d, chLatin_s, chLatin_i, chLatin_g, chDash,
152   chLatin_m, chLatin_o, chLatin_r, chLatin_e, chPound,
153   chLatin_r, chLatin_a, chLatin_w, chLatin_X, chDigit_5, chDigit_0, chDigit_9, chLatin_C, chLatin_R, chLatin_L, chNull
154 };
155
156 const XMLCh XML::SHIB_RETMETHOD_PEMX509[] = // urn:mace:shibboleth:RetrievalMethod:pemX509Certificate
157 { chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_m, chLatin_a, chLatin_c, chLatin_e, chColon,
158   chLatin_s, chLatin_h, chLatin_i, chLatin_b, chLatin_b, chLatin_o, chLatin_l, chLatin_e, chLatin_t, chLatin_h, chColon,
159   chLatin_R, chLatin_e, chLatin_t, chLatin_r, chLatin_i, chLatin_e, chLatin_v, chLatin_a, chLatin_l,
160   chLatin_M, chLatin_e, chLatin_t, chLatin_h, chLatin_o, chLatin_d, chColon,
161   chLatin_p, chLatin_e, chLatin_m, chLatin_X, chDigit_5, chDigit_0, chDigit_9,
162     chLatin_C, chLatin_e, chLatin_r, chLatin_t, chLatin_i, chLatin_f, chLatin_i, chLatin_c, chLatin_a, chLatin_t, chLatin_e, chNull
163 };
164
165 const XMLCh XML::SHIB_RETMETHOD_PEMX509CRL[] = // urn:mace:shibboleth:RetrievalMethod:pemX509CRL
166 { chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_m, chLatin_a, chLatin_c, chLatin_e, chColon,
167   chLatin_s, chLatin_h, chLatin_i, chLatin_b, chLatin_b, chLatin_o, chLatin_l, chLatin_e, chLatin_t, chLatin_h, chColon,
168   chLatin_R, chLatin_e, chLatin_t, chLatin_r, chLatin_i, chLatin_e, chLatin_v, chLatin_a, chLatin_l,
169   chLatin_M, chLatin_e, chLatin_t, chLatin_h, chLatin_o, chLatin_d, chColon,
170   chLatin_p, chLatin_e, chLatin_m, chLatin_X, chDigit_5, chDigit_0, chDigit_9, chLatin_C, chLatin_R, chLatin_L, chNull
171 };
172
173 // Shibboleth vocabulary literals
174
175 const XMLCh XML::Literals::Scope[] = { chLatin_S, chLatin_c, chLatin_o, chLatin_p, chLatin_e, chNull };
176
177 const XMLCh XML::Literals::AttributeAuthority[] =
178 { chLatin_A, chLatin_t, chLatin_t, chLatin_r, chLatin_i, chLatin_b, chLatin_u, chLatin_t, chLatin_e,
179   chLatin_A, chLatin_u, chLatin_t, chLatin_h, chLatin_o, chLatin_r, chLatin_i, chLatin_t, chLatin_y, chNull
180 };
181
182 const XMLCh XML::Literals::Contact[]=
183 { chLatin_C, chLatin_o, chLatin_n, chLatin_t, chLatin_a, chLatin_c, chLatin_t, chNull };
184
185 const XMLCh XML::Literals::Domain[]=
186 { chLatin_D, chLatin_o, chLatin_m, chLatin_a, chLatin_i, chLatin_n, chNull };
187
188 const XMLCh XML::Literals::Email[]=
189 { chLatin_E, chLatin_m, chLatin_a, chLatin_i, chLatin_l, chNull };
190
191 const XMLCh XML::Literals::ErrorURL[]=
192 { chLatin_E, chLatin_r, chLatin_r, chLatin_o, chLatin_r, chLatin_U, chLatin_R, chLatin_L, chNull };
193
194 const XMLCh XML::Literals::HandleService[]=
195 { chLatin_H, chLatin_a, chLatin_n, chLatin_d, chLatin_l, chLatin_e,
196   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull };
197
198 const XMLCh XML::Literals::InvalidHandle[]=
199 { chLatin_I, chLatin_n, chLatin_v, chLatin_a, chLatin_l, chLatin_i, chLatin_d,
200   chLatin_H, chLatin_a, chLatin_n, chLatin_d, chLatin_l, chLatin_e, chNull };
201
202 const XMLCh XML::Literals::Location[]=
203 { chLatin_L, chLatin_o, chLatin_c, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull };
204
205 const XMLCh XML::Literals::Name[]=
206 { chLatin_N, chLatin_a, chLatin_m, chLatin_e, chNull };
207
208 const XMLCh XML::Literals::OriginSite[]=
209 { chLatin_O, chLatin_r, chLatin_i, chLatin_g, chLatin_i, chLatin_n, chLatin_S, chLatin_i, chLatin_t, chLatin_e, chNull };
210
211 const XMLCh XML::Literals::SiteGroup[]=
212 { chLatin_S, chLatin_i, chLatin_t, chLatin_e, chLatin_G, chLatin_r, chLatin_o, chLatin_u, chLatin_p, chNull };
213
214 const XMLCh XML::Literals::CAPath[] =
215 { chLatin_C, chLatin_A, chLatin_P, chLatin_a, chLatin_t, chLatin_h, chNull };
216
217 const XMLCh XML::Literals::Class[] =
218 { chLatin_c, chLatin_l, chLatin_a, chLatin_s, chLatin_s, chNull };
219
220 const XMLCh XML::Literals::Credentials[] =
221 { chLatin_C, chLatin_r, chLatin_e, chLatin_d, chLatin_e, chLatin_n, chLatin_t, chLatin_i, chLatin_a, chLatin_l, chLatin_s, chNull };
222
223 const XMLCh XML::Literals::CustomResolver[]=
224 { chLatin_C, chLatin_u, chLatin_s, chLatin_t, chLatin_o, chLatin_m,
225   chLatin_R, chLatin_e, chLatin_s, chLatin_o, chLatin_l, chLatin_v, chLatin_e, chLatin_r, chNull };
226
227 const XMLCh XML::Literals::Exponent[] =
228 { chLatin_E, chLatin_x, chLatin_p, chLatin_o, chLatin_n, chLatin_e, chLatin_n, chLatin_t, chNull };
229
230 const XMLCh XML::Literals::FileResolver[]=
231 { chLatin_F, chLatin_i, chLatin_l, chLatin_e,
232   chLatin_R, chLatin_e, chLatin_s, chLatin_o, chLatin_l, chLatin_v, chLatin_e, chLatin_r, chNull };
233
234 const XMLCh XML::Literals::format[] =
235 { chLatin_f, chLatin_o, chLatin_r, chLatin_m, chLatin_a, chLatin_t, chNull };
236
237 const XMLCh XML::Literals::Id[] = { chLatin_I, chLatin_d, chNull };
238
239 const XMLCh XML::Literals::KeyAuthority[] =
240 { chLatin_K, chLatin_e, chLatin_y,
241   chLatin_A, chLatin_u, chLatin_t, chLatin_h, chLatin_o, chLatin_r, chLatin_i, chLatin_t, chLatin_y, chNull };
242
243 const XMLCh XML::Literals::KeyName[] =
244 { chLatin_K, chLatin_e, chLatin_y, chLatin_N, chLatin_a, chLatin_m, chLatin_e, chNull };
245
246 const XMLCh XML::Literals::Modulus[] =
247 { chLatin_M, chLatin_o, chLatin_d, chLatin_u, chLatin_l, chLatin_u, chLatin_s, chNull };
248
249 const XMLCh XML::Literals::password[] =
250 { chLatin_p, chLatin_a, chLatin_s, chLatin_s, chLatin_w, chLatin_o, chLatin_r, chLatin_d, chNull };
251
252 const XMLCh XML::Literals::Path[] =
253 { chLatin_P, chLatin_a, chLatin_t, chLatin_h, chNull };
254
255 const XMLCh XML::Literals::RetrievalMethod[] =
256 { chLatin_R, chLatin_e, chLatin_t, chLatin_r, chLatin_i, chLatin_e, chLatin_v, chLatin_a, chLatin_l,
257   chLatin_M, chLatin_e, chLatin_t, chLatin_h, chLatin_o, chLatin_d, chNull };
258
259 const XMLCh XML::Literals::RSAKeyValue[] =
260 { chLatin_R, chLatin_S, chLatin_A, chLatin_K, chLatin_e, chLatin_y, chLatin_V, chLatin_a, chLatin_l, chLatin_u, chLatin_e, chNull };
261
262 const XMLCh XML::Literals::Trust[] =
263 { chLatin_T, chLatin_r, chLatin_u, chLatin_s, chLatin_t, chNull };
264
265 const XMLCh XML::Literals::URI[] =
266 { chLatin_U, chLatin_R, chLatin_I, chNull };
267
268 const XMLCh XML::Literals::VerifyDepth[] =
269 { chLatin_V, chLatin_e, chLatin_r, chLatin_i, chLatin_f, chLatin_y, chLatin_D, chLatin_e, chLatin_p, chLatin_t, chLatin_h, chNull };
270
271 const XMLCh XML::Literals::X509CRL[] =
272 { chLatin_X, chDigit_5, chDigit_0, chDigit_9, chLatin_C, chLatin_R, chLatin_L, chNull };
273
274 const XMLCh XML::Literals::Accept[]=
275 { chLatin_A, chLatin_c, chLatin_c, chLatin_e, chLatin_p, chLatin_t, chNull };
276
277 const XMLCh XML::Literals::Alias[]=
278 { chLatin_A, chLatin_l, chLatin_i, chLatin_a, chLatin_s, chNull };
279
280 const XMLCh XML::Literals::AnyAttribute[] =
281 { chLatin_A, chLatin_n, chLatin_y,
282   chLatin_A, chLatin_t, chLatin_t, chLatin_r, chLatin_i, chLatin_b, chLatin_u, chLatin_t, chLatin_e, chNull
283 };
284
285 const XMLCh XML::Literals::AnySite[]=
286 { chLatin_A, chLatin_n, chLatin_y, chLatin_S, chLatin_i, chLatin_t, chLatin_e, chNull };
287
288 const XMLCh XML::Literals::AnyValue[]=
289 { chLatin_A, chLatin_n, chLatin_y, chLatin_V, chLatin_a, chLatin_l, chLatin_u, chLatin_e, chNull };
290
291 const XMLCh XML::Literals::AttributeAcceptancePolicy[] =
292 { chLatin_A, chLatin_t, chLatin_t, chLatin_r, chLatin_i, chLatin_b, chLatin_u, chLatin_t, chLatin_e,
293   chLatin_A, chLatin_c, chLatin_c, chLatin_e, chLatin_p, chLatin_t, chLatin_a, chLatin_n, chLatin_c, chLatin_e,
294   chLatin_P, chLatin_o, chLatin_l, chLatin_i, chLatin_c, chLatin_y, chNull
295 };
296
297 const XMLCh XML::Literals::AttributeRule[] =
298 { chLatin_A, chLatin_t, chLatin_t, chLatin_r, chLatin_i, chLatin_b, chLatin_u, chLatin_t, chLatin_e,
299   chLatin_R, chLatin_u, chLatin_l, chLatin_e, chNull
300 };
301
302 const XMLCh XML::Literals::CaseSensitive[] =
303 { chLatin_C, chLatin_a, chLatin_s, chLatin_e,
304   chLatin_S, chLatin_e, chLatin_n, chLatin_s, chLatin_i, chLatin_t, chLatin_i, chLatin_v, chLatin_e, chNull
305 };
306
307 const XMLCh XML::Literals::Factory[]=
308 { chLatin_F, chLatin_a, chLatin_c, chLatin_t, chLatin_o, chLatin_r, chLatin_y, chNull };
309
310 const XMLCh XML::Literals::Header[]=
311 { chLatin_H, chLatin_e, chLatin_a, chLatin_d, chLatin_e, chLatin_r, chNull };
312
313 const XMLCh XML::Literals::Namespace[]=
314 { chLatin_N, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chLatin_p, chLatin_a, chLatin_c, chLatin_e, chNull };
315
316 const XMLCh XML::Literals::Scoped[] = { chLatin_S, chLatin_c, chLatin_o, chLatin_p, chLatin_e, chLatin_d, chNull };
317
318 const XMLCh XML::Literals::SiteRule[] =
319 { chLatin_S, chLatin_i, chLatin_t, chLatin_e, chLatin_R, chLatin_u, chLatin_l, chLatin_e, chNull };
320
321 const XMLCh XML::Literals::Type[]=
322 { chLatin_T, chLatin_y, chLatin_p, chLatin_e, chNull };
323
324 const XMLCh XML::Literals::Value[] =
325 { chLatin_V, chLatin_a, chLatin_l, chLatin_u, chLatin_e, chNull };
326
327 const XMLCh XML::Literals::literal[] =
328 { chLatin_l, chLatin_i, chLatin_t, chLatin_e, chLatin_r, chLatin_a, chLatin_l, chNull };
329
330 const XMLCh XML::Literals::regexp[] =
331 { chLatin_r, chLatin_e, chLatin_g, chLatin_e, chLatin_x, chLatin_p, chNull };
332
333 const XMLCh XML::Literals::xpath[] =
334 { chLatin_x, chLatin_p, chLatin_a, chLatin_t, chLatin_h, chNull };
335
336 const XMLCh XML::Literals::administrative[] =
337 { chLatin_a, chLatin_m, chLatin_i, chLatin_n, chLatin_i, chLatin_s, chLatin_t, chLatin_r, chLatin_a, chLatin_t, chLatin_i, chLatin_v, chLatin_e, chNull };
338
339 const XMLCh XML::Literals::billing[] =
340 { chLatin_b, chLatin_i, chLatin_l, chLatin_l, chLatin_i, chLatin_n, chLatin_g, chNull };
341
342 const XMLCh XML::Literals::other[] =
343 { chLatin_o, chLatin_t, chLatin_h, chLatin_e, chLatin_r, chNull };
344
345 const XMLCh XML::Literals::support[] =
346 { chLatin_s, chLatin_u, chLatin_p, chLatin_p, chLatin_o, chLatin_r, chLatin_t, chNull };
347
348 const XMLCh XML::Literals::technical[] =
349 { chLatin_t, chLatin_e, chLatin_c, chLatin_h, chLatin_n, chLatin_i, chLatin_c, chLatin_a, chLatin_l, chNull };
350
351 const XMLCh XML::Literals::url[] = { chLatin_u, chLatin_r, chLatin_l, chNull };
352
353 const XMLCh XML::Literals::AdditionalMetadataLocation[] =
354 { chLatin_A, chLatin_d, chLatin_d, chLatin_i, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chLatin_a, chLatin_l,
355   chLatin_M, chLatin_e, chLatin_t, chLatin_a, chLatin_d, chLatin_a, chLatin_t, chLatin_a,
356   chLatin_L, chLatin_o, chLatin_c, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull
357 };
358
359 const XMLCh XML::Literals::AffiliateMember[] =
360 { chLatin_A, chLatin_f, chLatin_f, chLatin_i, chLatin_l, chLatin_i, chLatin_a, chLatin_t, chLatin_e,
361   chLatin_M, chLatin_e, chLatin_m, chLatin_b, chLatin_e, chLatin_r, chNull
362 };
363
364 const XMLCh XML::Literals::AffiliationDescriptor[] =
365 { chLatin_A, chLatin_f, chLatin_f, chLatin_i, chLatin_l, chLatin_i, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n,
366   chLatin_D, chLatin_e, chLatin_s, chLatin_c, chLatin_r, chLatin_i, chLatin_p, chLatin_t, chLatin_o, chLatin_r, chNull
367 };
368
369 const XMLCh XML::Literals::affiliationOwnerID[] =
370 { chLatin_a, chLatin_f, chLatin_f, chLatin_i, chLatin_l, chLatin_i, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n,
371   chLatin_O, chLatin_w, chLatin_n, chLatin_e, chLatin_r, chLatin_I, chLatin_D, chNull
372 };
373
374 const XMLCh XML::Literals::Algorithm[] =
375 { chLatin_A, chLatin_l, chLatin_g, chLatin_o, chLatin_r, chLatin_i, chLatin_t, chLatin_h, chLatin_m, chNull };
376
377 const XMLCh XML::Literals::ArtifactResolutionService[] =
378 { chLatin_A, chLatin_r, chLatin_t, chLatin_i, chLatin_f, chLatin_a, chLatin_c, chLatin_t,
379   chLatin_R, chLatin_e, chLatin_s, chLatin_o, chLatin_l, chLatin_u, chLatin_t, chLatin_i, chLatin_o, chLatin_n,
380   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull
381 };
382
383 const XMLCh XML::Literals::AssertionConsumerService[] =
384 { chLatin_A, chLatin_s, chLatin_s, chLatin_e, chLatin_r, chLatin_t, chLatin_i, chLatin_o, chLatin_n,
385   chLatin_C, chLatin_o, chLatin_n, chLatin_s, chLatin_u, chLatin_m, chLatin_e, chLatin_r,
386   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull
387 };
388
389 const XMLCh XML::Literals::AssertionIDRequestService[] =
390 { chLatin_A, chLatin_s, chLatin_s, chLatin_e, chLatin_r, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chLatin_I, chLatin_D,
391   chLatin_R, chLatin_e, chLatin_q, chLatin_u, chLatin_e, chLatin_s, chLatin_t,
392   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull
393 };
394
395 const XMLCh XML::Literals::AttributeAuthorityDescriptor[] =
396 { chLatin_A, chLatin_t, chLatin_t, chLatin_r, chLatin_i, chLatin_b, chLatin_u, chLatin_t, chLatin_e,
397   chLatin_A, chLatin_u, chLatin_t, chLatin_h, chLatin_o, chLatin_r, chLatin_i, chLatin_t, chLatin_y,
398   chLatin_D, chLatin_e, chLatin_s, chLatin_c, chLatin_r, chLatin_i, chLatin_p, chLatin_t, chLatin_o, chLatin_r, chNull
399 };
400
401 const XMLCh XML::Literals::AttributeConsumingService[] =
402 { chLatin_A, chLatin_t, chLatin_t, chLatin_r, chLatin_i, chLatin_b, chLatin_u, chLatin_t, chLatin_e,
403   chLatin_C, chLatin_o, chLatin_n, chLatin_s, chLatin_u, chLatin_m, chLatin_i, chLatin_n, chLatin_g,
404   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull
405 };
406
407 const XMLCh XML::Literals::AttributeProfile[] =
408 { chLatin_A, chLatin_t, chLatin_t, chLatin_r, chLatin_i, chLatin_b, chLatin_u, chLatin_t, chLatin_e,
409   chLatin_P, chLatin_r, chLatin_o, chLatin_f, chLatin_i, chLatin_l, chLatin_e, chNull
410 };
411
412 const XMLCh XML::Literals::AttributeService[] =
413 { chLatin_A, chLatin_t, chLatin_t, chLatin_r, chLatin_i, chLatin_b, chLatin_u, chLatin_t, chLatin_e,
414   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull
415 };
416
417 const XMLCh XML::Literals::AuthnAuthorityDescriptor[] =
418 { chLatin_A, chLatin_u, chLatin_t, chLatin_h, chLatin_n,
419   chLatin_A, chLatin_u, chLatin_t, chLatin_h, chLatin_o, chLatin_r, chLatin_i, chLatin_t, chLatin_y,
420   chLatin_D, chLatin_e, chLatin_s, chLatin_c, chLatin_r, chLatin_i, chLatin_p, chLatin_t, chLatin_o, chLatin_r, chNull
421 };
422
423 const XMLCh XML::Literals::AuthnQueryService[] =
424 { chLatin_A, chLatin_u, chLatin_t, chLatin_h, chLatin_n, chLatin_Q, chLatin_u, chLatin_e, chLatin_r, chLatin_y,
425   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull
426 };
427
428 const XMLCh XML::Literals::AuthnRequestsSigned[] =
429 { chLatin_A, chLatin_u, chLatin_t, chLatin_h, chLatin_n,
430   chLatin_R, chLatin_e, chLatin_q, chLatin_u, chLatin_e, chLatin_s, chLatin_t, chLatin_s,
431   chLatin_S, chLatin_i, chLatin_g, chLatin_n, chLatin_e, chLatin_d, chNull
432 };
433
434 const XMLCh XML::Literals::AuthzService[] =
435 { chLatin_A, chLatin_u, chLatin_t, chLatin_h, chLatin_z,
436   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull
437 };
438
439 const XMLCh XML::Literals::cacheDuration[] =
440 { chLatin_c, chLatin_a, chLatin_c, chLatin_h, chLatin_e,
441   chLatin_D, chLatin_u, chLatin_r, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull
442 };
443
444 const XMLCh XML::Literals::Company[] =
445 { chLatin_C, chLatin_o, chLatin_m, chLatin_p, chLatin_a, chLatin_n, chLatin_y, chNull };
446
447 const XMLCh XML::Literals::ContactPerson[] =
448 { chLatin_C, chLatin_o, chLatin_n, chLatin_t, chLatin_a, chLatin_c, chLatin_t,
449   chLatin_P, chLatin_e, chLatin_r, chLatin_s, chLatin_o, chLatin_n, chNull
450 };
451
452 const XMLCh XML::Literals::contactType[] =
453 { chLatin_c, chLatin_o, chLatin_n, chLatin_t, chLatin_a, chLatin_c, chLatin_t, chLatin_T, chLatin_y, chLatin_p, chLatin_e, chNull };
454
455 const XMLCh XML::Literals::DigestMethod[] =
456 { chLatin_D, chLatin_i, chLatin_g, chLatin_e, chLatin_s, chLatin_t,
457   chLatin_M, chLatin_e, chLatin_t, chLatin_h, chLatin_o, chLatin_d, chNull
458 };
459
460 const XMLCh XML::Literals::EmailAddress[] =
461 { chLatin_E, chLatin_m, chLatin_a, chLatin_i, chLatin_l,
462   chLatin_A, chLatin_d, chLatin_d, chLatin_r, chLatin_e, chLatin_s, chLatin_s, chNull
463 };
464
465 const XMLCh XML::Literals::encryption[] =
466 { chLatin_e, chLatin_n, chLatin_c, chLatin_r, chLatin_y, chLatin_p, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull };
467
468 const XMLCh XML::Literals::EncryptionMethod[] =
469 { chLatin_E, chLatin_n, chLatin_c, chLatin_r, chLatin_y, chLatin_p, chLatin_t, chLatin_i, chLatin_o, chLatin_n,
470   chLatin_M, chLatin_e, chLatin_t, chLatin_h, chLatin_o, chLatin_d, chNull
471 };
472
473 const XMLCh XML::Literals::EntitiesDescriptor[] =
474 { chLatin_E, chLatin_n, chLatin_t, chLatin_i, chLatin_t, chLatin_i, chLatin_e, chLatin_s,
475   chLatin_D, chLatin_e, chLatin_s, chLatin_c, chLatin_r, chLatin_i, chLatin_p, chLatin_t, chLatin_o, chLatin_r, chNull
476 };
477
478 const XMLCh XML::Literals::EntityDescriptor[] =
479 { chLatin_E, chLatin_n, chLatin_t, chLatin_i, chLatin_t, chLatin_y,
480   chLatin_D, chLatin_e, chLatin_s, chLatin_c, chLatin_r, chLatin_i, chLatin_p, chLatin_t, chLatin_o, chLatin_r, chNull
481 };
482
483 const XMLCh XML::Literals::entityID[] =
484 { chLatin_e, chLatin_n, chLatin_t, chLatin_i, chLatin_t, chLatin_y, chLatin_I, chLatin_D, chNull};
485
486 const XMLCh XML::Literals::errorURL[] =
487 { chLatin_e, chLatin_r, chLatin_r, chLatin_o, chLatin_r, chLatin_U, chLatin_R, chLatin_L, chNull};
488
489 const XMLCh XML::Literals::Extensions[] =
490 { chLatin_E, chLatin_x, chLatin_t, chLatin_e, chLatin_n, chLatin_s, chLatin_i, chLatin_o, chLatin_n, chLatin_s, chNull };
491
492 const XMLCh XML::Literals::GivenName[] =
493 { chLatin_G, chLatin_i, chLatin_v, chLatin_e, chLatin_n, chLatin_N, chLatin_a, chLatin_m, chLatin_e, chNull };
494
495 const XMLCh XML::Literals::IDPSSODescriptor[] =
496 { chLatin_I, chLatin_D, chLatin_P, chLatin_S, chLatin_S, chLatin_O,
497   chLatin_D, chLatin_e, chLatin_s, chLatin_c, chLatin_r, chLatin_i, chLatin_p, chLatin_t, chLatin_o, chLatin_r, chNull
498 };
499
500 const XMLCh XML::Literals::index[] =
501 { chLatin_i, chLatin_n, chLatin_d, chLatin_e, chLatin_x, chNull };
502
503 const XMLCh XML::Literals::isDefault[] =
504 { chLatin_i, chLatin_s, chLatin_D, chLatin_e, chLatin_f, chLatin_a, chLatin_u, chLatin_l, chLatin_t, chNull };
505
506 const XMLCh XML::Literals::isRequired[] =
507 { chLatin_i, chLatin_s, chLatin_R, chLatin_e, chLatin_q, chLatin_u, chLatin_i, chLatin_r, chLatin_e, chLatin_d, chNull };
508
509 const XMLCh XML::Literals::KeyDescriptor[] =
510 { chLatin_K, chLatin_e, chLatin_y,
511   chLatin_D, chLatin_e, chLatin_s, chLatin_c, chLatin_r, chLatin_i, chLatin_p, chLatin_t, chLatin_o, chLatin_r, chNull
512 };
513
514 const XMLCh XML::Literals::KeySize[] =
515 { chLatin_K, chLatin_e, chLatin_y, chLatin_S, chLatin_i, chLatin_z, chLatin_e, chNull };
516
517 const XMLCh XML::Literals::ManageNameIDService[] =
518 { chLatin_M, chLatin_a, chLatin_n, chLatin_a, chLatin_g, chLatin_e,
519   chLatin_N, chLatin_a, chLatin_m, chLatin_e, chLatin_I, chLatin_D,
520   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull
521 };
522
523 const XMLCh XML::Literals::_namespace[]=
524 { chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chLatin_p, chLatin_a, chLatin_c, chLatin_e, chNull };
525
526 const XMLCh XML::Literals::NameFormat[] =
527 { chLatin_N, chLatin_a, chLatin_m, chLatin_e, chLatin_F, chLatin_o, chLatin_r, chLatin_m, chLatin_a, chLatin_t, chNull };
528
529 const XMLCh XML::Literals::NameIDFormat[] =
530 { chLatin_N, chLatin_a, chLatin_m, chLatin_e, chLatin_I, chLatin_D,
531   chLatin_F, chLatin_o, chLatin_r, chLatin_m, chLatin_a, chLatin_t, chNull
532 };
533
534 const XMLCh XML::Literals::NameIDMappingService[] =
535 { chLatin_N, chLatin_a, chLatin_m, chLatin_e, chLatin_I, chLatin_D,
536   chLatin_M, chLatin_a, chLatin_p, chLatin_p, chLatin_i, chLatin_n, chLatin_g,
537   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull
538 };
539
540 const XMLCh XML::Literals::OAEParams[] =
541 { chLatin_O, chLatin_A, chLatin_E, chLatin_P, chLatin_a, chLatin_r, chLatin_a, chLatin_m, chLatin_s, chNull };
542
543 const XMLCh XML::Literals::Organization[] =
544 { chLatin_O, chLatin_r, chLatin_g, chLatin_a, chLatin_n, chLatin_i, chLatin_z, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull };
545
546 const XMLCh XML::Literals::OrganizationName[] =
547 { chLatin_O, chLatin_r, chLatin_g, chLatin_a, chLatin_n, chLatin_i, chLatin_z, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n,
548   chLatin_N, chLatin_a, chLatin_m, chLatin_e, chNull
549 };
550
551 const XMLCh XML::Literals::OrganizationDisplayName[] =
552 { chLatin_O, chLatin_r, chLatin_g, chLatin_a, chLatin_n, chLatin_i, chLatin_z, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n,
553   chLatin_D, chLatin_i, chLatin_s, chLatin_p, chLatin_l, chLatin_a, chLatin_y,
554   chLatin_N, chLatin_a, chLatin_m, chLatin_e, chNull
555 };
556
557 const XMLCh XML::Literals::OrganizationURL[] =
558 { chLatin_O, chLatin_r, chLatin_g, chLatin_a, chLatin_n, chLatin_i, chLatin_z, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n,
559   chLatin_U, chLatin_R, chLatin_L, chNull
560 };
561
562 const XMLCh XML::Literals::PDPDescriptor[] =
563 { chLatin_P, chLatin_D, chLatin_P,
564   chLatin_D, chLatin_e, chLatin_s, chLatin_c, chLatin_r, chLatin_i, chLatin_p, chLatin_t, chLatin_o, chLatin_r, chNull
565 };
566
567 const XMLCh XML::Literals::protocolSupportEnumeration[] =
568 { chLatin_p, chLatin_r, chLatin_o, chLatin_t, chLatin_o, chLatin_c, chLatin_o, chLatin_l,
569   chLatin_S, chLatin_u, chLatin_p, chLatin_p, chLatin_o, chLatin_r, chLatin_t,
570   chLatin_E, chLatin_n, chLatin_u, chLatin_m, chLatin_e, chLatin_r, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull
571 };
572
573 const XMLCh XML::Literals::RequestedAttribute[] =
574 { chLatin_R, chLatin_e, chLatin_q, chLatin_u, chLatin_e, chLatin_s, chLatin_t, chLatin_e, chLatin_d,
575   chLatin_A, chLatin_t, chLatin_t, chLatin_r, chLatin_i, chLatin_b, chLatin_u, chLatin_t, chLatin_e, chNull
576 };
577
578 const XMLCh XML::Literals::ResponseLocation[] =
579 { chLatin_R, chLatin_e, chLatin_s, chLatin_p, chLatin_o, chLatin_n, chLatin_s, chLatin_e,
580   chLatin_L, chLatin_o, chLatin_c, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull
581 };
582
583 const XMLCh XML::Literals::RoleDescriptor[] =
584 { chLatin_R, chLatin_o, chLatin_l, chLatin_e,
585   chLatin_D, chLatin_e, chLatin_s, chLatin_c, chLatin_r, chLatin_i, chLatin_p, chLatin_t, chLatin_o, chLatin_r,
586   chNull
587 };
588
589 const XMLCh XML::Literals::ServiceDescription[] =
590 { chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e,
591   chLatin_D, chLatin_e, chLatin_s, chLatin_c, chLatin_r, chLatin_i, chLatin_p, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull
592 };
593
594 const XMLCh XML::Literals::ServiceName[] =
595 { chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e,
596   chLatin_N, chLatin_a, chLatin_m, chLatin_e, chNull
597 };
598
599 const XMLCh XML::Literals::signing[] =
600 { chLatin_s, chLatin_i, chLatin_g, chLatin_n, chLatin_i, chLatin_n, chLatin_g, chNull };
601
602 const XMLCh XML::Literals::SingleLogoutService[] =
603 { chLatin_S, chLatin_i, chLatin_n, chLatin_g, chLatin_l, chLatin_e,
604   chLatin_L, chLatin_o, chLatin_g, chLatin_o, chLatin_u, chLatin_t,
605   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull
606 };
607
608 const XMLCh XML::Literals::SingleSignOnService[] =
609 { chLatin_S, chLatin_i, chLatin_n, chLatin_g, chLatin_l, chLatin_e,
610   chLatin_S, chLatin_i, chLatin_g, chLatin_n, chLatin_O, chLatin_n,
611   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull
612 };
613
614 const XMLCh XML::Literals::SPSSODescriptor[] =
615 { chLatin_S, chLatin_P, chLatin_S, chLatin_S, chLatin_O,
616   chLatin_D, chLatin_e, chLatin_s, chLatin_c, chLatin_r, chLatin_i, chLatin_p, chLatin_t, chLatin_o, chLatin_r, chNull
617 };
618
619 const XMLCh XML::Literals::SurName[] =
620 { chLatin_S, chLatin_u, chLatin_r, chLatin_N, chLatin_a, chLatin_m, chLatin_e, chNull };
621
622 const XMLCh XML::Literals::TelephoneNumber[] =
623 { chLatin_T, chLatin_e, chLatin_l, chLatin_e, chLatin_p, chLatin_h, chLatin_o, chLatin_n, chLatin_e,
624   chLatin_N, chLatin_u, chLatin_m, chLatin_b, chLatin_e, chLatin_r, chNull
625 };
626
627 const XMLCh XML::Literals::use[] = { chLatin_u, chLatin_s, chLatin_e, chNull };
628
629 const XMLCh XML::Literals::validUntil[] =
630 { chLatin_v, chLatin_a, chLatin_l, chLatin_i, chLatin_d, chLatin_U, chLatin_n, chLatin_t, chLatin_i, chLatin_l, chNull };
631
632 const XMLCh XML::Literals::WantAuthnRequestsSigned[] =
633 { chLatin_W, chLatin_a, chLatin_n, chLatin_t, chLatin_A, chLatin_u, chLatin_t, chLatin_h, chLatin_n,
634   chLatin_R, chLatin_e, chLatin_q, chLatin_u, chLatin_e, chLatin_s, chLatin_t, chLatin_s,
635   chLatin_S, chLatin_i, chLatin_g, chLatin_n, chLatin_e, chLatin_d, chNull
636 };
637
638 const XMLCh XML::Literals::WantAssertionsSigned[] =
639 { chLatin_W, chLatin_a, chLatin_n, chLatin_t,
640   chLatin_A, chLatin_s, chLatin_s, chLatin_e, chLatin_r, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chLatin_s,
641   chLatin_S, chLatin_i, chLatin_g, chLatin_n, chLatin_e, chLatin_d, chNull
642 };