Add schemas, metadata extension code for discovery and request initiator endpoints.
[shibboleth/cpp-opensaml.git] / saml / util / SAMLConstants.h
1 /*
2  *  Copyright 2001-2010 Internet2
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 /**
18  * @file saml/util/SAMLConstants.h
19  *
20  * SAML XML namespace constants.
21  */
22
23 #ifndef __saml_xmlconstants_h__
24 #define __saml_xmlconstants_h__
25
26 #include <saml/base.h>
27 #include <xercesc/util/XercesDefs.hpp>
28
29 /**
30  * SAML-related constants.
31  */
32 namespace samlconstants {
33
34     /**  Liberty PAOS XML Namespace ("urn:liberty:paos:2003-08") */
35     extern SAML_API const XMLCh PAOS_NS[];
36
37     /**  Liberty PAOS QName prefix ("paos") */
38     extern SAML_API const XMLCh PAOS_PREFIX[];
39
40     /**  SAML 1.X Assertion XML namespace ("urn:oasis:names:tc:SAML:1.0:assertion") */
41     extern SAML_API const XMLCh SAML1_NS[];
42
43     /**  SAML 1.X Protocol XML namespace ("urn:oasis:names:tc:SAML:1.0:protocol") */
44     extern SAML_API const XMLCh SAML1P_NS[];
45
46     /** SAML 1.X Assertion QName prefix ("saml") */
47     extern SAML_API const XMLCh SAML1_PREFIX[];
48
49     /** SAML 1.X Protocol QName prefix ("samlp") */
50     extern SAML_API const XMLCh SAML1P_PREFIX[];
51
52     /**  SAML 2.0 Version ("2.0") */
53     extern SAML_API const XMLCh SAML20_VERSION[];
54
55     /**  SAML 2.0 Assertion XML namespace ("urn:oasis:names:tc:SAML:2.0:assertion") */
56     extern SAML_API const XMLCh SAML20_NS[];
57
58     /**  SAML 2.0 Protocol XML namespace ("urn:oasis:names:tc:SAML:2.0:protocol") */
59     extern SAML_API const XMLCh SAML20P_NS[];
60
61     /**  SAML 2.0 Metadata XML namespace ("urn:oasis:names:tc:SAML:2.0:metadata") */
62     extern SAML_API const XMLCh SAML20MD_NS[];
63
64     /**  SAML 2.0 AuthnContext XML namespace ("urn:oasis:names:tc:SAML:2.0:ac") */
65     extern SAML_API const XMLCh SAML20AC_NS[];
66
67     /** SAML 2.0 Assertion QName prefix ("saml") */
68     extern SAML_API const XMLCh SAML20_PREFIX[];
69
70     /** SAML 2.0 Protocol QName prefix ("samlp") */
71     extern SAML_API const XMLCh SAML20P_PREFIX[];
72
73     /** SAML 2.0 Metadata QName prefix ("md") */
74     extern SAML_API const XMLCh SAML20MD_PREFIX[];
75
76     /** SAML 2.0 AuthnContext QName prefix ("ac") */
77     extern SAML_API const XMLCh SAML20AC_PREFIX[];
78
79     /** SAML 2.0 Enhanced Client/Proxy SSO Profile XML Namespace ("urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp") */
80     extern SAML_API const XMLCh SAML20ECP_NS[];
81
82     /** SAML 2.0 Enhanced Client/Proxy SSO Profile QName prefix ("ecp") */
83     extern SAML_API const XMLCh SAML20ECP_PREFIX[];
84
85     /** SAML 2.0 DCE PAC Attribute Profile XML Namespace ("urn:oasis:names:tc:SAML:2.0:profiles:attribute:DCE") */
86     extern SAML_API const XMLCh SAML20DCE_NS[];
87
88     /** SAML 2.0 DCE PAC Attribute Profile QName prefix ("DCE") */
89     extern SAML_API const XMLCh SAML20DCE_PREFIX[];
90
91     /** SAML 2.0 X.500 Attribute Profile XML Namespace ("urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500") */
92     extern SAML_API const XMLCh SAML20X500_NS[];
93
94     /** SAML 2.0 X.500 Attribute Profile QName prefix ("x500") */
95     extern SAML_API const XMLCh SAML20X500_PREFIX[];
96
97     /** SAML 2.0 XACML Attribute Profile XML Namespace ("urn:oasis:names:tc:SAML:2.0:profiles:attribute:XACML") */
98     extern SAML_API const XMLCh SAML20XACML_NS[];
99
100     /** SAML 2.0 XACML Attribute Profile QName prefix ("xacmlprof") */
101     extern SAML_API const XMLCh SAML20XACML_PREFIX[];
102
103     /** SAML 1.x Metadata Profile XML Namespace ("urn:oasis:names:tc:SAML:profiles:v1metadata") */
104     extern SAML_API const XMLCh SAML1MD_NS[];
105
106     /** SAML 1.x Metadata Profile QName prefix ("saml1md") */
107     extern SAML_API const XMLCh SAML1MD_PREFIX[];
108
109     /** SAML 1.0 Protocol Enumeration constant ("urn:oasis:names:tc:SAML:1.0:protocol") */
110     extern SAML_API const XMLCh SAML10_PROTOCOL_ENUM[];
111
112     /** SAML 1.1 Protocol Enumeration constant ("urn:oasis:names:tc:SAML:1.1:protocol") */
113     extern SAML_API const XMLCh SAML11_PROTOCOL_ENUM[];
114
115     /** SAML Query Requester Metadata Extension XML Namespace ("urn:oasis:names:tc:SAML:metadata:ext:query") */
116     extern SAML_API const XMLCh SAML20MD_QUERY_EXT_NS[];
117
118     /** SAML Query Requester Metadata Extension QName prefix ("query") */
119     extern SAML_API const XMLCh SAML20MD_QUERY_EXT_PREFIX[];
120
121     /** SAML Third-Party Request Protocol Extension XML Namespace ("urn:oasis:names:tc:SAML:protocol:ext:third-party") */
122     extern SAML_API const XMLCh SAML20P_THIRDPARTY_EXT_NS[];
123
124     /** SAML Third-Party Request Protocol Extension QName prefix ("thrpty") */
125     extern SAML_API const XMLCh SAML20P_THIRDPARTY_EXT_PREFIX[];
126
127     /** SAML Attribute Extension XML Namespace ("urn:oasis:names:tc:SAML:attribute:ext") */
128     extern SAML_API const XMLCh SAML20_ATTRIBUTE_EXT_NS[];
129
130     /** SAML Attribute Extension QName prefix ("ext") */
131     extern SAML_API const XMLCh SAML20_ATTRIBUTE_EXT_PREFIX[];
132
133     /** SAML Metadata Extension for Algorithm Support XML Namespace ("urn:oasis:names:tc:SAML:metadata:algsupport") */
134     extern SAML_API const XMLCh SAML20MD_ALGSUPPORT_NS[];
135
136     /** SAML Metadata Extension for Algorithm Support QName prefix ("alg") */
137     extern SAML_API const XMLCh SAML20MD_ALGSUPPORT_PREFIX[];
138
139     /** SAML Metadata Extension for Entity Attributes XML Namespace ("urn:oasis:names:tc:SAML:metadata:attribute") */
140     extern SAML_API const XMLCh SAML20MD_ENTITY_ATTRIBUTE_NS[];
141
142     /** SAML Metadata Extension for Entity Attributes QName prefix ("mdattr") */
143     extern SAML_API const XMLCh SAML20MD_ENTITY_ATTRIBUTE_PREFIX[];
144
145     /** SAML Metadata Extension for Discovery and Login UI XML Namespace ("urn:oasis:names:tc:SAML:metadata:ui") */
146     extern SAML_API const XMLCh SAML20MD_UI_NS[];
147
148     /** SAML Metadata Extension for Discovery and Login UI QName prefix ("mdui") */
149     extern SAML_API const XMLCh SAML20MD_UI_PREFIX[];
150
151     /** SAML Condition for Delegation Restriction XML Namespace ("urn:oasis:names:tc:SAML:2.0:conditions:delegation") */
152     extern SAML_API const XMLCh SAML20_DELEGATION_CONDITION_NS[];
153
154     /** SAML Condition for Delegation Restriction QName prefix ("del") */
155     extern SAML_API const XMLCh SAML20_DELEGATION_CONDITION_PREFIX[];
156
157     /** Identity Provider Discovery Protocol and Profile XML Namespace ("urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol") */
158     extern SAML_API const XMLCh IDP_DISCOVERY_PROTOCOL_NS[];
159
160     /** Identity Provider Discovery Protocol and Profile QName prefix ("idpdisc") */
161     extern SAML_API const XMLCh IDP_DISCOVERY_PROTOCOL_PREFIX[];
162
163     /** Service Provider Request Initiation Protocol and Profile XML Namespace ("urn:oasis:names:tc:SAML:profiles:SSO:request-init") */
164     extern SAML_API const XMLCh SP_REQUEST_INIT_NS[];
165
166     /** Service Provider Request Initiation Protocol and Profile QName prefix ("init") */
167     extern SAML_API const XMLCh SP_REQUEST_INIT_PREFIX[];
168
169     /** SAML 1.x SOAP binding ("urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding") */
170     extern SAML_API const char SAML1_BINDING_SOAP[];
171
172     /** SAML 1.x Browser Artifact profile ("urn:oasis:names:tc:SAML:1.0:profiles:artifact-01") */
173     extern SAML_API const char SAML1_PROFILE_BROWSER_ARTIFACT[];
174
175     /** SAML 1.x Browser POST profile ("urn:oasis:names:tc:SAML:1.0:profiles:browser-post") */
176     extern SAML_API const char SAML1_PROFILE_BROWSER_POST[];
177
178     /** SAML 2.0 SOAP binding ("urn:oasis:names:tc:SAML:2.0:bindings:SOAP") */
179     extern SAML_API const char SAML20_BINDING_SOAP[];
180
181     /** SAML 2.0 PAOS binding ("urn:oasis:names:tc:SAML:2.0:bindings:PAOS") */
182     extern SAML_API const char SAML20_BINDING_PAOS[];
183
184     /** SAML 2.0 URI binding ("urn:oasis:names:tc:SAML:2.0:bindings:URI") */
185     extern SAML_API const char SAML20_BINDING_URI[];
186
187     /** SAML 2.0 HTTP-Artifact binding ("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact") */
188     extern SAML_API const char SAML20_BINDING_HTTP_ARTIFACT[];
189
190     /** SAML 2.0 HTTP-POST binding ("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST") */
191     extern SAML_API const char SAML20_BINDING_HTTP_POST[];
192
193     /** SAML 2.0 HTTP-POST-SimpleSign binding ("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign") */
194     extern SAML_API const char SAML20_BINDING_HTTP_POST_SIMPLESIGN[];
195
196     /** SAML 2.0 HTTP-Redirect binding ("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect") */
197     extern SAML_API const char SAML20_BINDING_HTTP_REDIRECT[];
198
199     /** SAML 2.0 HTTP-Redirect DEFLATE URL encoding ("urn:oasis:names:tc:SAML:2.0:bindings:URL-Encoding:DEFLATE") */
200     extern SAML_API const char SAML20_BINDING_URL_ENCODING_DEFLATE[];
201 };
202
203 #endif /* __saml_xmlconstants_h__ */