Removed ValidatingXMLObject interface and implementations.
authorScott Cantor <cantor.2@osu.edu>
Wed, 12 Jul 2006 01:13:18 +0000 (01:13 +0000)
committerScott Cantor <cantor.2@osu.edu>
Wed, 12 Jul 2006 01:13:18 +0000 (01:13 +0000)
15 files changed:
xmltooling/Makefile.am
xmltooling/base.h
xmltooling/encryption/impl/EncryptionImpl.cpp
xmltooling/signature/KeyInfo.h
xmltooling/signature/Signature.h
xmltooling/signature/SignatureValidator.h
xmltooling/signature/impl/KeyInfoImpl.cpp
xmltooling/signature/impl/XMLSecSignatureImpl.cpp
xmltooling/validation/AbstractValidatingXMLObject.cpp [deleted file]
xmltooling/validation/AbstractValidatingXMLObject.h [deleted file]
xmltooling/validation/ValidatingXMLObject.h [deleted file]
xmltooling/validation/Validator.h
xmltooling/xmltooling.vcproj
xmltoolingtest/SignatureTest.h
xmltoolingtest/data/ComplexXMLObject.xml

index ed8c919..71dd110 100644 (file)
@@ -71,8 +71,6 @@ utilinclude_HEADERS = \
        util/XMLObjectChildrenList.h
 
 valinclude_HEADERS = \
-       validation/AbstractValidatingXMLObject.h \
-       validation/ValidatingXMLObject.h \
        validation/Validator.h \
        validation/ValidatorSuite.h
 
@@ -120,7 +118,6 @@ libxmltooling_la_SOURCES = \
        util/ParserPool.cpp \
        util/XMLConstants.cpp \
        util/XMLHelper.cpp \
-       validation/AbstractValidatingXMLObject.cpp \
        validation/ValidatorSuite.cpp \
        ${xmlsec_sources} \
        $(thread_sources)
index 4f9ec8f..bc24a43 100644 (file)
  */
 #define BEGIN_XMLOBJECT(linkage,cname,base,desc) \
     XMLTOOLING_DOXYGEN(desc) \
