Merge schema validators into one suite.
authorScott Cantor <cantor.2@osu.edu>
Fri, 29 Sep 2006 20:58:52 +0000 (20:58 +0000)
committerScott Cantor <cantor.2@osu.edu>
Fri, 29 Sep 2006 20:58:52 +0000 (20:58 +0000)
xmltooling/XMLToolingConfig.cpp
xmltooling/encryption/Encryption.h
xmltooling/encryption/impl/EncryptionSchemaValidators.cpp
xmltooling/signature/KeyInfo.h
xmltooling/signature/impl/InlineKeyResolver.cpp
xmltooling/signature/impl/KeyInfoSchemaValidators.cpp
xmltooling/soap/SOAP.h
xmltooling/soap/impl/SOAPSchemaValidators.cpp
xmltooling/validation/ValidatorSuite.cpp
xmltooling/validation/ValidatorSuite.h
xmltoolingtest/KeyInfoTest.h

index f8e7f3b..5427e6f 100644 (file)
@@ -222,9 +222,8 @@ bool XMLToolingInternalConfig::init()
 
 void XMLToolingInternalConfig::term()
 {
+    SchemaValidators.destroyValidators();
     XMLObjectBuilder::destroyBuilders();
-    KeyInfoSchemaValidators.destroyValidators();
-    EncryptionSchemaValidators.destroyValidators();
     XMLToolingException::deregisterFactories();
     AttributeExtensibleXMLObject::deregisterIDAttributes();
 
index e5eda15..b6d5fc6 100644 (file)
@@ -149,11 +149,6 @@ namespace xmlencryption {
      * Registers builders and validators for XML Encryption classes into the runtime.
      */
     void XMLTOOL_API registerEncryptionClasses();
-
-    /**
-     * Validator suite for XML Encryption schema validation.
-     */
-    extern XMLTOOL_API xmltooling::ValidatorSuite EncryptionSchemaValidators;
 };
 
 #endif /* __xmltooling_encryption_h__ */
index 1abf065..0ee9467 100644 (file)
@@ -111,14 +111,12 @@ namespace xmlencryption {
 #define REGISTER_ELEMENT(namespaceURI,cname) \
     q=QName(namespaceURI,cname::LOCAL_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \
-    EncryptionSchemaValidators.registerValidator(q,new cname##SchemaValidator())
+    SchemaValidators.registerValidator(q,new cname##SchemaValidator())
     
 #define REGISTER_TYPE(namespaceURI,cname) \
     q=QName(namespaceURI,cname::TYPE_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \
-    EncryptionSchemaValidators.registerValidator(q,new cname##SchemaValidator())
-
-ValidatorSuite xmlencryption::EncryptionSchemaValidators("EncryptionSchemaValidators");
+    SchemaValidators.registerValidator(q,new cname##SchemaValidator())
 
 void xmlencryption::registerEncryptionClasses()
 {
index e8fc826..e5ffe32 100644 (file)
@@ -194,10 +194,6 @@ namespace xmlsignature {
      */
     void XMLTOOL_API registerKeyInfoClasses();
 
-    /**
-     * Validator suite for KeyInfo schema validation.
-     */
-    extern XMLTOOL_API xmltooling::ValidatorSuite KeyInfoSchemaValidators;
 };
 
 #endif /* __xmltooling_keyinfo_h__ */
index 5e8eff3..a31908e 100644 (file)
@@ -157,7 +157,7 @@ XSECCryptoKey* InlineKeyResolver::_resolveKey(const KeyInfo* keyInfo) const
     const vector<KeyValue*>& keyValues = keyInfo->getKeyValues();\r
     for (vector<KeyValue*>::const_iterator i=keyValues.begin(); i!=keyValues.end(); ++i) {\r
         try {\r
-            KeyInfoSchemaValidators.validate(*i);    // see if it's a "valid" key\r
+            SchemaValidators.validate(*i);    // see if it's a "valid" key\r
             RSAKeyValue* rsakv = (*i)->getRSAKeyValue();\r
             if (rsakv) {\r
                 log.debug("resolving ds:RSAKeyValue");\r
index 44d6635..7a22689 100644 (file)
@@ -124,14 +124,12 @@ namespace xmlsignature {
 #define REGISTER_ELEMENT(namespaceURI,cname) \
     q=QName(namespaceURI,cname::LOCAL_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \
-    KeyInfoSchemaValidators.registerValidator(q,new cname##SchemaValidator())
+    SchemaValidators.registerValidator(q,new cname##SchemaValidator())
     
 #define REGISTER_TYPE(namespaceURI,cname) \
     q=QName(namespaceURI,cname::TYPE_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \
-    KeyInfoSchemaValidators.registerValidator(q,new cname##SchemaValidator())
-
-ValidatorSuite xmlsignature::KeyInfoSchemaValidators("KeyInfoSchemaValidators");
+    SchemaValidators.registerValidator(q,new cname##SchemaValidator())
 
 void xmlsignature::registerKeyInfoClasses()
 {
index 8baa83e..1c953b1 100644 (file)
@@ -97,11 +97,6 @@ namespace soap11 {
      * Registers builders and validators for SOAP 1.1 classes into the runtime.
      */
     void XMLTOOL_API registerSOAPClasses();
-
-    /**
-     * Validator suite for SOAP 1.1 schema validation.
-     */
-    extern XMLTOOL_API xmltooling::ValidatorSuite SOAPSchemaValidators;
 };
 
 #endif /* __xmltooling_soap_h__ */
index bd4f71e..88bd5ed 100644 (file)
@@ -51,12 +51,12 @@ namespace {
 #define REGISTER_ELEMENT(namespaceURI,cname) \
     q=QName(namespaceURI,cname::LOCAL_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \
-    SOAPSchemaValidators.registerValidator(q,new cname##SchemaValidator())
+    SchemaValidators.registerValidator(q,new cname##SchemaValidator())
     
 #define REGISTER_TYPE(namespaceURI,cname) \
     q=QName(namespaceURI,cname::TYPE_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \
-    SOAPSchemaValidators.registerValidator(q,new cname##SchemaValidator())
+    SchemaValidators.registerValidator(q,new cname##SchemaValidator())
 
 #define REGISTER_ELEMENT_NOVAL(namespaceURI,cname) \
     q=QName(namespaceURI,cname::LOCAL_NAME); \
@@ -66,8 +66,6 @@ namespace {
     q=QName(namespaceURI,cname::TYPE_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder());
 
-ValidatorSuite soap11::SOAPSchemaValidators("SOAPSchemaValidators");
-
 void soap11::registerSOAPClasses()
 {
     QName q;
index 1ff5a29..447bee0 100644 (file)
@@ -27,6 +27,8 @@
 using namespace xmltooling;\r
 using namespace std;\r
 \r
+ValidatorSuite xmltooling::SchemaValidators("SchemaValidators");\r
+\r
 namespace {\r
     class XMLTOOL_DLLLOCAL _clearvector {\r
     public:\r
index 6049966..3ded490 100644 (file)
@@ -106,6 +106,15 @@ namespace xmltooling {
         std::map< QName, std::vector<Validator*> > m_map;\r
     };\r
 \r
+    /**\r
+     * Validator suite for schema-style structural validation.\r
+     * \r
+     * This is <strong>NOT</strong> a comprehensive replacement for real\r
+     * schema validation, but it does basic structural checking of overall\r
+     * element relationships and some basic attribute presence checking.\r
+     */\r
+    extern XMLTOOL_API xmltooling::ValidatorSuite SchemaValidators;\r
+    \r
 };\r
 \r
 #if defined (_MSC_VER)\r
index 64fb6c7..5086243 100644 (file)
@@ -54,7 +54,7 @@ public:
         auto_ptr_XMLCh expected("Public Key for CN=xmldap.org, OU=Domain Control Validated, O=xmldap.org");\r
         TSM_ASSERT("KeyName was not expected value", XMLString::equals(expected.get(), kiObject->getKeyNames().front()->getName()));\r
 \r
-        KeyInfoSchemaValidators.validate(kiObject.get());\r
+        SchemaValidators.validate(kiObject.get());\r
     }\r
 \r
     void testKeyInfo2() {\r
@@ -75,7 +75,7 @@ public:
         TSM_ASSERT_EQUALS("Number of child elements was not expected value",\r
             2, kiObject->getSPKIDatas().front()->getSPKISexps().size());\r
 \r
-        KeyInfoSchemaValidators.validate(kiObject.get());\r
+        SchemaValidators.validate(kiObject.get());\r
     }\r
 \r
     void testKeyInfo3() {\r
@@ -89,6 +89,6 @@ public:
 \r
         auto_ptr<KeyInfo> kiObject(dynamic_cast<KeyInfo*>(b->buildFromDocument(doc)));\r
         TS_ASSERT(kiObject.get()!=NULL);\r
-        TS_ASSERT_THROWS(KeyInfoSchemaValidators.validate(kiObject.get()),ValidationException);\r
+        TS_ASSERT_THROWS(SchemaValidators.validate(kiObject.get()),ValidationException);\r
     }\r
 };\r