0127d5876ac8e7ef424e582b96db057fb0317d2d
[shibboleth/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::SHIB_NS[] = // urn:mace:shibboleth: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   chDigit_1, chPeriod, chDigit_0, chNull
67 };
68
69 const XMLCh XML::SHIB_SCHEMA_ID[] = // shibboleth.xsd
70 { chLatin_s, chLatin_h, chLatin_i, chLatin_b, chLatin_b, chLatin_o, chLatin_l, chLatin_e, chLatin_t, chLatin_h, 
71   chPeriod, chLatin_x, chLatin_s, chLatin_d, chNull
72 };
73
74 const XMLCh XML::SHIBMETA_NS[] = // urn:mace:shibboleth:metadata:1.0
75 { chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_m, chLatin_a, chLatin_c, chLatin_e, chColon,
76   chLatin_s, chLatin_h, chLatin_i, chLatin_b, chLatin_b, chLatin_o, chLatin_l, chLatin_e, chLatin_t, chLatin_h, chColon,
77   chLatin_m, chLatin_e, chLatin_t, chLatin_a, chLatin_d, chLatin_a, chLatin_t, chLatin_a, chColon,
78   chDigit_1, chPeriod, chDigit_0, chNull
79 };
80
81 const XMLCh XML::SHIBMETA_SCHEMA_ID[] = // shibboleth-metadata-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_m, chLatin_e, chLatin_t, chLatin_a, chLatin_d, chLatin_a, chLatin_t, chLatin_a, chDash,
84   chDigit_1, chPeriod, chDigit_0, chPeriod, chLatin_x, chLatin_s, chLatin_d, chNull
85 };
86
87 const XMLCh XML::CREDS_NS[] = // urn:mace:shibboleth:credentials: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   chLatin_c, chLatin_r, chLatin_e, chLatin_d, chLatin_e, chLatin_n, chLatin_t, chLatin_i, chLatin_a, chLatin_l, chLatin_s, chColon,
91   chDigit_1, chPeriod, chDigit_0, chNull
92 };
93
94 const XMLCh XML::CREDS_SCHEMA_ID[] = // credentials.xsd
95 { chLatin_c, chLatin_r, chLatin_e, chLatin_d, chLatin_e, chLatin_n, chLatin_t, chLatin_i, chLatin_a, chLatin_l, chLatin_s,
96   chPeriod, chLatin_x, chLatin_s, chLatin_d, chNull
97 };
98
99 const XMLCh XML::TRUST_NS[] = // urn:mace:shibboleth:trust:1.0
100 { chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_m, chLatin_a, chLatin_c, chLatin_e, chColon,
101   chLatin_s, chLatin_h, chLatin_i, chLatin_b, chLatin_b, chLatin_o, chLatin_l, chLatin_e, chLatin_t, chLatin_h, chColon,
102   chLatin_t, chLatin_r, chLatin_u, chLatin_s, chLatin_t, chColon, chDigit_1, chPeriod, chDigit_0, chNull
103 };
104
105 const XMLCh XML::TRUST_SCHEMA_ID[] = // shibboleth-trust-1.0.xsd
106 { chLatin_s, chLatin_h, chLatin_i, chLatin_b, chLatin_b, chLatin_o, chLatin_l, chLatin_e, chLatin_t, chLatin_h, chDash,
107   chLatin_t, chLatin_r, chLatin_u, chLatin_s, chLatin_t, chDash, chDigit_1, chPeriod, chDigit_0, chPeriod,
108   chLatin_x, chLatin_s, chLatin_d, chNull
109 };
110
111 const XMLCh XML::SAML2ASSERT_NS[] = // urn:oasis:names:tc:SAML:2.0:assertion
112 { chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_o, chLatin_a, chLatin_s, chLatin_i, chLatin_s, chColon,
113   chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chColon, chLatin_t, chLatin_c, chColon,
114   chLatin_S, chLatin_A, chLatin_M, chLatin_L, chColon, chDigit_2, chPeriod, chDigit_0, chColon,
115   chLatin_a, chLatin_s, chLatin_s, chLatin_e, chLatin_r, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull
116 };
117
118 const XMLCh XML::SAML2ASSERT_SCHEMA_ID[] = // saml-schema-assertion-2.0.xsd
119 { chLatin_s, chLatin_a, chLatin_m, chLatin_l, chDash,
120   chLatin_s, chLatin_c, chLatin_h, chLatin_e, chLatin_m, chLatin_a, chDash,
121   chLatin_a, chLatin_s, chLatin_s, chLatin_e, chLatin_r, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chDash,
122   chDigit_2, chPeriod, chDigit_0, chPeriod, chLatin_x, chLatin_s, chLatin_d, chNull
123 };
124
125 const XMLCh XML::SAML2META_NS[] = // urn:oasis:names:tc:SAML:2.0:metadata
126 { chLatin_u, chLatin_r, chLatin_n, chColon, chLatin_o, chLatin_a, chLatin_s, chLatin_i, chLatin_s, chColon,
127   chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chColon, chLatin_t, chLatin_c, chColon,
128   chLatin_S, chLatin_A, chLatin_M, chLatin_L, chColon, chDigit_2, chPeriod, chDigit_0, chColon,
129   chLatin_m, chLatin_e, chLatin_t, chLatin_a, chLatin_d, chLatin_a, chLatin_t, chLatin_a, chNull
130 };
131
132 const XMLCh XML::SAML2META_SCHEMA_ID[] = // saml-schema-metadata-2.0.xsd
133 { chLatin_s, chLatin_a, chLatin_m, chLatin_l, chDash,
134   chLatin_s, chLatin_c, chLatin_h, chLatin_e, chLatin_m, chLatin_a, chDash,
135   chLatin_m, chLatin_e, chLatin_t, chLatin_a, chLatin_d, chLatin_a, chLatin_t, chLatin_a, chDash,
136   chDigit_2, chPeriod, chDigit_0, chPeriod, chLatin_x, chLatin_s, chLatin_d, chNull
137 };
138
139 const XMLCh XML::XMLENC_NS[] = // http://www.w3.org/2001/04/xmlenc#
140 { chLatin_h, chLatin_t, chLatin_t, chLatin_p, chColon, chForwardSlash, chForwardSlash,
141   chLatin_w, chLatin_w, chLatin_w, chPeriod, chLatin_w, chDigit_3, chPeriod, chLatin_o, chLatin_r, chLatin_g, chForwardSlash,
142   chDigit_2, chDigit_0, chDigit_0, chDigit_1, chForwardSlash, chDigit_0, chDigit_4, chForwardSlash,
143   chLatin_x, chLatin_m, chLatin_l, chLatin_e, chLatin_n, chLatin_c, chPound, chNull
144 };
145
146 const XMLCh XML::XMLENC_SCHEMA_ID[] = // xenc-schema.xsd
147 { chLatin_x, chLatin_e, chLatin_n, chLatin_c, chDash,
148   chLatin_s, chLatin_c, chLatin_h, chLatin_e, chLatin_m, chLatin_a, chPeriod, chLatin_x, chLatin_s, chLatin_d, chNull
149 };
150
151 const XMLCh XML::XMLSIG_RETMETHOD_RAWX509[] = // http://www.w3.org/2000/09/xmldsig#rawX509Certificate
152 { chLatin_h, chLatin_t, chLatin_t, chLatin_p, chColon, chForwardSlash, chForwardSlash,
153   chLatin_w, chLatin_w, chLatin_w, chPeriod, chLatin_w, chDigit_3, chPeriod, chLatin_o, chLatin_r, chLatin_g, chForwardSlash,
154   chDigit_2, chDigit_0, chDigit_0, chDigit_0, chForwardSlash, chDigit_0, chDigit_9, chForwardSlash,
155   chLatin_x, chLatin_m, chLatin_l, chLatin_d, chLatin_s, chLatin_i, chLatin_g, chPound,
156   chLatin_r, chLatin_a, chLatin_w, chLatin_X, chDigit_5, chDigit_0, chDigit_9,
157     chLatin_C, chLatin_e, chLatin_r, chLatin_t, chLatin_i, chLatin_f, chLatin_i, chLatin_c, chLatin_a, chLatin_t, chLatin_e, chNull
158 };
159
160 const XMLCh XML::XMLSIG_RETMETHOD_RAWX509CRL[] = // // http://www.w3.org/2000/09/xmldsig-more#rawX509CRL
161 { chLatin_h, chLatin_t, chLatin_t, chLatin_p, chColon, chForwardSlash, chForwardSlash,
162   chLatin_w, chLatin_w, chLatin_w, chPeriod, chLatin_w, chDigit_3, chPeriod, chLatin_o, chLatin_r, chLatin_g, chForwardSlash,
163   chDigit_2, chDigit_0, chDigit_0, chDigit_0, chForwardSlash, chDigit_0, chDigit_9, chForwardSlash,
164   chLatin_x, chLatin_m, chLatin_l, chLatin_d, chLatin_s, chLatin_i, chLatin_g, chDash,
165   chLatin_m, chLatin_o, chLatin_r, chLatin_e, chPound,
166   chLatin_r, chLatin_a, chLatin_w, chLatin_X, chDigit_5, chDigit_0, chDigit_9, chLatin_C, chLatin_R, chLatin_L, chNull
167 };
168
169 // Shibboleth vocabulary literals
170
171 const XMLCh XML::Literals::AttributeAuthority[] =
172 { chLatin_A, chLatin_t, chLatin_t, chLatin_r, chLatin_i, chLatin_b, chLatin_u, chLatin_t, chLatin_e,
173   chLatin_A, chLatin_u, chLatin_t, chLatin_h, chLatin_o, chLatin_r, chLatin_i, chLatin_t, chLatin_y, chNull
174 };
175
176 const XMLCh XML::Literals::Contact[]=
177 { chLatin_C, chLatin_o, chLatin_n, chLatin_t, chLatin_a, chLatin_c, chLatin_t, chNull };
178
179 const XMLCh XML::Literals::Domain[]=
180 { chLatin_D, chLatin_o, chLatin_m, chLatin_a, chLatin_i, chLatin_n, chNull };
181
182 const XMLCh XML::Literals::Email[]=
183 { chLatin_E, chLatin_m, chLatin_a, chLatin_i, chLatin_l, chNull };
184
185 const XMLCh XML::Literals::ErrorURL[]=
186 { chLatin_E, chLatin_r, chLatin_r, chLatin_o, chLatin_r, chLatin_U, chLatin_R, chLatin_L, chNull };
187
188 const XMLCh XML::Literals::HandleService[]=
189 { chLatin_H, chLatin_a, chLatin_n, chLatin_d, chLatin_l, chLatin_e,
190   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull };
191
192 const XMLCh XML::Literals::InvalidHandle[]=
193 { chLatin_I, chLatin_n, chLatin_v, chLatin_a, chLatin_l, chLatin_i, chLatin_d,
194   chLatin_H, chLatin_a, chLatin_n, chLatin_d, chLatin_l, chLatin_e, chNull };
195
196 const XMLCh XML::Literals::Name[]=
197 { chLatin_N, chLatin_a, chLatin_m, chLatin_e, chNull };
198
199 const XMLCh XML::Literals::OriginSite[]=
200 { chLatin_O, chLatin_r, chLatin_i, chLatin_g, chLatin_i, chLatin_n, chLatin_S, chLatin_i, chLatin_t, chLatin_e, chNull };
201
202 const XMLCh XML::Literals::SiteGroup[]=
203 { chLatin_S, chLatin_i, chLatin_t, chLatin_e, chLatin_G, chLatin_r, chLatin_o, chLatin_u, chLatin_p, chNull };
204
205 const XMLCh XML::Literals::CAPath[] =
206 { chLatin_C, chLatin_A, chLatin_P, chLatin_a, chLatin_t, chLatin_h, chNull };
207
208 const XMLCh XML::Literals::Certificate[] =
209 { chLatin_C, chLatin_e, chLatin_r, chLatin_t, chLatin_i, chLatin_f, chLatin_i, chLatin_c, chLatin_a, chLatin_t, chLatin_e, chNull };
210
211 const XMLCh XML::Literals::Class[] =
212 { chLatin_c, chLatin_l, chLatin_a, chLatin_s, chLatin_s, chNull };
213
214 const XMLCh XML::Literals::Credentials[] =
215 { chLatin_C, chLatin_r, chLatin_e, chLatin_d, chLatin_e, chLatin_n, chLatin_t, chLatin_i, chLatin_a, chLatin_l, chLatin_s, chNull };
216
217 const XMLCh XML::Literals::CustomResolver[]=
218 { chLatin_C, chLatin_u, chLatin_s, chLatin_t, chLatin_o, chLatin_m,
219   chLatin_R, chLatin_e, chLatin_s, chLatin_o, chLatin_l, chLatin_v, chLatin_e, chLatin_r, chNull };
220
221 const XMLCh XML::Literals::Exponent[] =
222 { chLatin_E, chLatin_x, chLatin_p, chLatin_o, chLatin_n, chLatin_e, chLatin_n, chLatin_t, chNull };
223
224 const XMLCh XML::Literals::FileResolver[]=
225 { chLatin_F, chLatin_i, chLatin_l, chLatin_e,
226   chLatin_R, chLatin_e, chLatin_s, chLatin_o, chLatin_l, chLatin_v, chLatin_e, chLatin_r, chNull };
227
228 const XMLCh XML::Literals::format[] =
229 { chLatin_f, chLatin_o, chLatin_r, chLatin_m, chLatin_a, chLatin_t, chNull };
230
231 const XMLCh XML::Literals::Id[] = { chLatin_I, chLatin_d, chNull };
232
233 const XMLCh XML::Literals::Key[] =
234 { chLatin_K, chLatin_e, chLatin_y, chNull };
235
236 const XMLCh XML::Literals::KeyAuthority[] =
237 { chLatin_K, chLatin_e, chLatin_y,
238   chLatin_A, chLatin_u, chLatin_t, chLatin_h, chLatin_o, chLatin_r, chLatin_i, chLatin_t, chLatin_y, chNull };
239
240 const XMLCh XML::Literals::KeyName[] =
241 { chLatin_K, chLatin_e, chLatin_y, chLatin_N, chLatin_a, chLatin_m, chLatin_e, chNull };
242
243 const XMLCh XML::Literals::Modulus[] =
244 { chLatin_M, chLatin_o, chLatin_d, chLatin_u, chLatin_l, chLatin_u, chLatin_s, chNull };
245
246 const XMLCh XML::Literals::password[] =
247 { chLatin_p, chLatin_a, chLatin_s, chLatin_s, chLatin_w, chLatin_o, chLatin_r, chLatin_d, chNull };
248
249 const XMLCh XML::Literals::Path[] =
250 { chLatin_P, chLatin_a, chLatin_t, chLatin_h, chNull };
251
252 const XMLCh XML::Literals::RetrievalMethod[] =
253 { chLatin_R, chLatin_e, chLatin_t, chLatin_r, chLatin_i, chLatin_e, chLatin_v, chLatin_a, chLatin_l,
254   chLatin_M, chLatin_e, chLatin_t, chLatin_h, chLatin_o, chLatin_d, chNull };
255
256 const XMLCh XML::Literals::RSAKeyValue[] =
257 { chLatin_R, chLatin_S, chLatin_A, chLatin_K, chLatin_e, chLatin_y, chLatin_V, chLatin_a, chLatin_l, chLatin_u, chLatin_e, chNull };
258
259 const XMLCh XML::Literals::Trust[] =
260 { chLatin_T, chLatin_r, chLatin_u, chLatin_s, chLatin_t, chNull };
261
262 const XMLCh XML::Literals::URI[] =
263 { chLatin_U, chLatin_R, chLatin_I, chNull };
264
265 const XMLCh XML::Literals::VerifyDepth[] =
266 { chLatin_V, chLatin_e, chLatin_r, chLatin_i, chLatin_f, chLatin_y, chLatin_D, chLatin_e, chLatin_p, chLatin_t, chLatin_h, chNull };
267
268 const XMLCh XML::Literals::X509CRL[] =
269 { chLatin_X, chDigit_5, chDigit_0, chDigit_9, chLatin_C, chLatin_R, chLatin_L, chNull };
270
271 const XMLCh XML::Literals::Accept[]=
272 { chLatin_A, chLatin_c, chLatin_c, chLatin_e, chLatin_p, chLatin_t, chNull };
273
274 const XMLCh XML::Literals::Alias[]=
275 { chLatin_A, chLatin_l, chLatin_i, chLatin_a, chLatin_s, chNull };
276
277 const XMLCh XML::Literals::AnyAttribute[] =
278 { chLatin_A, chLatin_n, chLatin_y,
279   chLatin_A, chLatin_t, chLatin_t, chLatin_r, chLatin_i, chLatin_b, chLatin_u, chLatin_t, chLatin_e, chNull
280 };
281
282 const XMLCh XML::Literals::AnySite[]=
283 { chLatin_A, chLatin_n, chLatin_y, chLatin_S, chLatin_i, chLatin_t, chLatin_e, chNull };
284
285 const XMLCh XML::Literals::AnyValue[]=
286 { chLatin_A, chLatin_n, chLatin_y, chLatin_V, chLatin_a, chLatin_l, chLatin_u, chLatin_e, chNull };
287
288 const XMLCh XML::Literals::AttributeAcceptancePolicy[] =
289 { chLatin_A, chLatin_t, chLatin_t, chLatin_r, chLatin_i, chLatin_b, chLatin_u, chLatin_t, chLatin_e,
290   chLatin_A, chLatin_c, chLatin_c, chLatin_e, chLatin_p, chLatin_t, chLatin_a, chLatin_n, chLatin_c, chLatin_e,
291   chLatin_P, chLatin_o, chLatin_l, chLatin_i, chLatin_c, chLatin_y, chNull
292 };
293
294 const XMLCh XML::Literals::AttributeRule[] =
295 { chLatin_A, chLatin_t, chLatin_t, chLatin_r, chLatin_i, chLatin_b, chLatin_u, chLatin_t, chLatin_e,
296   chLatin_R, chLatin_u, chLatin_l, chLatin_e, chNull
297 };
298
299 const XMLCh XML::Literals::CaseSensitive[] =
300 { chLatin_C, chLatin_a, chLatin_s, chLatin_e,
301   chLatin_S, chLatin_e, chLatin_n, chLatin_s, chLatin_i, chLatin_t, chLatin_i, chLatin_v, chLatin_e, chNull
302 };
303
304 const XMLCh XML::Literals::Factory[]=
305 { chLatin_F, chLatin_a, chLatin_c, chLatin_t, chLatin_o, chLatin_r, chLatin_y, chNull };
306
307 const XMLCh XML::Literals::Header[]=
308 { chLatin_H, chLatin_e, chLatin_a, chLatin_d, chLatin_e, chLatin_r, chNull };
309
310 const XMLCh XML::Literals::Namespace[]=
311 { chLatin_N, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chLatin_p, chLatin_a, chLatin_c, chLatin_e, chNull };
312
313 const XMLCh XML::Literals::Scope[] = { chLatin_S, chLatin_c, chLatin_o, chLatin_p, chLatin_e, chNull };
314
315 const XMLCh XML::Literals::Scoped[] = { chLatin_S, chLatin_c, chLatin_o, chLatin_p, chLatin_e, chLatin_d, chNull };
316
317 const XMLCh XML::Literals::SiteRule[] =
318 { chLatin_S, chLatin_i, chLatin_t, chLatin_e, chLatin_R, chLatin_u, chLatin_l, chLatin_e, chNull };
319
320 const XMLCh XML::Literals::Type[]=
321 { chLatin_T, chLatin_y, chLatin_p, chLatin_e, chNull };
322
323 const XMLCh XML::Literals::Value[] =
324 { chLatin_V, chLatin_a, chLatin_l, chLatin_u, chLatin_e, chNull };
325
326 const XMLCh XML::Literals::literal[] =
327 { chLatin_l, chLatin_i, chLatin_t, chLatin_e, chLatin_r, chLatin_a, chLatin_l, chNull };
328
329 const XMLCh XML::Literals::regexp[] =
330 { chLatin_r, chLatin_e, chLatin_g, chLatin_e, chLatin_x, chLatin_p, chNull };
331
332 const XMLCh XML::Literals::xpath[] =
333 { chLatin_x, chLatin_p, chLatin_a, chLatin_t, chLatin_h, chNull };
334
335 const XMLCh XML::Literals::administrative[] =
336 { 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 };
337
338 const XMLCh XML::Literals::billing[] =
339 { chLatin_b, chLatin_i, chLatin_l, chLatin_l, chLatin_i, chLatin_n, chLatin_g, chNull };
340
341 const XMLCh XML::Literals::other[] =
342 { chLatin_o, chLatin_t, chLatin_h, chLatin_e, chLatin_r, chNull };
343
344 const XMLCh XML::Literals::support[] =
345 { chLatin_s, chLatin_u, chLatin_p, chLatin_p, chLatin_o, chLatin_r, chLatin_t, chNull };
346
347 const XMLCh XML::Literals::technical[] =
348 { chLatin_t, chLatin_e, chLatin_c, chLatin_h, chLatin_n, chLatin_i, chLatin_c, chLatin_a, chLatin_l, chNull };
349
350 const XMLCh XML::Literals::Exclude[] =
351 { chLatin_E, chLatin_x, chLatin_c, chLatin_l, chLatin_u, chLatin_d, chLatin_e, chNull };
352
353 const XMLCh XML::Literals::Include[] =
354 { chLatin_I, chLatin_n, chLatin_c, chLatin_l, chLatin_u, chLatin_d, chLatin_e, chNull };
355
356 const XMLCh XML::Literals::url[] = { chLatin_u, chLatin_r, chLatin_l, chNull };
357
358 const XMLCh XML::Literals::verify[] =
359 { chLatin_v, chLatin_e, chLatin_r, chLatin_i, chLatin_f, chLatin_y, chNull };
360
361 const XMLCh XML::Literals::AdditionalMetadataLocation[] =
362 { chLatin_A, chLatin_d, chLatin_d, chLatin_i, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chLatin_a, chLatin_l,
363   chLatin_M, chLatin_e, chLatin_t, chLatin_a, chLatin_d, chLatin_a, chLatin_t, chLatin_a,
364   chLatin_L, chLatin_o, chLatin_c, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull
365 };
366
367 const XMLCh XML::Literals::AffiliateMember[] =
368 { chLatin_A, chLatin_f, chLatin_f, chLatin_i, chLatin_l, chLatin_i, chLatin_a, chLatin_t, chLatin_e,
369   chLatin_M, chLatin_e, chLatin_m, chLatin_b, chLatin_e, chLatin_r, chNull
370 };
371
372 const XMLCh XML::Literals::AffiliationDescriptor[] =
373 { chLatin_A, chLatin_f, chLatin_f, chLatin_i, chLatin_l, chLatin_i, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n,
374   chLatin_D, chLatin_e, chLatin_s, chLatin_c, chLatin_r, chLatin_i, chLatin_p, chLatin_t, chLatin_o, chLatin_r, chNull
375 };
376
377 const XMLCh XML::Literals::affiliationOwnerID[] =
378 { chLatin_a, chLatin_f, chLatin_f, chLatin_i, chLatin_l, chLatin_i, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n,
379   chLatin_O, chLatin_w, chLatin_n, chLatin_e, chLatin_r, chLatin_I, chLatin_D, chNull
380 };
381
382 const XMLCh XML::Literals::Algorithm[] =
383 { chLatin_A, chLatin_l, chLatin_g, chLatin_o, chLatin_r, chLatin_i, chLatin_t, chLatin_h, chLatin_m, chNull };
384
385 const XMLCh XML::Literals::ArtifactResolutionService[] =
386 { chLatin_A, chLatin_r, chLatin_t, chLatin_i, chLatin_f, chLatin_a, chLatin_c, chLatin_t,
387   chLatin_R, chLatin_e, chLatin_s, chLatin_o, chLatin_l, chLatin_u, chLatin_t, chLatin_i, chLatin_o, chLatin_n,
388   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull
389 };
390
391 const XMLCh XML::Literals::AssertionConsumerService[] =
392 { chLatin_A, chLatin_s, chLatin_s, chLatin_e, chLatin_r, chLatin_t, chLatin_i, chLatin_o, chLatin_n,
393   chLatin_C, chLatin_o, chLatin_n, chLatin_s, chLatin_u, chLatin_m, chLatin_e, chLatin_r,
394   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull
395 };
396
397 const XMLCh XML::Literals::AssertionIDRequestService[] =
398 { chLatin_A, chLatin_s, chLatin_s, chLatin_e, chLatin_r, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chLatin_I, chLatin_D,
399   chLatin_R, chLatin_e, chLatin_q, chLatin_u, chLatin_e, chLatin_s, chLatin_t,
400   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull
401 };
402
403 const XMLCh XML::Literals::AttributeAuthorityDescriptor[] =
404 { chLatin_A, chLatin_t, chLatin_t, chLatin_r, chLatin_i, chLatin_b, chLatin_u, chLatin_t, chLatin_e,
405   chLatin_A, chLatin_u, chLatin_t, chLatin_h, chLatin_o, chLatin_r, chLatin_i, chLatin_t, chLatin_y,
406   chLatin_D, chLatin_e, chLatin_s, chLatin_c, chLatin_r, chLatin_i, chLatin_p, chLatin_t, chLatin_o, chLatin_r, chNull
407 };
408
409 const XMLCh XML::Literals::AttributeConsumingService[] =
410 { chLatin_A, chLatin_t, chLatin_t, chLatin_r, chLatin_i, chLatin_b, chLatin_u, chLatin_t, chLatin_e,
411   chLatin_C, chLatin_o, chLatin_n, chLatin_s, chLatin_u, chLatin_m, chLatin_i, chLatin_n, chLatin_g,
412   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull
413 };
414
415 const XMLCh XML::Literals::AttributeProfile[] =
416 { chLatin_A, chLatin_t, chLatin_t, chLatin_r, chLatin_i, chLatin_b, chLatin_u, chLatin_t, chLatin_e,
417   chLatin_P, chLatin_r, chLatin_o, chLatin_f, chLatin_i, chLatin_l, chLatin_e, chNull
418 };
419
420 const XMLCh XML::Literals::AttributeService[] =
421 { chLatin_A, chLatin_t, chLatin_t, chLatin_r, chLatin_i, chLatin_b, chLatin_u, chLatin_t, chLatin_e,
422   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull
423 };
424
425 const XMLCh XML::Literals::AuthnAuthorityDescriptor[] =
426 { chLatin_A, chLatin_u, chLatin_t, chLatin_h, chLatin_n,
427   chLatin_A, chLatin_u, chLatin_t, chLatin_h, chLatin_o, chLatin_r, chLatin_i, chLatin_t, chLatin_y,
428   chLatin_D, chLatin_e, chLatin_s, chLatin_c, chLatin_r, chLatin_i, chLatin_p, chLatin_t, chLatin_o, chLatin_r, chNull
429 };
430
431 const XMLCh XML::Literals::AuthnQueryService[] =
432 { chLatin_A, chLatin_u, chLatin_t, chLatin_h, chLatin_n, chLatin_Q, chLatin_u, chLatin_e, chLatin_r, chLatin_y,
433   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull
434 };
435
436 const XMLCh XML::Literals::AuthnRequestsSigned[] =
437 { chLatin_A, chLatin_u, chLatin_t, chLatin_h, chLatin_n,
438   chLatin_R, chLatin_e, chLatin_q, chLatin_u, chLatin_e, chLatin_s, chLatin_t, chLatin_s,
439   chLatin_S, chLatin_i, chLatin_g, chLatin_n, chLatin_e, chLatin_d, chNull
440 };
441
442 const XMLCh XML::Literals::AuthzService[] =
443 { chLatin_A, chLatin_u, chLatin_t, chLatin_h, chLatin_z,
444   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull
445 };
446
447 const XMLCh XML::Literals::cacheDuration[] =
448 { chLatin_c, chLatin_a, chLatin_c, chLatin_h, chLatin_e,
449   chLatin_D, chLatin_u, chLatin_r, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull
450 };
451
452 const XMLCh XML::Literals::Company[] =
453 { chLatin_C, chLatin_o, chLatin_m, chLatin_p, chLatin_a, chLatin_n, chLatin_y, chNull };
454
455 const XMLCh XML::Literals::ContactPerson[] =
456 { chLatin_C, chLatin_o, chLatin_n, chLatin_t, chLatin_a, chLatin_c, chLatin_t,
457   chLatin_P, chLatin_e, chLatin_r, chLatin_s, chLatin_o, chLatin_n, chNull
458 };
459
460 const XMLCh XML::Literals::contactType[] =
461 { chLatin_c, chLatin_o, chLatin_n, chLatin_t, chLatin_a, chLatin_c, chLatin_t, chLatin_T, chLatin_y, chLatin_p, chLatin_e, chNull };
462
463 const XMLCh XML::Literals::DigestMethod[] =
464 { chLatin_D, chLatin_i, chLatin_g, chLatin_e, chLatin_s, chLatin_t,
465   chLatin_M, chLatin_e, chLatin_t, chLatin_h, chLatin_o, chLatin_d, chNull
466 };
467
468 const XMLCh XML::Literals::EmailAddress[] =
469 { chLatin_E, chLatin_m, chLatin_a, chLatin_i, chLatin_l,
470   chLatin_A, chLatin_d, chLatin_d, chLatin_r, chLatin_e, chLatin_s, chLatin_s, chNull
471 };
472
473 const XMLCh XML::Literals::encryption[] =
474 { chLatin_e, chLatin_n, chLatin_c, chLatin_r, chLatin_y, chLatin_p, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull };
475
476 const XMLCh XML::Literals::EncryptionMethod[] =
477 { chLatin_E, chLatin_n, chLatin_c, chLatin_r, chLatin_y, chLatin_p, chLatin_t, chLatin_i, chLatin_o, chLatin_n,
478   chLatin_M, chLatin_e, chLatin_t, chLatin_h, chLatin_o, chLatin_d, chNull
479 };
480
481 const XMLCh XML::Literals::EntitiesDescriptor[] =
482 { chLatin_E, chLatin_n, chLatin_t, chLatin_i, chLatin_t, chLatin_i, chLatin_e, chLatin_s,
483   chLatin_D, chLatin_e, chLatin_s, chLatin_c, chLatin_r, chLatin_i, chLatin_p, chLatin_t, chLatin_o, chLatin_r, chNull
484 };
485
486 const XMLCh XML::Literals::EntityDescriptor[] =
487 { chLatin_E, chLatin_n, chLatin_t, chLatin_i, chLatin_t, chLatin_y,
488   chLatin_D, chLatin_e, chLatin_s, chLatin_c, chLatin_r, chLatin_i, chLatin_p, chLatin_t, chLatin_o, chLatin_r, chNull
489 };
490
491 const XMLCh XML::Literals::entityID[] =
492 { chLatin_e, chLatin_n, chLatin_t, chLatin_i, chLatin_t, chLatin_y, chLatin_I, chLatin_D, chNull};
493
494 const XMLCh XML::Literals::errorURL[] =
495 { chLatin_e, chLatin_r, chLatin_r, chLatin_o, chLatin_r, chLatin_U, chLatin_R, chLatin_L, chNull};
496
497 const XMLCh XML::Literals::Extensions[] =
498 { chLatin_E, chLatin_x, chLatin_t, chLatin_e, chLatin_n, chLatin_s, chLatin_i, chLatin_o, chLatin_n, chLatin_s, chNull };
499
500 const XMLCh XML::Literals::GivenName[] =
501 { chLatin_G, chLatin_i, chLatin_v, chLatin_e, chLatin_n, chLatin_N, chLatin_a, chLatin_m, chLatin_e, chNull };
502
503 const XMLCh XML::Literals::IDPSSODescriptor[] =
504 { chLatin_I, chLatin_D, chLatin_P, chLatin_S, chLatin_S, chLatin_O,
505   chLatin_D, chLatin_e, chLatin_s, chLatin_c, chLatin_r, chLatin_i, chLatin_p, chLatin_t, chLatin_o, chLatin_r, chNull
506 };
507
508 const XMLCh XML::Literals::index[] =
509 { chLatin_i, chLatin_n, chLatin_d, chLatin_e, chLatin_x, chNull };
510
511 const XMLCh XML::Literals::isDefault[] =
512 { chLatin_i, chLatin_s, chLatin_D, chLatin_e, chLatin_f, chLatin_a, chLatin_u, chLatin_l, chLatin_t, chNull };
513
514 const XMLCh XML::Literals::isRequired[] =
515 { chLatin_i, chLatin_s, chLatin_R, chLatin_e, chLatin_q, chLatin_u, chLatin_i, chLatin_r, chLatin_e, chLatin_d, chNull };
516
517 const XMLCh XML::Literals::KeyDescriptor[] =
518 { chLatin_K, chLatin_e, chLatin_y,
519   chLatin_D, chLatin_e, chLatin_s, chLatin_c, chLatin_r, chLatin_i, chLatin_p, chLatin_t, chLatin_o, chLatin_r, chNull
520 };
521
522 const XMLCh XML::Literals::KeySize[] =
523 { chLatin_K, chLatin_e, chLatin_y, chLatin_S, chLatin_i, chLatin_z, chLatin_e, chNull };
524
525 const XMLCh XML::Literals::ManageNameIDService[] =
526 { chLatin_M, chLatin_a, chLatin_n, chLatin_a, chLatin_g, chLatin_e,
527   chLatin_N, chLatin_a, chLatin_m, chLatin_e, chLatin_I, chLatin_D,
528   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull
529 };
530
531 const XMLCh XML::Literals::_namespace[]=
532 { chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chLatin_p, chLatin_a, chLatin_c, chLatin_e, chNull };
533
534 const XMLCh XML::Literals::NameFormat[] =
535 { chLatin_N, chLatin_a, chLatin_m, chLatin_e, chLatin_F, chLatin_o, chLatin_r, chLatin_m, chLatin_a, chLatin_t, chNull };
536
537 const XMLCh XML::Literals::NameIDFormat[] =
538 { chLatin_N, chLatin_a, chLatin_m, chLatin_e, chLatin_I, chLatin_D,
539   chLatin_F, chLatin_o, chLatin_r, chLatin_m, chLatin_a, chLatin_t, chNull
540 };
541
542 const XMLCh XML::Literals::NameIDMappingService[] =
543 { chLatin_N, chLatin_a, chLatin_m, chLatin_e, chLatin_I, chLatin_D,
544   chLatin_M, chLatin_a, chLatin_p, chLatin_p, chLatin_i, chLatin_n, chLatin_g,
545   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull
546 };
547
548 const XMLCh XML::Literals::OAEParams[] =
549 { chLatin_O, chLatin_A, chLatin_E, chLatin_P, chLatin_a, chLatin_r, chLatin_a, chLatin_m, chLatin_s, chNull };
550
551 const XMLCh XML::Literals::Organization[] =
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, chNull };
553
554 const XMLCh XML::Literals::OrganizationName[] =
555 { chLatin_O, chLatin_r, chLatin_g, chLatin_a, chLatin_n, chLatin_i, chLatin_z, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n,
556   chLatin_N, chLatin_a, chLatin_m, chLatin_e, chNull
557 };
558
559 const XMLCh XML::Literals::OrganizationDisplayName[] =
560 { chLatin_O, chLatin_r, chLatin_g, chLatin_a, chLatin_n, chLatin_i, chLatin_z, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n,
561   chLatin_D, chLatin_i, chLatin_s, chLatin_p, chLatin_l, chLatin_a, chLatin_y,
562   chLatin_N, chLatin_a, chLatin_m, chLatin_e, chNull
563 };
564
565 const XMLCh XML::Literals::OrganizationURL[] =
566 { chLatin_O, chLatin_r, chLatin_g, chLatin_a, chLatin_n, chLatin_i, chLatin_z, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n,
567   chLatin_U, chLatin_R, chLatin_L, chNull
568 };
569
570 const XMLCh XML::Literals::PDPDescriptor[] =
571 { chLatin_P, chLatin_D, chLatin_P,
572   chLatin_D, chLatin_e, chLatin_s, chLatin_c, chLatin_r, chLatin_i, chLatin_p, chLatin_t, chLatin_o, chLatin_r, chNull
573 };
574
575 const XMLCh XML::Literals::protocolSupportEnumeration[] =
576 { chLatin_p, chLatin_r, chLatin_o, chLatin_t, chLatin_o, chLatin_c, chLatin_o, chLatin_l,
577   chLatin_S, chLatin_u, chLatin_p, chLatin_p, chLatin_o, chLatin_r, chLatin_t,
578   chLatin_E, chLatin_n, chLatin_u, chLatin_m, chLatin_e, chLatin_r, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull
579 };
580
581 const XMLCh XML::Literals::RequestedAttribute[] =
582 { chLatin_R, chLatin_e, chLatin_q, chLatin_u, chLatin_e, chLatin_s, chLatin_t, chLatin_e, chLatin_d,
583   chLatin_A, chLatin_t, chLatin_t, chLatin_r, chLatin_i, chLatin_b, chLatin_u, chLatin_t, chLatin_e, chNull
584 };
585
586 const XMLCh XML::Literals::ResponseLocation[] =
587 { chLatin_R, chLatin_e, chLatin_s, chLatin_p, chLatin_o, chLatin_n, chLatin_s, chLatin_e,
588   chLatin_L, chLatin_o, chLatin_c, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull
589 };
590
591 const XMLCh XML::Literals::RoleDescriptor[] =
592 { chLatin_R, chLatin_o, chLatin_l, chLatin_e,
593   chLatin_D, chLatin_e, chLatin_s, chLatin_c, chLatin_r, chLatin_i, chLatin_p, chLatin_t, chLatin_o, chLatin_r,
594   chNull
595 };
596
597 const XMLCh XML::Literals::ServiceDescription[] =
598 { chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e,
599   chLatin_D, chLatin_e, chLatin_s, chLatin_c, chLatin_r, chLatin_i, chLatin_p, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull
600 };
601
602 const XMLCh XML::Literals::ServiceName[] =
603 { chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e,
604   chLatin_N, chLatin_a, chLatin_m, chLatin_e, chNull
605 };
606
607 const XMLCh XML::Literals::signing[] =
608 { chLatin_s, chLatin_i, chLatin_g, chLatin_n, chLatin_i, chLatin_n, chLatin_g, chNull };
609
610 const XMLCh XML::Literals::SingleLogoutService[] =
611 { chLatin_S, chLatin_i, chLatin_n, chLatin_g, chLatin_l, chLatin_e,
612   chLatin_L, chLatin_o, chLatin_g, chLatin_o, chLatin_u, chLatin_t,
613   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull
614 };
615
616 const XMLCh XML::Literals::SingleSignOnService[] =
617 { chLatin_S, chLatin_i, chLatin_n, chLatin_g, chLatin_l, chLatin_e,
618   chLatin_S, chLatin_i, chLatin_g, chLatin_n, chLatin_O, chLatin_n,
619   chLatin_S, chLatin_e, chLatin_r, chLatin_v, chLatin_i, chLatin_c, chLatin_e, chNull
620 };
621
622 const XMLCh XML::Literals::SourceID[] =
623 { chLatin_S, chLatin_o, chLatin_u, chLatin_r, chLatin_c, chLatin_e, chLatin_I, chLatin_D, chNull };
624
625 const XMLCh XML::Literals::SPSSODescriptor[] =
626 { chLatin_S, chLatin_P, chLatin_S, chLatin_S, chLatin_O,
627   chLatin_D, chLatin_e, chLatin_s, chLatin_c, chLatin_r, chLatin_i, chLatin_p, chLatin_t, chLatin_o, chLatin_r, chNull
628 };
629
630 const XMLCh XML::Literals::SurName[] =
631 { chLatin_S, chLatin_u, chLatin_r, chLatin_N, chLatin_a, chLatin_m, chLatin_e, chNull };
632
633 const XMLCh XML::Literals::TelephoneNumber[] =
634 { chLatin_T, chLatin_e, chLatin_l, chLatin_e, chLatin_p, chLatin_h, chLatin_o, chLatin_n, chLatin_e,
635   chLatin_N, chLatin_u, chLatin_m, chLatin_b, chLatin_e, chLatin_r, chNull
636 };
637
638 const XMLCh XML::Literals::use[] = { chLatin_u, chLatin_s, chLatin_e, chNull };
639
640 const XMLCh XML::Literals::validUntil[] =
641 { chLatin_v, chLatin_a, chLatin_l, chLatin_i, chLatin_d, chLatin_U, chLatin_n, chLatin_t, chLatin_i, chLatin_l, chNull };
642
643 const XMLCh XML::Literals::WantAuthnRequestsSigned[] =
644 { chLatin_W, chLatin_a, chLatin_n, chLatin_t, chLatin_A, chLatin_u, chLatin_t, chLatin_h, chLatin_n,
645   chLatin_R, chLatin_e, chLatin_q, chLatin_u, chLatin_e, chLatin_s, chLatin_t, chLatin_s,
646   chLatin_S, chLatin_i, chLatin_g, chLatin_n, chLatin_e, chLatin_d, chNull
647 };
648
649 const XMLCh XML::Literals::WantAssertionsSigned[] =
650 { chLatin_W, chLatin_a, chLatin_n, chLatin_t,
651   chLatin_A, chLatin_s, chLatin_s, chLatin_e, chLatin_r, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chLatin_s,
652   chLatin_S, chLatin_i, chLatin_g, chLatin_n, chLatin_e, chLatin_d, chNull
653 };