Reworked int/bool attribute handling.
[shibboleth/cpp-opensaml.git] / saml / saml2 / metadata / impl / MetadataSchemaValidators.cpp
index 21dffda..707ac67 100644 (file)
@@ -127,7 +127,7 @@ namespace opensaml {
 
         BEGIN_XMLOBJECTVALIDATOR_SUB(SAML_DLLLOCAL,IndexedEndpointType,EndpointType);
             EndpointTypeSchemaValidator::validate(xmlObject);
-            XMLOBJECTVALIDATOR_REQUIRE(IndexedEndpointType,Index);
+            XMLOBJECTVALIDATOR_REQUIRE_INTEGER(IndexedEndpointType,Index);
         END_XMLOBJECTVALIDATOR;
 
         BEGIN_XMLOBJECTVALIDATOR_SUB(SAML_DLLLOCAL,ArtifactResolutionService,IndexedEndpointType);
@@ -172,7 +172,7 @@ namespace opensaml {
         END_XMLOBJECTVALIDATOR;
 
         BEGIN_XMLOBJECTVALIDATOR(SAML_DLLLOCAL,AttributeConsumingService);
-            XMLOBJECTVALIDATOR_REQUIRE(AttributeConsumingService,Index);
+            XMLOBJECTVALIDATOR_REQUIRE_INTEGER(AttributeConsumingService,Index);
             XMLOBJECTVALIDATOR_NONEMPTY(AttributeConsumingService,ServiceName);
             XMLOBJECTVALIDATOR_NONEMPTY(AttributeConsumingService,RequestedAttribute);
         END_XMLOBJECTVALIDATOR;
@@ -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);