- BEGIN_XMLOBJECT(SAML_API,Assertion,SignableObject,SAML 2.0 Assertion element);
- DECL_STRING_ATTRIB(Version,VER);
- DECL_STRING_ATTRIB(ID,ID);
- DECL_DATETIME_ATTRIB(IssueInstant,ISSUEINSTANT);
- DECL_TYPED_CHILD(Issuer);
- DECL_TYPED_FOREIGN_CHILD(Signature,xmlsignature);
+ /**
+ * SAML 2.0 assertion or protocol message.
+ */
+ class SAML_API RootObject : virtual public opensaml::RootObject
+ {
+ protected:
+ RootObject() {}
+ public:
+ virtual ~RootObject() {}
+
+ /** Gets the Version attribute. */
+ virtual const XMLCh* getVersion() const=0;
+
+ /** Gets the Issuer. */
+ virtual Issuer* getIssuer() const=0;
+ };
+
+ BEGIN_XMLOBJECT(SAML_API,Assertion,saml2::RootObject,SAML 2.0 Assertion element);
+ bool isAssertion() const {
+ return true;
+ }
+ DECL_INHERITED_STRING_ATTRIB(Version,VER);
+ DECL_INHERITED_STRING_ATTRIB(ID,ID);
+ DECL_INHERITED_DATETIME_ATTRIB(IssueInstant,ISSUEINSTANT);
+ DECL_INHERITED_TYPED_CHILD(Issuer);
+ DECL_INHERITED_TYPED_FOREIGN_CHILD(Signature,xmlsignature);