#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");
}
#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)
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;
};
};
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;
};
};
#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); \
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);
#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); \
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);
#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)
};
/**
- * 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;
};
};
#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); \
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);
};
/**
- * 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;
};
};
#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); \
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);