Change license header, remove stale pkg files.
[shibboleth/cpp-opensaml.git] / saml / saml1 / core / impl / ProtocolsSchemaValidators.cpp
index 445ec2b..0f4cc3c 100644 (file)
@@ -1,22 +1,26 @@
-/*
-*  Copyright 2001-2006 Internet2
- * 
-* Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+/**
+ * Licensed to the University Corporation for Advanced Internet
+ * Development, Inc. (UCAID) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for
+ * additional information regarding copyright ownership.
+ *
+ * UCAID licenses this file to you under the Apache License,
+ * Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the
+ * License at
  *
- *     http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
  *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+ * either express or implied. See the License for the specific
+ * language governing permissions and limitations under the License.
  */
 
 /**
  * ProtocolsSchemaValidators.cpp
- * 
+ *
  * Schema-based validators for SAML 1.x Protocols classes
  */
 
 #include "exceptions.h"
 #include "saml1/core/Protocols.h"
 
+#include <xmltooling/validation/Validator.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 {
-        
+
         XMLOBJECTVALIDATOR_SIMPLE(SAML_DLLLOCAL,AssertionArtifact);
         XMLOBJECTVALIDATOR_SIMPLE(SAML_DLLLOCAL,StatusMessage);
-        
+
         BEGIN_XMLOBJECTVALIDATOR(SAML_DLLLOCAL,RespondWith);
             XMLOBJECTVALIDATOR_REQUIRE(RespondWith,QName);
         END_XMLOBJECTVALIDATOR;
@@ -62,7 +70,7 @@ namespace opensaml {
             if (!minor.first)
                 throw ValidationException("Request must have MinorVersion");
             int count=0;
-            if (ptr->getQuery()!=NULL)
+            if (ptr->getQuery()!=nullptr)
                 count++;
             if (!ptr->getAssertionIDReferences().empty())
                 count++;
@@ -78,10 +86,10 @@ namespace opensaml {
 
         BEGIN_XMLOBJECTVALIDATOR(SAML_DLLLOCAL,Status);
             XMLOBJECTVALIDATOR_REQUIRE(Status,StatusCode);
-            const QName* value=ptr->getStatusCode()->getValue();
+            const xmltooling::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."); 
+                throw ValidationException("Top-level status code not one of the allowable values.");
         END_XMLOBJECTVALIDATOR;
 
         BEGIN_XMLOBJECTVALIDATOR(SAML_DLLLOCAL,Response);
@@ -96,29 +104,30 @@ namespace opensaml {
 };
 
 #define REGISTER_ELEMENT(cname) \
-    q=QName(SAMLConstants::SAML1P_NS,cname::LOCAL_NAME); \
+    q=xmltooling::QName(SAML1P_NS,cname::LOCAL_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \
     SchemaValidators.registerValidator(q,new cname##SchemaValidator())
-    
+
 #define REGISTER_TYPE(cname) \
-    q=QName(SAMLConstants::SAML1P_NS,cname::TYPE_NAME); \
+    q=xmltooling::QName(SAML1P_NS,cname::TYPE_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \
     SchemaValidators.registerValidator(q,new cname##SchemaValidator())
 
 #define REGISTER_ELEMENT_NOVAL(cname) \
-    q=QName(SAMLConstants::SAML1P_NS,cname::LOCAL_NAME); \
+    q=xmltooling::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=xmltooling::QName(SAML1P_NS,cname::TYPE_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder());
 
 void opensaml::saml1p::registerProtocolClasses() {
-    QName q;
+    xmltooling::QName q;
     REGISTER_ELEMENT(AssertionArtifact);
     REGISTER_ELEMENT(AttributeQuery);
     REGISTER_ELEMENT(AuthenticationQuery);
     REGISTER_ELEMENT(AuthorizationDecisionQuery);
+    REGISTER_ELEMENT_NOVAL(Query);
     REGISTER_ELEMENT(Request);
     REGISTER_ELEMENT(RespondWith);
     REGISTER_ELEMENT(Response);