IMPL_CLONE_ATTRIB(Algorithm);
IMPL_CLONE_TYPED_CHILD(KeySize);
IMPL_CLONE_TYPED_CHILD(OAEPparams);
- IMPL_CLONE_XMLOBJECT_CHILDREN();
+ IMPL_CLONE_XMLOBJECT_CHILDREN(UnknownXMLObject);
}
IMPL_XMLOBJECT_CLONE(EncryptionMethod);
init();
IMPL_CLONE_ATTRIB(Id);
IMPL_CLONE_ATTRIB(Target);
- IMPL_CLONE_XMLOBJECT_CHILDREN();
+ IMPL_CLONE_XMLOBJECT_CHILDREN(UnknownXMLObject);
}
IMPL_XMLOBJECT_CLONE(EncryptionProperty);
void _clone(const ReferenceTypeImpl& src) {
IMPL_CLONE_ATTRIB(URI);
- IMPL_CLONE_XMLOBJECT_CHILDREN();
+ IMPL_CLONE_XMLOBJECT_CHILDREN(UnknownXMLObject);
}
IMPL_XMLOBJECT_CLONE_EX(ReferenceType);
ReferenceListImpl(const ReferenceListImpl& src)
: AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) {
- for (list<XMLObject*>::const_iterator i = src.m_children.begin(); i != src.m_children.end(); ++i) {
- DataReference* data=dynamic_cast<DataReference*>(*i);
- if (data) {
- getDataReferences().push_back(data->cloneDataReference());
- continue;
- }
-
- KeyReference* key=dynamic_cast<KeyReference*>(*i);
- if (key) {
- getKeyReferences().push_back(key->cloneKeyReference());
- continue;
- }
- }
+ IMPL_CLONE_CHILDBAG_BEGIN;
+ IMPL_CLONE_TYPED_CHILD_IN_BAG(DataReference);
+ IMPL_CLONE_TYPED_CHILD_IN_BAG(KeyReference);
+ IMPL_CLONE_CHILDBAG_END;
}
IMPL_XMLOBJECT_CLONE(ReferenceList);
}
};
+ class XMLTOOL_DLLLOCAL MGFImpl : public virtual MGF,
+ public AbstractSimpleElement,
+ public AbstractDOMCachingXMLObject,
+ public AbstractXMLObjectMarshaller,
+ public AbstractXMLObjectUnmarshaller
+ {
+ void init() {
+ m_Algorithm = nullptr;
+ }
+
+ public:
+ virtual ~MGFImpl() {
+ XMLString::release(&m_Algorithm);
+ }
+
+ MGFImpl(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const xmltooling::QName* schemaType)
+ : AbstractXMLObject(nsURI, localName, prefix, schemaType) {
+ init();
+ }
+
+ MGFImpl(const MGFImpl& src)
+ : AbstractXMLObject(src), AbstractSimpleElement(src), AbstractDOMCachingXMLObject(src) {
+ init();
+ IMPL_CLONE_ATTRIB(Algorithm);
+ }
+
+ IMPL_XMLOBJECT_CLONE(MGF);
+ IMPL_STRING_ATTRIB(Algorithm);
+
+ protected:
+ void marshallAttributes(DOMElement* domElement) const {
+ MARSHALL_STRING_ATTRIB(Algorithm,ALGORITHM,nullptr);
+ }
+
+ void processAttribute(const DOMAttr* attribute) {
+ PROC_STRING_ATTRIB(Algorithm,ALGORITHM,nullptr);
+ AbstractXMLObjectUnmarshaller::processAttribute(attribute);
+ }
+ };
+
};
#if defined (_MSC_VER)
IMPL_XMLOBJECTBUILDER(ReferenceList);
IMPL_XMLOBJECTBUILDER(Transforms);
+IMPL_XMLOBJECTBUILDER(MGF);
+
// Unicode literals
const XMLCh CarriedKeyName::LOCAL_NAME[] = UNICODE_LITERAL_14(C,a,r,r,i,e,d,K,e,y,N,a,m,e);
const XMLCh ReferenceType::URI_ATTRIB_NAME[] = UNICODE_LITERAL_3(U,R,I);
const XMLCh Transforms::LOCAL_NAME[] = UNICODE_LITERAL_10(T,r,a,n,s,f,o,r,m,s);
const XMLCh Transforms::TYPE_NAME[] = UNICODE_LITERAL_14(T,r,a,n,s,f,o,r,m,s,T,y,p,e);
+
+const XMLCh MGF::LOCAL_NAME[] = UNICODE_LITERAL_3(M,G,F);
+const XMLCh MGF::TYPE_NAME[] = UNICODE_LITERAL_7(M,G,F,T,y,p,e);
+const XMLCh MGF::ALGORITHM_ATTRIB_NAME[] = UNICODE_LITERAL_9(A,l,g,o,r,i,t,h,m);
\ No newline at end of file