-    class linkage cname : public virtual base, public virtual xmltooling::ValidatingXMLObject { \
+    class linkage cname : public virtual base { \
     protected: \
         cname() {} \
     public: \
  */
 #define BEGIN_XMLOBJECT2(linkage,cname,base,base2,desc) \
     XMLTOOLING_DOXYGEN(desc) \
-    class linkage cname : public virtual base, public virtual base2, public virtual xmltooling::ValidatingXMLObject { \
+    class linkage cname : public virtual base, public virtual base2 { \
     protected: \
         cname() {} \
     public: \
  */
 #define BEGIN_XMLOBJECT3(linkage,cname,base,base2,base3,desc) \
     XMLTOOLING_DOXYGEN(desc) \
-    class linkage cname : public virtual base, public virtual base2, public virtual base3, \
-        public virtual xmltooling::ValidatingXMLObject { \
+    class linkage cname : public virtual base, public virtual base2, public virtual base3 { \
     protected: \
         cname() {} \
     public: \
  */
 #define BEGIN_XMLOBJECT4(linkage,cname,base,base2,base3,base4,desc) \
     XMLTOOLING_DOXYGEN(desc) \
-    class linkage cname : public virtual base, public virtual base2, public virtual base3, \
-        public virtual base4, public virtual xmltooling::ValidatingXMLObject { \
+    class linkage cname : public virtual base, public virtual base2, public virtual base3, public virtual base4 { \
     protected: \
         cname() {} \
     public: \
             public xmltooling::AbstractSimpleElement, \
             public xmltooling::AbstractChildlessElement, \
             public xmltooling::AbstractDOMCachingXMLObject, \
-            public xmltooling::AbstractValidatingXMLObject, \
             public xmltooling::AbstractXMLObjectMarshaller, \
             public xmltooling::AbstractXMLObjectUnmarshaller \
     { \
         cname##Impl(const cname##Impl& src) \
             : xmltooling::AbstractXMLObject(src), \
                 xmltooling::AbstractSimpleElement(src), \
-                xmltooling::AbstractDOMCachingXMLObject(src), \
-                xmltooling::AbstractValidatingXMLObject(src) {} \
+                xmltooling::AbstractDOMCachingXMLObject(src) {} \
         IMPL_XMLOBJECT_CLONE(cname) \
         IMPL_XMLOBJECT_CONTENT \
     }
     { \
     public: \
         virtual ~cname##SchemaValidator() {} \
-        virtual cname##SchemaValidator* clone() const { \
-            return new cname##SchemaValidator(); \
-        } \
         virtual void validate(const xmltooling::XMLObject* xmlObject) const { \
             const cname* ptr=dynamic_cast<const cname*>(xmlObject); \
             if (!ptr) \
     { \
     public: \
         virtual ~cname##SchemaValidator() {} \
-        virtual cname##SchemaValidator* clone() const { \
-            return new cname##SchemaValidator(); \
-        } \
         virtual void validate(const xmltooling::XMLObject* xmlObject) const { \
             const cname* ptr=dynamic_cast<const cname*>(xmlObject); \
             if (!ptr) \
index 39030a8..d1256be 100644 (file)
@@ -29,7 +29,6 @@
 #include "io/AbstractXMLObjectMarshaller.h"
 #include "io/AbstractXMLObjectUnmarshaller.h"
 #include "util/XMLHelper.h"
-#include "validation/AbstractValidatingXMLObject.h"
 
 #include <xercesc/util/XMLUniDefs.hpp>
 
@@ -52,7 +51,6 @@ namespace xmlencryption {
     class XMLTOOL_DLLLOCAL EncryptionMethodImpl : public virtual EncryptionMethod,
         public AbstractComplexElement,
         public AbstractDOMCachingXMLObject,
-        public AbstractValidatingXMLObject,
         public AbstractXMLObjectMarshaller,
         public AbstractXMLObjectUnmarshaller
     {
@@ -76,8 +74,7 @@ namespace xmlencryption {
             init();
         }
             
-        EncryptionMethodImpl(const EncryptionMethodImpl& src)
-                : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) {
+        EncryptionMethodImpl(const EncryptionMethodImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
             init();
             setAlgorithm(src.getAlgorithm());
             if (src.getKeySize())
@@ -126,7 +123,6 @@ namespace xmlencryption {
     class XMLTOOL_DLLLOCAL TransformsImpl : public virtual Transforms,
         public AbstractComplexElement,
         public AbstractDOMCachingXMLObject,
-        public AbstractValidatingXMLObject,
         public AbstractXMLObjectMarshaller,
         public AbstractXMLObjectUnmarshaller
     {
@@ -137,8 +133,7 @@ namespace xmlencryption {
             : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
         }
             
-        TransformsImpl(const TransformsImpl& src)
-                : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) {
+        TransformsImpl(const TransformsImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
             VectorOf(xmlsignature::Transform) v=getTransforms();
             for (vector<xmlsignature::Transform*>::const_iterator i=src.m_Transforms.begin(); i!=src.m_Transforms.end(); i++) {
                 if (*i) {
@@ -160,7 +155,6 @@ namespace xmlencryption {
     class XMLTOOL_DLLLOCAL CipherReferenceImpl : public virtual CipherReference,
         public AbstractComplexElement,
         public AbstractDOMCachingXMLObject,
-        public AbstractValidatingXMLObject,
         public AbstractXMLObjectMarshaller,
         public AbstractXMLObjectUnmarshaller
     {
@@ -180,8 +174,7 @@ namespace xmlencryption {
             init();
         }
             
-        CipherReferenceImpl(const CipherReferenceImpl& src)
-                : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) {
+        CipherReferenceImpl(const CipherReferenceImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
             init();
             setURI(src.getURI());
             if (src.getTransforms())
@@ -211,7 +204,6 @@ namespace xmlencryption {
     class XMLTOOL_DLLLOCAL CipherDataImpl : public virtual CipherData,
         public AbstractComplexElement,
         public AbstractDOMCachingXMLObject,
-        public AbstractValidatingXMLObject,
         public AbstractXMLObjectMarshaller,
         public AbstractXMLObjectUnmarshaller
     {
@@ -232,8 +224,7 @@ namespace xmlencryption {
             init();
         }
             
-        CipherDataImpl(const CipherDataImpl& src)
-                : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) {
+        CipherDataImpl(const CipherDataImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
             init();
             if (src.getCipherValue())
                 setCipherValue(src.getCipherValue()->cloneCipherValue());
@@ -257,7 +248,6 @@ namespace xmlencryption {
         public AbstractElementProxy,
         public AbstractAttributeExtensibleXMLObject,
         public AbstractDOMCachingXMLObject,
-        public AbstractValidatingXMLObject,
         public AbstractXMLObjectMarshaller,
         public AbstractXMLObjectUnmarshaller
     {
@@ -279,8 +269,7 @@ namespace xmlencryption {
                 : AbstractXMLObject(src),
                     AbstractElementProxy(src),
                     AbstractAttributeExtensibleXMLObject(src),
-                    AbstractDOMCachingXMLObject(src),
-                    AbstractValidatingXMLObject(src) {
+                    AbstractDOMCachingXMLObject(src) {
             init();
             setId(src.getId());
             setTarget(src.getTarget());
@@ -338,7 +327,6 @@ namespace xmlencryption {
     class XMLTOOL_DLLLOCAL EncryptionPropertiesImpl : public virtual EncryptionProperties,
         public AbstractComplexElement,
         public AbstractDOMCachingXMLObject,
-        public AbstractValidatingXMLObject,
         public AbstractXMLObjectMarshaller,
         public AbstractXMLObjectUnmarshaller
     {
@@ -355,10 +343,7 @@ namespace xmlencryption {
             init();
         }
             
-        EncryptionPropertiesImpl(const EncryptionPropertiesImpl& src)
-                : AbstractXMLObject(src),
-                    AbstractDOMCachingXMLObject(src),
-                    AbstractValidatingXMLObject(src) {
+        EncryptionPropertiesImpl(const EncryptionPropertiesImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
             init();
             setId(src.getId());
             VectorOf(EncryptionProperty) v=getEncryptionPropertys();
@@ -392,7 +377,6 @@ namespace xmlencryption {
     class XMLTOOL_DLLLOCAL ReferenceTypeImpl : public virtual ReferenceType,
         public AbstractElementProxy,
         public AbstractDOMCachingXMLObject,
-        public AbstractValidatingXMLObject,
         public AbstractXMLObjectMarshaller,
         public AbstractXMLObjectUnmarshaller
     {
@@ -416,10 +400,7 @@ namespace xmlencryption {
         }
             
         ReferenceTypeImpl(const ReferenceTypeImpl& src)
-                : AbstractXMLObject(src),
-                    AbstractElementProxy(src),
-                    AbstractDOMCachingXMLObject(src),
-                    AbstractValidatingXMLObject(src) {
+                : AbstractXMLObject(src), AbstractElementProxy(src), AbstractDOMCachingXMLObject(src) {
             init();
             setURI(src.getURI());
             for (list<XMLObject*>::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) {
@@ -482,7 +463,6 @@ namespace xmlencryption {
     class XMLTOOL_DLLLOCAL ReferenceListImpl : public virtual ReferenceList,
         public AbstractComplexElement,
         public AbstractDOMCachingXMLObject,
-        public AbstractValidatingXMLObject,
         public AbstractXMLObjectMarshaller,
         public AbstractXMLObjectUnmarshaller
     {
@@ -493,8 +473,7 @@ namespace xmlencryption {
             : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
         }
             
-        ReferenceListImpl(const ReferenceListImpl& src)
-                : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) {
+        ReferenceListImpl(const ReferenceListImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
             for (list<XMLObject*>::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) {
                 if (*i) {
                     DataReference* data=dynamic_cast<DataReference*>(*i);
@@ -527,7 +506,6 @@ namespace xmlencryption {
     class XMLTOOL_DLLLOCAL EncryptedTypeImpl : public virtual EncryptedType,
         public AbstractComplexElement,
         public AbstractDOMCachingXMLObject,
-        public AbstractValidatingXMLObject,
         public AbstractXMLObjectMarshaller,
         public AbstractXMLObjectUnmarshaller
     {
@@ -567,8 +545,7 @@ namespace xmlencryption {
             init();
         }
             
-        EncryptedTypeImpl(const EncryptedTypeImpl& src)
-                : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) {
+        EncryptedTypeImpl(const EncryptedTypeImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
             init();
             setId(src.getId());
             setType(src.getType());
index 8c6bc96..e8fc826 100644 (file)
@@ -28,7 +28,6 @@
 #include <xmltooling/SimpleElement.h>
 #include <xmltooling/XMLObjectBuilder.h>
 #include <xmltooling/util/XMLConstants.h>
-#include <xmltooling/validation/ValidatingXMLObject.h>
 #include <xmltooling/validation/ValidatorSuite.h>
 
 #define DECL_XMLSIGOBJECTBUILDER(cname) \
index 02c4267..5afd95f 100644 (file)
@@ -27,7 +27,6 @@
 #include <xmltooling/XMLObjectBuilder.h>\r
 #include <xmltooling/signature/KeyInfo.h>\r
 #include <xmltooling/signature/ContentReference.h>\r
-#include <xmltooling/validation/ValidatingXMLObject.h>\r
 #include <xmltooling/util/XMLConstants.h>\r
 \r
 #include <xsec/dsig/DSIGSignature.hpp>\r
@@ -43,7 +42,7 @@ namespace xmlsignature {
      * The default signature settings include Exclusive c14n w/o comments, SHA-1 digests,\r
      * and RSA-SHA1 signing. \r
      */\r
-    class XMLTOOL_API Signature : public virtual xmltooling::ValidatingXMLObject\r
+    class XMLTOOL_API Signature : public virtual xmltooling::XMLObject\r
     {\r
     public:\r
         virtual ~Signature() {}\r
index 4dc362a..16dd084 100644 (file)
@@ -51,10 +51,6 @@ namespace xmlsignature {
 \r
         virtual void validate(const Signature* signature) const;\r
         \r
-        SignatureValidator* clone() const {\r
-            return new SignatureValidator(*this);\r
-        }\r
-\r
         /**\r
          * Replace the current KeyResolver, if any, with a new one.\r
          * \r
@@ -66,10 +62,6 @@ namespace xmlsignature {
         }\r
     \r
     protected:\r
-        SignatureValidator(const SignatureValidator& src) {\r
-            m_resolver=src.m_resolver ? src.m_resolver->clone() : NULL;\r
-        }\r
-\r
         KeyResolver* m_resolver;\r
     };\r
 \r
index 3745cd0..9a92069 100644 (file)
@@ -30,7 +30,6 @@
 #include "io/AbstractXMLObjectUnmarshaller.h"
 #include "signature/KeyInfo.h"
 #include "util/XMLHelper.h"
-#include "validation/AbstractValidatingXMLObject.h"
 
 #include <xercesc/util/XMLUniDefs.hpp>
 
@@ -48,7 +47,6 @@ namespace xmlsignature {
     class XMLTOOL_DLLLOCAL DSAKeyValueImpl : public virtual DSAKeyValue,
         public AbstractComplexElement,
         public AbstractDOMCachingXMLObject,
-        public AbstractValidatingXMLObject,
         public AbstractXMLObjectMarshaller,
         public AbstractXMLObjectUnmarshaller
     {
@@ -60,8 +58,7 @@ namespace xmlsignature {
             init();
         }
             
-        DSAKeyValueImpl(const DSAKeyValueImpl& src)
-                : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) {
+        DSAKeyValueImpl(const DSAKeyValueImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
             init();
             if (src.getP())
                 setP(src.getP()->cloneP());
@@ -134,7 +131,6 @@ namespace xmlsignature {
     class XMLTOOL_DLLLOCAL RSAKeyValueImpl : public virtual RSAKeyValue,
         public AbstractComplexElement,
         public AbstractDOMCachingXMLObject,
-        public AbstractValidatingXMLObject,
         public AbstractXMLObjectMarshaller,
         public AbstractXMLObjectUnmarshaller
     {
@@ -146,8 +142,7 @@ namespace xmlsignature {
             init();
         }
             
-        RSAKeyValueImpl(const RSAKeyValueImpl& src)
-                : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) {
+        RSAKeyValueImpl(const RSAKeyValueImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
             init();
             if (src.getModulus())
                 setModulus(src.getModulus()->cloneModulus());
@@ -181,7 +176,6 @@ namespace xmlsignature {
         public AbstractSimpleElement,
         public AbstractComplexElement,
         public AbstractDOMCachingXMLObject,
-        public AbstractValidatingXMLObject,
         public AbstractXMLObjectMarshaller,
         public AbstractXMLObjectUnmarshaller
     {
@@ -194,8 +188,7 @@ namespace xmlsignature {
         }
             
         KeyValueImpl(const KeyValueImpl& src)
-                : AbstractXMLObject(src), AbstractSimpleElement(src),
-                    AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) {
+                : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) {
             init();
             if (src.getDSAKeyValue())
                 setDSAKeyValue(src.getDSAKeyValue()->cloneDSAKeyValue());
@@ -244,7 +237,6 @@ namespace xmlsignature {
     class XMLTOOL_DLLLOCAL TransformImpl : public virtual Transform,
         public AbstractDOMCachingXMLObject,
         public AbstractElementProxy,
-        public AbstractValidatingXMLObject,
         public AbstractXMLObjectMarshaller,
         public AbstractXMLObjectUnmarshaller
     {
@@ -259,7 +251,7 @@ namespace xmlsignature {
             
         TransformImpl(const TransformImpl& src)
                 : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractElementProxy(src),
-                    AbstractValidatingXMLObject(src), m_Algorithm(XMLString::replicate(src.m_Algorithm)) {
+                    m_Algorithm(XMLString::replicate(src.m_Algorithm)) {
             for (list<XMLObject*>::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) {
                 if (*i) {
                     XPath* x=dynamic_cast<XPath*>(*i);
@@ -304,7 +296,6 @@ namespace xmlsignature {
     class XMLTOOL_DLLLOCAL TransformsImpl : public virtual Transforms,
         public AbstractComplexElement,
         public AbstractDOMCachingXMLObject,
-        public AbstractValidatingXMLObject,
         public AbstractXMLObjectMarshaller,
         public AbstractXMLObjectUnmarshaller
     {
@@ -315,8 +306,7 @@ namespace xmlsignature {
             : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
         }
             
-        TransformsImpl(const TransformsImpl& src)
-                : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) {
+        TransformsImpl(const TransformsImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
             VectorOf(Transform) v=getTransforms();
             for (vector<Transform*>::const_iterator i=src.m_Transforms.begin(); i!=src.m_Transforms.end(); i++) {
                 if (*i) {
@@ -338,7 +328,6 @@ namespace xmlsignature {
     class XMLTOOL_DLLLOCAL RetrievalMethodImpl : public virtual RetrievalMethod,
         public AbstractComplexElement,
         public AbstractDOMCachingXMLObject,
-        public AbstractValidatingXMLObject,
         public AbstractXMLObjectMarshaller,
         public AbstractXMLObjectUnmarshaller
     {
@@ -353,8 +342,7 @@ namespace xmlsignature {
             init();
         }
             
-        RetrievalMethodImpl(const RetrievalMethodImpl& src)
-                : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) {
+        RetrievalMethodImpl(const RetrievalMethodImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
             init();
             setURI(getURI());
             setType(getType());
@@ -395,7 +383,6 @@ namespace xmlsignature {
     class XMLTOOL_DLLLOCAL X509IssuerSerialImpl : public virtual X509IssuerSerial,
         public AbstractComplexElement,
         public AbstractDOMCachingXMLObject,
-        public AbstractValidatingXMLObject,
         public AbstractXMLObjectMarshaller,
         public AbstractXMLObjectUnmarshaller
     {
@@ -407,8 +394,7 @@ namespace xmlsignature {
             init();
         }
             
-        X509IssuerSerialImpl(const X509IssuerSerialImpl& src)
-                : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) {
+        X509IssuerSerialImpl(const X509IssuerSerialImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
             init();
             if (src.getX509IssuerName())
                 setX509IssuerName(src.getX509IssuerName()->cloneX509IssuerName());
@@ -441,7 +427,6 @@ namespace xmlsignature {
     class XMLTOOL_DLLLOCAL X509DataImpl : public virtual X509Data,
         public AbstractComplexElement,
         public AbstractDOMCachingXMLObject,
-        public AbstractValidatingXMLObject,
         public AbstractXMLObjectMarshaller,
         public AbstractXMLObjectUnmarshaller
     {
@@ -452,8 +437,7 @@ namespace xmlsignature {
             : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
         }
             
-        X509DataImpl(const X509DataImpl& src)
-                : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) {
+        X509DataImpl(const X509DataImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
             for (list<XMLObject*>::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) {
                 if (*i) {
                     X509Certificate* xcert=dynamic_cast<X509Certificate*>(*i);
@@ -521,7 +505,6 @@ namespace xmlsignature {
     class XMLTOOL_DLLLOCAL SPKIDataImpl : public virtual SPKIData,
         public AbstractComplexElement,
         public AbstractDOMCachingXMLObject,
-        public AbstractValidatingXMLObject,
         public AbstractXMLObjectMarshaller,
         public AbstractXMLObjectUnmarshaller
     {
@@ -532,8 +515,7 @@ namespace xmlsignature {
             : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
         }
             
-        SPKIDataImpl(const SPKIDataImpl& src)
-                : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) {
+        SPKIDataImpl(const SPKIDataImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
             VectorOfPairs(SPKISexp,XMLObject) v=getSPKISexps();
             for (vector< pair<SPKISexp*,XMLObject*> >::const_iterator i=src.m_SPKISexps.begin(); i!=src.m_SPKISexps.end(); i++) {
                 if (i->first) {
@@ -586,7 +568,6 @@ namespace xmlsignature {
     class XMLTOOL_DLLLOCAL PGPDataImpl : public virtual PGPData,
         public AbstractComplexElement,
         public AbstractDOMCachingXMLObject,
-        public AbstractValidatingXMLObject,
         public AbstractXMLObjectMarshaller,
         public AbstractXMLObjectUnmarshaller
     {
@@ -598,8 +579,7 @@ namespace xmlsignature {
             init();
         }
             
-        PGPDataImpl(const PGPDataImpl& src)
-                : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src), AbstractValidatingXMLObject(src) {
+        PGPDataImpl(const PGPDataImpl& src) : AbstractXMLObject(src), AbstractDOMCachingXMLObject(src) {
             init();
             if (src.getPGPKeyID())
                 setPGPKeyID(src.getPGPKeyID()->clonePGPKeyID());
@@ -648,7 +628,6 @@ namespace xmlsignature {
         public AbstractComplexElement,
         public AbstractSimpleElement,
         public AbstractDOMCachingXMLObject,
-        public AbstractValidatingXMLObject,
         public AbstractXMLObjectMarshaller,
         public AbstractXMLObjectUnmarshaller
     {
@@ -662,10 +641,7 @@ namespace xmlsignature {
         }
             
         KeyInfoImpl(const KeyInfoImpl& src)
-                : AbstractXMLObject(src),
-                    AbstractSimpleElement(src),
-                    AbstractDOMCachingXMLObject(src),
-                    AbstractValidatingXMLObject(src),
+                : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src),
                     m_Id(XMLString::replicate(src.m_Id)) {
 
             for (list<XMLObject*>::const_iterator i=src.m_children.begin(); i!=src.m_children.end(); i++) {
index 292d771..2082939 100644 (file)
@@ -27,7 +27,6 @@
 #include "util/NDC.h"\r
 #include "util/XMLConstants.h"\r
 #include "util/XMLHelper.h"\r
-#include "validation/ValidatingXMLObject.h"\r
 \r
 #include <log4cpp/Category.hh>\r
 #include <xercesc/framework/MemBufInputSource.hpp>\r
@@ -49,8 +48,7 @@ using namespace std;
 \r
 namespace xmlsignature {\r
     \r
-    class XMLTOOL_DLLLOCAL XMLSecSignatureImpl\r
-        : public UnknownElementImpl, public virtual Signature, public virtual ValidatingXMLObject\r
+    class XMLTOOL_DLLLOCAL XMLSecSignatureImpl : public UnknownElementImpl, public virtual Signature\r
     {\r
     public:\r
         XMLSecSignatureImpl() : UnknownElementImpl(XMLConstants::XMLSIG_NS, Signature::LOCAL_NAME, XMLConstants::XMLSIG_PREFIX),\r
@@ -100,11 +98,6 @@ namespace xmlsignature {
         \r
         void sign();\r
 \r
-        void registerValidator(Validator* validator);\r
-        void deregisterValidator(Validator* validator);\r
-        void deregisterAll();\r
-        void validate(bool validateDescendants) const;\r
-\r
     private:\r
         mutable DSIGSignature* m_signature;\r
         XMLCh* m_c14n;\r
@@ -112,7 +105,6 @@ namespace xmlsignature {
         XSECCryptoKey* m_key;\r
         KeyInfo* m_keyInfo;\r
         ContentReference* m_reference;\r
-        vector<Validator*> m_validators;\r
     };\r
     \r
 };\r
@@ -132,7 +124,6 @@ XMLSecSignatureImpl::~XMLSecSignatureImpl()
     delete m_key;\r
     delete m_keyInfo;\r
     delete m_reference;\r
-    for_each(m_validators.begin(),m_validators.end(),cleanup<Validator>());\r
 }\r
 \r
 void XMLSecSignatureImpl::releaseDOM() const\r
@@ -165,8 +156,6 @@ Signature* XMLSecSignatureImpl::cloneSignature() const
     if (m_keyInfo)\r
         ret->m_keyInfo=m_keyInfo->cloneKeyInfo();\r
 \r
-    xmltooling::clone(m_validators,ret->m_validators);\r
-\r
     // If there's no XML locally, serialize this object into the new one, otherwise just copy it over.\r
     if (m_xml.empty())\r
         serialize(ret->m_xml);\r
@@ -401,49 +390,6 @@ XMLObject* XMLSecSignatureImpl::unmarshall(DOMElement* element, bool bindDocumen
     return this;\r
 }\r
 \r
-void XMLSecSignatureImpl::registerValidator(Validator* validator)\r
-{\r
-    m_validators.push_back(validator);\r
-}\r
-\r
-void XMLSecSignatureImpl::deregisterValidator(Validator* validator)\r
-{\r
-    for (vector<Validator*>::iterator i=m_validators.begin(); i!=m_validators.end(); i++) {\r
-        if ((*i)==validator) {\r
-            m_validators.erase(i);\r
-            return;\r
-        }\r
-    }\r
-}\r
-\r
-void XMLSecSignatureImpl::deregisterAll()\r
-{\r
-    for_each(m_validators.begin(),m_validators.end(),cleanup<Validator>());\r
-    m_validators.clear();\r
-}\r
-\r
-class _validate : public binary_function<const XMLObject*,bool,void> {\r
-public:\r
-    void operator()(const XMLObject* obj, bool propagate) const {\r
-        const ValidatingXMLObject* val = dynamic_cast<const ValidatingXMLObject*>(obj);\r
-        if (val) {\r
-            val->validate(propagate);\r
-        }\r
-    }\r
-};\r
-\r
-void XMLSecSignatureImpl::validate(bool validateDescendants) const\r
-{\r
-    for_each(\r
-        m_validators.begin(),m_validators.end(),\r
-        bind2nd(mem_fun<void,Validator,const XMLObject*>(&Validator::validate),this)\r
-        );\r
-    \r
-    if (validateDescendants && m_keyInfo) {\r
-        m_keyInfo->validate(validateDescendants);\r
-    }\r
-}\r
-\r
 Signature* SignatureBuilder::buildObject(\r
     const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType\r
     ) const\r
diff --git a/xmltooling/validation/AbstractValidatingXMLObject.cpp b/xmltooling/validation/AbstractValidatingXMLObject.cpp
deleted file mode 100644 (file)
index 5e50d3e..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-/*\r
- *  Copyright 2001-2006 Internet2\r
- * \r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- *     http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
-\r
-/**\r
- * AbstractValidatingXMLObject.cpp\r
- * \r
- * Extension of AbstractXMLObject that implements a ValidatingXMLObject. \r
- */\r
-\r
-#include "internal.h"\r
-#include "exceptions.h"\r
-#include "validation/AbstractValidatingXMLObject.h"\r
-\r
-#include <algorithm>\r
-#include <functional>\r
-\r
-using namespace xmltooling;\r
-using namespace std;\r
-\r
-AbstractValidatingXMLObject::ValidatorWrapper::~ValidatorWrapper()\r
-{\r
-    for_each(v.begin(),v.end(),cleanup<Validator>());\r
-}\r
-\r
-AbstractValidatingXMLObject::AbstractValidatingXMLObject(const AbstractValidatingXMLObject& src)\r
-    : AbstractXMLObject(src), m_validators(NULL)\r
-{\r
-    if (src.m_validators) {\r
-        m_validators=new ValidatorWrapper();\r
-        xmltooling::clone(src.m_validators->v,m_validators->v);\r
-    }\r
-}\r
-\r
-AbstractValidatingXMLObject::~AbstractValidatingXMLObject()\r
-{\r
-    delete m_validators;\r
-}\r
-\r
-void AbstractValidatingXMLObject::registerValidator(Validator* validator)\r
-{\r
-    if (!m_validators)\r
-        m_validators=new ValidatorWrapper();\r
-    m_validators->v.push_back(validator);\r
-}\r
-\r
-void AbstractValidatingXMLObject::deregisterValidator(Validator* validator)\r
-{\r
-    if (m_validators) {\r
-        for (std::vector<Validator*>::iterator i=m_validators->v.begin(); i!=m_validators->v.end(); i++) {\r
-            if ((*i)==validator) {\r
-                m_validators->v.erase(i);\r
-                return;\r
-            }\r
-        }\r
-    }\r
-}\r
-\r
-void AbstractValidatingXMLObject::deregisterAll()\r
-{\r
-    delete m_validators;\r
-    m_validators=NULL;\r
-}\r
-\r
-class _validate : public binary_function<const XMLObject*,bool,void> {\r
-public:\r
-    void operator()(const XMLObject* obj, bool propagate) const {\r
-        const ValidatingXMLObject* val = dynamic_cast<const ValidatingXMLObject*>(obj);\r
-        if (val) {\r
-            val->validate(propagate);\r
-        }\r
-    }\r
-};\r
-\r
-void AbstractValidatingXMLObject::validate(bool validateDescendants) const\r
-{\r
-    if (m_validators) {\r
-        for_each(\r
-            m_validators->v.begin(),m_validators->v.end(),\r
-            bind2nd(mem_fun<void,Validator,const XMLObject*>(&Validator::validate),this)\r
-            );\r
-    }\r
-    \r
-    if (validateDescendants && hasChildren()) {\r
-        const list<XMLObject*>& children=getOrderedChildren();\r
-        for_each(children.begin(),children.end(),bind2nd(_validate(),validateDescendants));\r
-    }\r
-}\r
diff --git a/xmltooling/validation/AbstractValidatingXMLObject.h b/xmltooling/validation/AbstractValidatingXMLObject.h
deleted file mode 100644 (file)
index 5252e50..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-/*\r
- *  Copyright 2001-2006 Internet2\r
- * \r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- *     http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
-\r
-/**\r
- * @file AbstractValidatingXMLObject.h\r
- * \r
- * Extension of AbstractXMLObject that implements a ValidatingXMLObject. \r
- */\r
-\r
-#if !defined(__xmltooling_abstractvalxmlobj_h__)\r
-#define __xmltooling_abstractvalxmlobj_h__\r
-\r
-#include <xmltooling/AbstractXMLObject.h>\r
-#include <xmltooling/validation/ValidatingXMLObject.h>\r
-\r
-#if defined (_MSC_VER)\r
-    #pragma warning( push )\r
-    #pragma warning( disable : 4250 4251 )\r
-#endif\r
-\r
-namespace xmltooling {\r
-\r
-    /**\r
-     * Extension of AbstractXMLObject that implements a ValidatingXMLObject.\r
-     */\r
-    class XMLTOOL_API AbstractValidatingXMLObject : public virtual AbstractXMLObject, public virtual ValidatingXMLObject\r
-    {\r
-    public:\r
-        virtual ~AbstractValidatingXMLObject();\r
-        \r
-        /**\r
-         * @see ValidatingXMLObject::registerValidator()\r
-         */\r
-        void registerValidator(Validator* validator);\r
-        \r
-        /**\r
-         * @see ValidatingXMLObject::deregisterValidator()\r
-         */\r
-        void deregisterValidator(Validator* validator);\r
-\r
-        /**\r
-         * @see ValidatingXMLObject::deregisterAll()\r
-         */\r
-        void deregisterAll();\r
-        \r
-        /**\r
-         * @see ValidatingXMLObject::validate()\r
-         */\r
-        void validate(bool validateDescendants) const;\r
-\r
-    protected:\r
-        AbstractValidatingXMLObject() : m_validators(NULL) {}\r
-\r
-        /** Copy constructor. */\r
-        AbstractValidatingXMLObject(const AbstractValidatingXMLObject& src);\r
-\r
-    private:\r
-        struct XMLTOOL_DLLLOCAL ValidatorWrapper {\r
-            ~ValidatorWrapper(); \r
-            std::vector<Validator*> v;\r
-        };\r
-    \r
-        mutable ValidatorWrapper* m_validators;\r
-    };\r
-    \r
-};\r
-\r
-#if defined (_MSC_VER)\r
-    #pragma warning( pop )\r
-#endif\r
-\r
-#endif /* __xmltooling_abstractvalxmlobj_h__ */\r
diff --git a/xmltooling/validation/ValidatingXMLObject.h b/xmltooling/validation/ValidatingXMLObject.h
deleted file mode 100644 (file)
index 0943be5..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-/*\r
- *  Copyright 2001-2006 Internet2\r
- * \r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- *     http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
-\r
-/**\r
- * @file ValidatingXMLObject.h\r
- * \r
- * An XMLObject that can evaluate per-object validation rules.  \r
- */\r
-\r
-#if !defined(__xmltooling_valxmlobj_h__)\r
-#define __xmltooling_valxmlobj_h__\r
-\r
-#include <vector>\r
-#include <xmltooling/XMLObject.h>\r
-#include <xmltooling/validation/Validator.h>\r
-\r
-#if defined (_MSC_VER)\r
-    #pragma warning( push )\r
-    #pragma warning( disable : 4250 4251 )\r
-#endif\r
-\r
-namespace xmltooling {\r
-\r
-    /**\r
-     * A functional interface for XMLObjects that offer the ability\r
-     * to evaluate validation rules defined per-object.\r
-     */\r
-    class XMLTOOL_API ValidatingXMLObject : public virtual XMLObject\r
-    {\r
-    protected:\r
-        ValidatingXMLObject() {}\r
-    \r
-    public:\r
-        virtual ~ValidatingXMLObject() {}\r
-        \r
-        /**\r
-         * Registers a validator for this XMLObject.\r
-         * \r
-         * @param validator the validator\r
-         */\r
-        virtual void registerValidator(Validator* validator)=0;\r
-        \r
-        /**\r
-         * Deregisters a validator for this XMLObject.\r
-         * \r
-         * @param validator the validator\r
-         */\r
-        virtual void deregisterValidator(Validator* validator)=0;\r
-\r
-        /**\r
-         * Deregisters all validators for this XMLObject.\r
-         */\r
-        virtual void deregisterAll()=0;\r
-        \r
-        /**\r
-         * Validates this XMLObject against all registered validators.\r
-         * \r
-         * @param validateDescendants true if all the descendants of this object should \r
-         * be validated as well, false if not\r
-         * \r
-         * @throws ValidationException thrown if the object is not valid\r
-         */\r
-        virtual void validate(bool validateDescendants) const=0;\r
-    };\r
-    \r
-};\r
-\r
-#if defined (_MSC_VER)\r
-    #pragma warning( pop )\r
-#endif\r
-\r
-#endif /* __xmltooling_valxmlobj_h__ */\r
index 7c8f6d7..58256bf 100644 (file)
@@ -46,13 +46,6 @@ namespace xmltooling {
          */\r
         virtual void validate(const XMLObject* xmlObject) const=0;\r
 \r
-        /**\r
-         * Returns a copy of the validator.\r
-         *\r
-         * @return the new validator\r
-         */\r
-        virtual Validator* clone() const=0;\r
-\r
     protected:\r
         Validator() {}\r
     };\r
index 0199f6b..dd64694 100644 (file)
                                Name="validation"\r
                                >\r
                                <File\r
-                                       RelativePath=".\validation\AbstractValidatingXMLObject.cpp"\r
-                                       >\r
-                               </File>\r
-                               <File\r
                                        RelativePath=".\validation\ValidatorSuite.cpp"\r
                                        >\r
                                </File>\r
                                Name="validation"\r
                                >\r
                                <File\r
-                                       RelativePath=".\validation\AbstractValidatingXMLObject.h"\r
-                                       >\r
-                               </File>\r
-                               <File\r
-                                       RelativePath=".\validation\ValidatingXMLObject.h"\r
-                                       >\r
-                               </File>\r
-                               <File\r
                                        RelativePath=".\validation\Validator.h"\r
                                        >\r
                                </File>\r
index 458fa7e..d52c0a2 100644 (file)
@@ -52,10 +52,6 @@ class TestValidator : public SignatureValidator
 {\r
     XMLCh* m_uri;\r
     \r
-    TestValidator(const TestValidator& src) : SignatureValidator(src) {\r
-        m_uri=XMLString::replicate(src.m_uri);\r
-    }\r
-\r
 public:\r
     TestValidator(const XMLCh* uri, XSECCryptoKey* key) : SignatureValidator(new KeyResolver(key)) {\r
         m_uri=XMLString::replicate(uri);\r
@@ -65,10 +61,6 @@ public:
         XMLString::release(&m_uri);\r
     }\r
 \r
-    TestValidator* clone() const {\r
-        return new TestValidator(*this);\r
-    }\r
-\r
     void validate(const Signature* sigObj) const {\r
         DSIGSignature* sig=sigObj->getXMLSignature();\r
         if (!sig)\r
@@ -185,10 +177,10 @@ public:
         auto_ptr<SimpleXMLObject> sxObject2(dynamic_cast<SimpleXMLObject*>(b->buildFromDocument(doc)));\r
         TS_ASSERT(sxObject2.get()!=NULL);\r
         TS_ASSERT(sxObject2->getSignature()!=NULL);\r
-        sxObject2->getSignature()->registerValidator(new TestValidator(&chNull,m_key->clone()));\r
         \r
         try {\r
-            sxObject2->getSignature()->validate(false);\r
+            TestValidator tv(&chNull,m_key->clone());\r
+            tv.validate(sxObject2->getSignature());\r
         }\r
         catch (XMLToolingException& e) {\r
             TS_TRACE(e.what());\r
index 3951644..7b97ccb 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<products>
+<products xmlns:p="http://example.com/product-info">
     <product id="1144" xmlns="http://example.com/product-info">
         <name xml:lang="en">Python Perfect IDE</name>
         <description>
@@ -9,7 +9,7 @@
             the year 3000.  Works well with <code>1166</code>.
         </description>
     </product>
-    <p:product id="1166" xmlns:p="http://example.com/product-info">
+    <p:product id="1166">
         <p:name>XSLT Perfect IDE</p:name>
         <p:description>
             <p:code>red</p:code>