Added ValidatorSuite around groups of static validators.
authorScott Cantor <cantor.2@osu.edu>
Sun, 2 Jul 2006 22:22:45 +0000 (22:22 +0000)
committerScott Cantor <cantor.2@osu.edu>
Sun, 2 Jul 2006 22:22:45 +0000 (22:22 +0000)
saml/SAMLConfig.cpp
saml/saml1/core/Assertions.h
saml/saml1/core/Protocols.h
saml/saml1/core/impl/AssertionsSchemaValidators.cpp
saml/saml1/core/impl/ProtocolsSchemaValidators.cpp
saml/saml2/core/Assertions.h
saml/saml2/core/impl/Assertions20SchemaValidators.cpp
saml/saml2/metadata/Metadata.h
saml/saml2/metadata/impl/MetadataSchemaValidators.cpp

index d7c1042..7859e9b 100644 (file)
@@ -85,6 +85,12 @@ void SAMLInternalConfig::term()
 #ifdef _DEBUG
     xmltooling::NDC ndc("term");
 #endif
+
+    saml1::AssertionSchemaValidators.destroyValidators();
+    saml1p::ProtocolSchemaValidators.destroyValidators();
+    saml2::AssertionSchemaValidators.destroyValidators();
+    saml2md::MetadataSchemaValidators.destroyValidators();
+
     XMLToolingConfig::getConfig().term();
     Category::getInstance(SAML_LOGCAT".SAMLConfig").info("library shutdown complete");
 }
index c392f1a..1b4d72e 100644 (file)
@@ -34,6 +34,7 @@
 #include <xmltooling/signature/Signature.h>
 #include <xmltooling/util/DateTime.h>
 #include <xmltooling/validation/ValidatingXMLObject.h>
+#include <xmltooling/validation/ValidatorSuite.h>
 
 #define DECL_SAML1OBJECTBUILDER(cname) \
     DECL_XMLOBJECTBUILDER(SAML_API,cname,opensaml::SAMLConstants::SAML1_NS,opensaml::SAMLConstants::SAML1_PREFIX)
@@ -234,9 +235,14 @@ namespace opensaml {
         DECL_SAML1OBJECTBUILDER(SubjectLocality);
         
         /**
-         * Registers builders and validators for Assertion classes into the runtime.
+         * Registers builders and validators for SAML 1.x Assertion classes into the runtime.
          */
         void SAML_API registerAssertionClasses();
+
+        /**
+         * Validator suite for SAML 1.x Assertion schema validation.
+         */
+        extern SAML_API xmltooling::ValidatorSuite AssertionSchemaValidators;
     };
 };
 
index cd69ea4..5e07d02 100644 (file)
@@ -156,9 +156,14 @@ namespace opensaml {
         DECL_SAML1POBJECTBUILDER(StatusMessage);
         
         /**
-         * Registers builders and validators for Protocol classes into the runtime.
+         * Registers builders and validators for SAML 1.x Protocol classes into the runtime.
          */
         void SAML_API registerProtocolClasses();
+
+        /**
+         * Validator suite for SAML 1.x Protocol schema validation.
+         */
+        extern SAML_API xmltooling::ValidatorSuite ProtocolSchemaValidators;
     };
 };
 
