+
+ BEGIN_XMLOBJECTVALIDATOR(SAML_DLLLOCAL,Status);
+ XMLOBJECTVALIDATOR_REQUIRE(Status,StatusCode);
+ const QName* value=ptr->getStatusCode()->getValue();
+ if (!value || (*value!=StatusCode::SUCCESS && *value!=StatusCode::REQUESTER &&
+ *value!=StatusCode::RESPONDER && *value!=StatusCode::VERSIONMISMATCH))
+ throw ValidationException("Top-level status code not one of the allowable values.");
+ END_XMLOBJECTVALIDATOR;
+
+ BEGIN_XMLOBJECTVALIDATOR(SAML_DLLLOCAL,Response);
+ XMLOBJECTVALIDATOR_REQUIRE(Response,ResponseID);
+ XMLOBJECTVALIDATOR_REQUIRE(Response,IssueInstant);
+ XMLOBJECTVALIDATOR_REQUIRE(Response,Status);
+ END_XMLOBJECTVALIDATOR;