Missing header.
[shibboleth/cpp-opensaml.git] / saml / saml2 / core / Protocols.h
index 2ab5ab4..0688437 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *  Copyright 2001-2006 Internet2
+ *  Copyright 2001-2009 Internet2
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 
 #include <saml/saml2/core/Assertions.h>
 
+#include <xercesc/util/XMLUniDefs.hpp>
 
 #define DECL_SAML2POBJECTBUILDER(cname) \
-    DECL_XMLOBJECTBUILDER(SAML_API,cname,opensaml::SAMLConstants::SAML20P_NS,opensaml::SAMLConstants::SAML20P_PREFIX)
+    DECL_XMLOBJECTBUILDER(SAML_API,cname,samlconstants::SAML20P_NS,samlconstants::SAML20P_PREFIX)
 
 namespace opensaml {
 
@@ -39,26 +40,24 @@ namespace opensaml {
 
         DECL_XMLOBJECT_SIMPLE(SAML_API,Artifact,Artifact,SAML 2.0 Artifact element);
         DECL_XMLOBJECT_SIMPLE(SAML_API,GetComplete,GetComplete,SAML 2.0 GetComplete element);
-        DECL_XMLOBJECT_SIMPLE(SAML_API,NewID,NewID,SAML 2.0 NewID element);
         DECL_XMLOBJECT_SIMPLE(SAML_API,RequesterID,RequesterID,SAML 2.0 RequesterID element);
         DECL_XMLOBJECT_SIMPLE(SAML_API,SessionIndex,SessionIndex,SAML 2.0 SessionIndex element);
         DECL_XMLOBJECT_SIMPLE(SAML_API,StatusMessage,Message,SAML 2.0 StatusMessage element);
 
         DECL_XMLOBJECT_SIMPLE(SAML_API,RespondTo,Name,SAML 2.0 third-party request RespondTo extension element);
 
-        BEGIN_XMLOBJECT(SAML_API,Extensions,xmltooling::ElementProxy,SAML 2.0 protocol Extensions element);
+        BEGIN_XMLOBJECT(SAML_API,Extensions,xmltooling::ElementExtensibleXMLObject,SAML 2.0 protocol Extensions element);
             /** ExtensionsType local name */
             static const XMLCh TYPE_NAME[];
         END_XMLOBJECT;
 
-        BEGIN_XMLOBJECT(SAML_API,RequestAbstractType,SignableObject,SAML 2.0 RequestAbstractType base type);
-            DECL_STRING_ATTRIB(ID,ID);
-            DECL_STRING_ATTRIB(Version,VER);
-            DECL_DATETIME_ATTRIB(IssueInstant,ISSUEINSTANT);
+        BEGIN_XMLOBJECT(SAML_API,RequestAbstractType,saml2::RootObject,SAML 2.0 RequestAbstractType base type);
+            DECL_INHERITED_STRING_ATTRIB(ID,ID);
+            DECL_INHERITED_STRING_ATTRIB(Version,VER);
+            DECL_INHERITED_DATETIME_ATTRIB(IssueInstant,ISSUEINSTANT);
             DECL_STRING_ATTRIB(Destination,DESTINATION);
             DECL_STRING_ATTRIB(Consent,CONSENT);
-            DECL_TYPED_FOREIGN_CHILD(Issuer,saml2);
-            DECL_TYPED_FOREIGN_CHILD(Signature,xmlsignature);
+            DECL_INHERITED_TYPED_FOREIGN_CHILD(Issuer,saml2);
             DECL_TYPED_CHILD(Extensions);
             /** RequestAbstractType local name */
             static const XMLCh TYPE_NAME[];
@@ -127,8 +126,7 @@ namespace opensaml {
             /*@{*/
         END_XMLOBJECT;
 
-        BEGIN_XMLOBJECT(SAML_API,StatusDetail,xmltooling::XMLObject,SAML 2.0 StatusDetail element);
-            DECL_XMLOBJECT_CHILDREN(Detail);
+        BEGIN_XMLOBJECT(SAML_API,StatusDetail,xmltooling::ElementExtensibleXMLObject,SAML 2.0 StatusDetail element);
             /** StatusDetailType local name */
             static const XMLCh TYPE_NAME[];
         END_XMLOBJECT;
@@ -141,19 +139,16 @@ namespace opensaml {
             static const XMLCh TYPE_NAME[];
         END_XMLOBJECT;
 
-        BEGIN_XMLOBJECT(SAML_API,StatusResponseType,SignableObject,SAML 2.0 StatusResponseType base type);
-            DECL_STRING_ATTRIB(ID,ID);
+        BEGIN_XMLOBJECT(SAML_API,StatusResponseType,saml2::RootObject,SAML 2.0 StatusResponseType base type);
+            DECL_INHERITED_STRING_ATTRIB(ID,ID);
             DECL_STRING_ATTRIB(InResponseTo,INRESPONSETO);
-            DECL_STRING_ATTRIB(Version,VER);
-            DECL_DATETIME_ATTRIB(IssueInstant,ISSUEINSTANT);
+            DECL_INHERITED_STRING_ATTRIB(Version,VER);
+            DECL_INHERITED_DATETIME_ATTRIB(IssueInstant,ISSUEINSTANT);
             DECL_STRING_ATTRIB(Destination,DESTINATION);
             DECL_STRING_ATTRIB(Consent,CONSENT);
-
-            DECL_TYPED_FOREIGN_CHILD(Issuer,saml2);
-            DECL_TYPED_FOREIGN_CHILD(Signature,xmlsignature);
+            DECL_INHERITED_TYPED_FOREIGN_CHILD(Issuer,saml2);
             DECL_TYPED_CHILD(Extensions);
             DECL_TYPED_CHILD(Status);
-
             /** StatusResponseType local name */
             static const XMLCh TYPE_NAME[];
         END_XMLOBJECT;
@@ -175,7 +170,6 @@ namespace opensaml {
             DECL_STRING_ATTRIB(Comparison,COMPARISON);
             DECL_TYPED_FOREIGN_CHILDREN(AuthnContextClassRef,saml2);
             DECL_TYPED_FOREIGN_CHILDREN(AuthnContextDeclRef,saml2);
-
             /** RequestedAuthnContextType local name */
             static const XMLCh TYPE_NAME[];
 
@@ -291,6 +285,10 @@ namespace opensaml {
             static const XMLCh TYPE_NAME[];
         END_XMLOBJECT;
 
+        BEGIN_XMLOBJECT(SAML_API,NewID,saml2::EncryptableObject,SAML 2.0 NewID element);
+            DECL_SIMPLE_CONTENT(NewID);
+        END_XMLOBJECT;
+
         BEGIN_XMLOBJECT(SAML_API,NewEncryptedID,saml2::EncryptedElementType,SAML 2.0 NewEncryptedID element);
         END_XMLOBJECT;
 
@@ -389,7 +387,7 @@ namespace opensaml {
         DECL_SAML2POBJECTBUILDER(StatusMessage);
         DECL_SAML2POBJECTBUILDER(Terminate);
         
-        DECL_XMLOBJECTBUILDER(SAML_API,RespondTo,opensaml::SAMLConstants::SAML20P_THIRDPARTY_EXT_NS,opensaml::SAMLConstants::SAML20P_THIRDPARTY_EXT_PREFIX);
+        DECL_XMLOBJECTBUILDER(SAML_API,RespondTo,samlconstants::SAML20P_THIRDPARTY_EXT_NS,samlconstants::SAML20P_THIRDPARTY_EXT_PREFIX);
 
         /**
          * Registers builders and validators for SAML 2.0 Protocol classes into the runtime.