Update copyright.
[shibboleth/cpp-xmltooling.git] / xmltooling / signature / impl / KeyInfoSchemaValidators.cpp
index ec4dbaa..32b12a7 100644 (file)
@@ -1,5 +1,5 @@
 /*
-*  Copyright 2001-2006 Internet2
+*  Copyright 2001-2007 Internet2
  * 
 * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 #include "internal.h"
 #include "exceptions.h"
 #include "signature/KeyInfo.h"
+#include "validation/ValidatorSuite.h"
 
 using namespace xmlsignature;
 using namespace xmltooling;
 using namespace std;
+using xmlconstants::XMLSIG_NS;
 
 namespace xmlsignature {
 
@@ -64,7 +66,7 @@ namespace xmlsignature {
     END_XMLOBJECTVALIDATOR;
 
     BEGIN_XMLOBJECTVALIDATOR(XMLTOOL_DLLLOCAL,KeyValue);
-        XMLOBJECTVALIDATOR_ONLYONEOF3(KeyValue,DSAKeyValue,RSAKeyValue,OtherKeyValue);
+        XMLOBJECTVALIDATOR_ONLYONEOF3(KeyValue,DSAKeyValue,RSAKeyValue,UnknownXMLObject);
     END_XMLOBJECTVALIDATOR;
 
     BEGIN_XMLOBJECTVALIDATOR(XMLTOOL_DLLLOCAL,Transform);
@@ -88,7 +90,7 @@ namespace xmlsignature {
     public:
         void operator()(const XMLObject* xmlObject) const {
             const XMLCh* ns=xmlObject->getElementQName().getNamespaceURI();
-            if (XMLString::equals(ns,XMLConstants::XMLSIG_NS) || !ns || !*ns) {
+            if (XMLString::equals(ns,XMLSIG_NS) || !ns || !*ns) {
                 throw ValidationException(
                     "Object contains an illegal extension child element ($1).",
                     params(1,xmlObject->getElementQName().toString().c_str())
@@ -100,7 +102,7 @@ namespace xmlsignature {
     BEGIN_XMLOBJECTVALIDATOR(XMLTOOL_DLLLOCAL,X509Data);
         if (!ptr->hasChildren())
             throw ValidationException("X509Data must have at least one child element.");
-        const vector<XMLObject*>& anys=ptr->getOtherX509Datas();
+        const vector<XMLObject*>& anys=ptr->getUnknownXMLObjects();
         for_each(anys.begin(),anys.end(),checkWildcardNS());
     END_XMLOBJECTVALIDATOR;
 
@@ -115,7 +117,7 @@ namespace xmlsignature {
     BEGIN_XMLOBJECTVALIDATOR(XMLTOOL_DLLLOCAL,KeyInfo);
         if (!ptr->hasChildren())
             throw ValidationException("KeyInfo must have at least one child element.");
-        const vector<XMLObject*>& anys=ptr->getOthers();
+        const vector<XMLObject*>& anys=ptr->getUnknownXMLObjects();
         for_each(anys.begin(),anys.end(),checkWildcardNS());
     END_XMLOBJECTVALIDATOR;
 
@@ -124,57 +126,57 @@ namespace xmlsignature {
 #define REGISTER_ELEMENT(namespaceURI,cname) \
     q=QName(namespaceURI,cname::LOCAL_NAME); \
     XMLObjectBuilder::registerBuilder(q,new cname##Builder()); \
-    Validator::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()); \
-    Validator::registerValidator(q,new cname##SchemaValidator())
+    SchemaValidators.registerValidator(q,new cname##SchemaValidator())
 
 void xmlsignature::registerKeyInfoClasses()
 {
     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_ELEMENT(XMLConstants::XMLSIG_NS,RetrievalMethod);
-    REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,X509IssuerSerial);
-    REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,X509IssuerName);
-    REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,X509SerialNumber);
-    REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,X509SKI);
-    REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,X509SubjectName);
-    REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,X509Certificate);
-    REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,X509CRL);
-    REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,X509Data);
-    REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,SPKISexp);
-    REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,SPKIData);
-    REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,PGPKeyID);
-    REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,PGPKeyPacket);
-    REGISTER_ELEMENT(XMLConstants::XMLSIG_NS,PGPData);
-    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);
-    REGISTER_TYPE(XMLConstants::XMLSIG_NS,RetrievalMethod);
-    REGISTER_TYPE(XMLConstants::XMLSIG_NS,X509IssuerSerial);
-    REGISTER_TYPE(XMLConstants::XMLSIG_NS,X509Data);
-    REGISTER_TYPE(XMLConstants::XMLSIG_NS,SPKIData);
-    REGISTER_TYPE(XMLConstants::XMLSIG_NS,PGPData);
+    REGISTER_ELEMENT(XMLSIG_NS,KeyInfo);
+    REGISTER_ELEMENT(XMLSIG_NS,KeyName);
+    REGISTER_ELEMENT(XMLSIG_NS,KeyValue);
+    REGISTER_ELEMENT(XMLSIG_NS,MgmtData);
+    REGISTER_ELEMENT(XMLSIG_NS,DSAKeyValue);
+    REGISTER_ELEMENT(XMLSIG_NS,RSAKeyValue);
+    REGISTER_ELEMENT(XMLSIG_NS,Exponent);
+    REGISTER_ELEMENT(XMLSIG_NS,Modulus);
+    REGISTER_ELEMENT(XMLSIG_NS,P);
+    REGISTER_ELEMENT(XMLSIG_NS,Q);
+    REGISTER_ELEMENT(XMLSIG_NS,G);
+    REGISTER_ELEMENT(XMLSIG_NS,Y);
+    REGISTER_ELEMENT(XMLSIG_NS,J);
+    REGISTER_ELEMENT(XMLSIG_NS,Seed);
+    REGISTER_ELEMENT(XMLSIG_NS,PgenCounter);
+    REGISTER_ELEMENT(XMLSIG_NS,XPath);
+    REGISTER_ELEMENT(XMLSIG_NS,Transform);
+    REGISTER_ELEMENT(XMLSIG_NS,Transforms);
+    REGISTER_ELEMENT(XMLSIG_NS,RetrievalMethod);
+    REGISTER_ELEMENT(XMLSIG_NS,X509IssuerSerial);
+    REGISTER_ELEMENT(XMLSIG_NS,X509IssuerName);
+    REGISTER_ELEMENT(XMLSIG_NS,X509SerialNumber);
+    REGISTER_ELEMENT(XMLSIG_NS,X509SKI);
+    REGISTER_ELEMENT(XMLSIG_NS,X509SubjectName);
+    REGISTER_ELEMENT(XMLSIG_NS,X509Certificate);
+    REGISTER_ELEMENT(XMLSIG_NS,X509CRL);
+    REGISTER_ELEMENT(XMLSIG_NS,X509Data);
+    REGISTER_ELEMENT(XMLSIG_NS,SPKISexp);
+    REGISTER_ELEMENT(XMLSIG_NS,SPKIData);
+    REGISTER_ELEMENT(XMLSIG_NS,PGPKeyID);
+    REGISTER_ELEMENT(XMLSIG_NS,PGPKeyPacket);
+    REGISTER_ELEMENT(XMLSIG_NS,PGPData);
+    REGISTER_TYPE(XMLSIG_NS,KeyInfo);
+    REGISTER_TYPE(XMLSIG_NS,KeyValue);
+    REGISTER_TYPE(XMLSIG_NS,DSAKeyValue);
+    REGISTER_TYPE(XMLSIG_NS,RSAKeyValue);
+    REGISTER_TYPE(XMLSIG_NS,Transform);
+    REGISTER_TYPE(XMLSIG_NS,Transforms);
+    REGISTER_TYPE(XMLSIG_NS,RetrievalMethod);
+    REGISTER_TYPE(XMLSIG_NS,X509IssuerSerial);
+    REGISTER_TYPE(XMLSIG_NS,X509Data);
+    REGISTER_TYPE(XMLSIG_NS,SPKIData);
+    REGISTER_TYPE(XMLSIG_NS,PGPData);
 }