using namespace xmlsignature;
using namespace xmltooling;
using namespace std;
+using xmlconstants::XSI_NS;
using xmlconstants::XMLSIG_NS;
using xmlconstants::XMLENC_NS;
+using xmlconstants::XML_BOOL_NULL;
using samlconstants::SAML20_NS;
+
#if defined (_MSC_VER)
#pragma warning( push )
#pragma warning( disable : 4250 4251 )
}
};
- class SAML_DLLLOCAL SubjectConfirmationDataTypeImpl : public virtual SubjectConfirmationDataType,
- public AbstractDOMCachingXMLObject,
- public AbstractXMLObjectMarshaller,
- public AbstractXMLObjectUnmarshaller
+ class SAML_DLLLOCAL SubjectConfirmationDataTypeImpl : public virtual SubjectConfirmationDataType, public virtual AbstractXMLObject
{
void init() {
m_NotBefore=m_NotOnOrAfter=NULL;
init();
}
- SubjectConfirmationDataTypeImpl(const SubjectConfirmationDataTypeImpl& src) : AbstractDOMCachingXMLObject(src) {
+ SubjectConfirmationDataTypeImpl(const SubjectConfirmationDataTypeImpl& src) : AbstractXMLObject(src) {
init();
setNotBefore(src.getNotBefore());
setNotOnOrAfter(src.getNotOnOrAfter());
PROC_STRING_ATTRIB(Recipient,RECIPIENT,NULL);
PROC_STRING_ATTRIB(InResponseTo,INRESPONSETO,NULL);
PROC_STRING_ATTRIB(Address,ADDRESS,NULL);
- AbstractXMLObjectUnmarshaller::processAttribute(attribute);
}
};
SubjectConfirmationDataTypeImpl::marshallAttributes(domElement);
AnyElementImpl::marshallAttributes(domElement);
}
+
+ void processAttribute(const DOMAttr* attribute) {
+ PROC_DATETIME_ATTRIB(NotBefore,NOTBEFORE,NULL);
+ PROC_DATETIME_ATTRIB(NotOnOrAfter,NOTONORAFTER,NULL);
+ PROC_STRING_ATTRIB(Recipient,RECIPIENT,NULL);
+ PROC_STRING_ATTRIB(InResponseTo,INRESPONSETO,NULL);
+ PROC_STRING_ATTRIB(Address,ADDRESS,NULL);
+ AnyElementImpl::processAttribute(attribute);
+ }
};
class SAML_DLLLOCAL KeyInfoConfirmationDataTypeImpl : public virtual KeyInfoConfirmationDataType,
public SubjectConfirmationDataTypeImpl,
public AbstractComplexElement,
- public AbstractAttributeExtensibleXMLObject
+ public AbstractAttributeExtensibleXMLObject,
+ public AbstractDOMCachingXMLObject,
+ public AbstractXMLObjectMarshaller,
+ public AbstractXMLObjectUnmarshaller
{
public:
virtual ~KeyInfoConfirmationDataTypeImpl() {}
KeyInfoConfirmationDataTypeImpl(const KeyInfoConfirmationDataTypeImpl& src)
: AbstractXMLObject(src), SubjectConfirmationDataTypeImpl(src), AbstractComplexElement(src),
- AbstractAttributeExtensibleXMLObject(src) {
+ AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) {
VectorOf(KeyInfo) v=getKeyInfos();
for (vector<KeyInfo*>::const_iterator i=src.m_KeyInfos.begin(); i!=src.m_KeyInfos.end(); ++i)
v.push_back((*i)->cloneKeyInfo());
}
};
- //TODO need unit test for this
class SAML_DLLLOCAL AttributeValueImpl : public virtual AttributeValue, public AnyElementImpl
{
public:
const XMLCh EncryptedAttribute::LOCAL_NAME[] = UNICODE_LITERAL_18(E,n,c,r,y,p,t,e,d,A,t,t,r,i,b,u,t,e);
const XMLCh EncryptedElementType::LOCAL_NAME[] = {chNull};
const XMLCh EncryptedElementType::TYPE_NAME[] = UNICODE_LITERAL_20(E,n,c,r,y,p,t,e,d,E,l,e,m,e,n,t,T,y,p,e);
-const XMLCh EncryptedID::LOCAL_NAME[] = UNICODE_LITERAL_11(E,n,c,r,y,p,t,e,d,I,d);
+const XMLCh EncryptedID::LOCAL_NAME[] = UNICODE_LITERAL_11(E,n,c,r,y,p,t,e,d,I,D);
const XMLCh Evidence::LOCAL_NAME[] = UNICODE_LITERAL_8(E,v,i,d,e,n,c,e);
const XMLCh Evidence::TYPE_NAME[] = UNICODE_LITERAL_12(E,v,i,d,e,n,c,e,T,y,p,e);
const XMLCh Issuer::LOCAL_NAME[] = UNICODE_LITERAL_6(I,s,s,u,e,r);