index 815d725..61475c3 100644 (file)
@@ -141,12 +141,12 @@ namespace opensaml {
 #define REGISTER_ELEMENT(cname) \
     q=QName(SAMLConstants::SAML1_NS,cname::LOCAL_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \
-    Validator::registerValidator(q,new cname##SchemaValidator())
+    AssertionSchemaValidators.registerValidator(q,new cname##SchemaValidator())
     
 #define REGISTER_TYPE(cname) \
     q=QName(SAMLConstants::SAML1_NS,cname::TYPE_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \
-    Validator::registerValidator(q,new cname##SchemaValidator())
+    AssertionSchemaValidators.registerValidator(q,new cname##SchemaValidator())
 
 #define REGISTER_ELEMENT_NOVAL(cname) \
     q=QName(SAMLConstants::SAML1_NS,cname::LOCAL_NAME); \
@@ -156,6 +156,8 @@ namespace opensaml {
     q=QName(SAMLConstants::SAML1_NS,cname::TYPE_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder());
 
+ValidatorSuite opensaml::saml1::AssertionSchemaValidators("AssertionSchemaValidators");
+
 void opensaml::saml1::registerAssertionClasses() {
     QName q;
     REGISTER_ELEMENT(Action);
index 59942ee..ab6e67e 100644 (file)
@@ -92,12 +92,12 @@ namespace opensaml {
 #define REGISTER_ELEMENT(cname) \
     q=QName(SAMLConstants::SAML1P_NS,cname::LOCAL_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \
-    Validator::registerValidator(q,new cname##SchemaValidator())
+    ProtocolSchemaValidators.registerValidator(q,new cname##SchemaValidator())
     
 #define REGISTER_TYPE(cname) \
     q=QName(SAMLConstants::SAML1P_NS,cname::TYPE_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \
-    Validator::registerValidator(q,new cname##SchemaValidator())
+    ProtocolSchemaValidators.registerValidator(q,new cname##SchemaValidator())
 
 #define REGISTER_ELEMENT_NOVAL(cname) \
     q=QName(SAMLConstants::SAML1P_NS,cname::LOCAL_NAME); \
@@ -107,6 +107,8 @@ namespace opensaml {
     q=QName(SAMLConstants::SAML1P_NS,cname::TYPE_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder());
 
+ValidatorSuite opensaml::saml1p::ProtocolSchemaValidators("ProtocolSchemaValidators");
+
 void opensaml::saml1p::registerProtocolClasses() {
     QName q;
     REGISTER_ELEMENT(AssertionArtifact);
index a45b048..e00ca09 100644 (file)
@@ -35,6 +35,7 @@
 #include <xmltooling/signature/Signature.h>
 #include <xmltooling/util/DateTime.h>
 #include <xmltooling/validation/ValidatingXMLObject.h>
+#include <xmltooling/validation/ValidatorSuite.h>
 
 #define DECL_SAML2OBJECTBUILDER(cname) \
     DECL_XMLOBJECTBUILDER(SAML_API,cname,opensaml::SAMLConstants::SAML20_NS,opensaml::SAMLConstants::SAML20_PREFIX)
@@ -380,9 +381,14 @@ namespace opensaml {
         };
         
         /**
-         * Registers builders and validators for Assertion classes into the runtime.
+         * Registers builders and validators for SAML 2.0 Assertion classes into the runtime.
          */
         void SAML_API registerAssertionClasses();
+
+        /**
+         * Validator suite for SAML 2.0 Assertion schema validation.
+         */
+        extern SAML_API xmltooling::ValidatorSuite AssertionSchemaValidators;
     };
 };
 
index 0ad267e..455ad72 100644 (file)
@@ -177,12 +177,12 @@ namespace opensaml {
 #define REGISTER_ELEMENT(cname) \
     q=QName(SAMLConstants::SAML20_NS,cname::LOCAL_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \
-    Validator::registerValidator(q,new cname##SchemaValidator())
+    AssertionSchemaValidators.registerValidator(q,new cname##SchemaValidator())
     
 #define REGISTER_TYPE(cname) \
     q=QName(SAMLConstants::SAML20_NS,cname::TYPE_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \
-    Validator::registerValidator(q,new cname##SchemaValidator())
+    AssertionSchemaValidators.registerValidator(q,new cname##SchemaValidator())
 
 #define REGISTER_ELEMENT_NOVAL(cname) \
     q=QName(SAMLConstants::SAML20_NS,cname::LOCAL_NAME); \
@@ -192,6 +192,8 @@ namespace opensaml {
     q=QName(SAMLConstants::SAML20_NS,cname::TYPE_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder());
 
+ValidatorSuite opensaml::saml2::AssertionSchemaValidators("AssertionSchemaValidators");
+
 void opensaml::saml2::registerAssertionClasses() {
     QName q;
     REGISTER_ELEMENT(Action);
index 305407a..60445d8 100644 (file)
@@ -460,9 +460,14 @@ namespace opensaml {
         };
 
         /**
-         * Registers builders and validators for Metadata classes into the runtime.
+         * Registers builders and validators for SAML 2.0 Metadata classes into the runtime.
          */
         void SAML_API registerMetadataClasses();
+
+        /**
+         * Validator suite for SAML 2.0 Metadata schema validation.
+         */
+        extern SAML_API xmltooling::ValidatorSuite MetadataSchemaValidators;
     };
 };
 
index 21dffda..d4755a3 100644 (file)
@@ -245,12 +245,12 @@ namespace opensaml {
 #define REGISTER_ELEMENT(cname) \
     q=QName(SAMLConstants::SAML20MD_NS,cname::LOCAL_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \
-    Validator::registerValidator(q,new cname##SchemaValidator())
+    MetadataSchemaValidators.registerValidator(q,new cname##SchemaValidator())
     
 #define REGISTER_TYPE(cname) \
     q=QName(SAMLConstants::SAML20MD_NS,cname::TYPE_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \
-    Validator::registerValidator(q,new cname##SchemaValidator())
+    MetadataSchemaValidators.registerValidator(q,new cname##SchemaValidator())
 
 #define REGISTER_ELEMENT_NOVAL(cname) \
     q=QName(SAMLConstants::SAML20MD_NS,cname::LOCAL_NAME); \
@@ -260,6 +260,8 @@ namespace opensaml {
     q=QName(SAMLConstants::SAML20MD_NS,cname::TYPE_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder());
 
+ValidatorSuite opensaml::saml2md::MetadataSchemaValidators("MetadataSchemaValidators");
+
 void opensaml::saml2md::registerMetadataClasses() {
     QName q;
     REGISTER_ELEMENT(AdditionalMetadataLocation);