Removed unnecessary class from string literals.
[shibboleth/cpp-opensaml.git] / saml / saml1 / core / impl / ProtocolsSchemaValidators.cpp
index 59942ee..260b528 100644 (file)
 #include "exceptions.h"
 #include "saml1/core/Protocols.h"
 
+#include <xmltooling/validation/ValidatorSuite.h>
+
 using namespace opensaml::saml1p;
 using namespace opensaml::saml1;
 using namespace opensaml;
 using namespace xmltooling;
 using namespace std;
+using samlconstants::SAML1P_NS;
 
 namespace opensaml {
     namespace saml1p {
@@ -58,7 +61,10 @@ namespace opensaml {
         BEGIN_XMLOBJECTVALIDATOR(SAML_DLLLOCAL,Request);
             XMLOBJECTVALIDATOR_REQUIRE(Request,RequestID);
             XMLOBJECTVALIDATOR_REQUIRE(Request,IssueInstant);
-            int count=0; 
+            pair<bool,int> minor=ptr->getMinorVersion();
+            if (!minor.first)
+                throw ValidationException("Request must have MinorVersion");
+            int count=0;
             if (ptr->getQuery()!=NULL)
                 count++;
             if (!ptr->getAssertionIDReferences().empty())
@@ -85,26 +91,29 @@ namespace opensaml {
             XMLOBJECTVALIDATOR_REQUIRE(Response,ResponseID);
             XMLOBJECTVALIDATOR_REQUIRE(Response,IssueInstant);
             XMLOBJECTVALIDATOR_REQUIRE(Response,Status);
+            pair<bool,int> minor=ptr->getMinorVersion();
+            if (!minor.first)
+                throw ValidationException("Response must have MinorVersion");
         END_XMLOBJECTVALIDATOR;
     };
 };
 
 #define REGISTER_ELEMENT(cname) \
-    q=QName(SAMLConstants::SAML1P_NS,cname::LOCAL_NAME); \
+    q=QName(SAML1P_NS,cname::LOCAL_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \
-    Validator::registerValidator(q,new cname##SchemaValidator())
+    SchemaValidators.registerValidator(q,new cname##SchemaValidator())
     
 #define REGISTER_TYPE(cname) \
-    q=QName(SAMLConstants::SAML1P_NS,cname::TYPE_NAME); \
+    q=QName(SAML1P_NS,cname::TYPE_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \
-    Validator::registerValidator(q,new cname##SchemaValidator())
+    SchemaValidators.registerValidator(q,new cname##SchemaValidator())
 
 #define REGISTER_ELEMENT_NOVAL(cname) \
-    q=QName(SAMLConstants::SAML1P_NS,cname::LOCAL_NAME); \
+    q=QName(SAML1P_NS,cname::LOCAL_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder());
     
 #define REGISTER_TYPE_NOVAL(cname) \
-    q=QName(SAMLConstants::SAML1P_NS,cname::TYPE_NAME); \
+    q=QName(SAML1P_NS,cname::TYPE_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder());
 
 void opensaml::saml1p::registerProtocolClasses() {