Moved signature classes into own namespace.
[shibboleth/cpp-xmltooling.git] / xmltooling / XMLToolingConfig.cpp
index 3cfbe79..6cd8826 100644 (file)
  * Library configuration 
  */
 
-#include "internal.h"
-
-#define XMLTOOLING_DEFINE_CONSTANTS
-#include <xercesc/util/XMLUniDefs.hpp>
+#define XMLTOOLING_DECLARE_VALIDATORS
 
+#include "internal.h"
 #include "exceptions.h"
 #include "XMLToolingConfig.h"
 #include "impl/UnknownElement.h"
-#include "signature/impl/KeyInfoImpl.h"
-#include "signature/impl/XMLSecSignatureImpl.h"
+#include "signature/KeyInfo.h"
+#include "signature/Signature.h"
 #include "util/NDC.h"
 #include "util/XMLConstants.h"
 #include "validation/Validator.h"
 
 #include <stdexcept>
 
-using namespace log4cpp;
+using namespace xmlsignature;
 using namespace xmltooling;
+using namespace log4cpp;
 using namespace std;
 
+#define REGISTER_ELEMENT(namespaceURI,cname) \
+    q=QName(namespaceURI,cname::LOCAL_NAME); \
+    XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \
+    Validator::registerValidator(q,new cname##SchemaValidator())
+    
+#define REGISTER_TYPE(namespaceURI,cname) \
+    q=QName(namespaceURI,cname::TYPE_NAME); \
+    XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \
+    Validator::registerValidator(q,new cname##SchemaValidator())
+
+
 DECL_EXCEPTION_FACTORY(XMLParserException);
 DECL_EXCEPTION_FACTORY(XMLObjectException);
 DECL_EXCEPTION_FACTORY(MarshallingException);
@@ -158,23 +168,34 @@ bool XMLToolingInternalConfig::init()
         // default registrations
         XMLObjectBuilder::registerDefaultBuilder(new UnknownElementBuilder());
         
-        QName q(XMLConstants::XMLSIG_NS,KeyInfo::LOCAL_NAME);
-        XMLObjectBuilder::registerBuilder(q,new KeyInfoBuilderImpl());
-        Validator::registerValidator(q,new KeyInfoSchemaValidator());
-        q=QName(XMLConstants::XMLSIG_NS,KeyInfo::TYPE_NAME);
-        XMLObjectBuilder::registerBuilder(q,new KeyInfoBuilderImpl());
-        Validator::registerValidator(q,new KeyInfoSchemaValidator());
-
-        q=QName(XMLConstants::XMLSIG_NS,KeyName::LOCAL_NAME);
-        XMLObjectBuilder::registerBuilder(q,new KeyNameBuilderImpl());
-        Validator::registerValidator(q,new KeyNameSchemaValidator());
-
-        q=QName(XMLConstants::XMLSIG_NS,MgmtData::LOCAL_NAME);
-        XMLObjectBuilder::registerBuilder(q,new MgmtDataBuilderImpl());
-        Validator::registerValidator(q,new MgmtDataSchemaValidator());
+        QName q;
+        REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,KeyInfo);
+        REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,KeyName);
+        REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,KeyValue);
+        REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,MgmtData);
+        REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,DSAKeyValue);
+        REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,RSAKeyValue);
+        REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,Exponent);
+        REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,Modulus);
+        REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,P);
+        REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,Q);
+        REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,G);
+        REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,Y);
+        REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,J);
+        REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,Seed);
+        REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,PgenCounter);
+        REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,XPath);
+        REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,Transform);
+        REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,Transforms);
+        REGISTER_TYPE(XMLConstants::XMLSIG_NS,KeyInfo);
+        REGISTER_TYPE(XMLConstants::XMLSIG_NS,KeyValue);
+        REGISTER_TYPE(XMLConstants::XMLSIG_NS,DSAKeyValue);
+        REGISTER_TYPE(XMLConstants::XMLSIG_NS,RSAKeyValue);
+        REGISTER_TYPE(XMLConstants::XMLSIG_NS,Transform);
+        REGISTER_TYPE(XMLConstants::XMLSIG_NS,Transforms);
 
 #ifndef XMLTOOLING_NO_XMLSEC
-        XMLObjectBuilder::registerBuilder(QName(XMLConstants::XMLSIG_NS,Signature::LOCAL_NAME),new XMLSecSignatureBuilder());
+        XMLObjectBuilder::registerBuilder(QName(XMLConstants::XMLSIG_NS,Signature::LOCAL_NAME),new SignatureBuilder());
 #endif
 
         REGISTER_EXCEPTION_FACTORY(XMLParserException);