TYPEMAP
xmlSecKeysMngrPtr   O_KEYSMANAGER_OBJECT
xmlSecDSigCtxPtr    O_DSIGCONTEXT_OBJECT
xmlDocPtr           O_XML_OBJECT
xmlNodePtr          O_XML_OBJECT
xmlSecKeyDataFormat T_IV
xmlSecKeyDataType   T_IV
xmlSecTransformUriType T_IV

INPUT
O_KEYSMANAGER_OBJECT
    if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) && sv_isa($arg,\"XML::LibXMLSec::KeysManager\"))
            $var = INT2PTR($type,SvIV((SV*)SvRV( $arg )));
    else{
            warn( \"${Package}::$func_name() -- $var is not a XML::LibXMLSec::KeysManager\" );
            XSRETURN_UNDEF;
    }

O_DSIGCONTEXT_OBJECT
    if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) && sv_isa($arg,\"XML::LibXMLSec::DSigContext\"))
            $var = INT2PTR($type,SvIV((SV*)SvRV( $arg )));
    else{
            warn( \"${Package}::$func_name() -- $var is not a XML::LibXMLSec::DSigContext\" );
            XSRETURN_UNDEF;
    }

O_XML_OBJECT
    if( sv_isobject($arg)) {
            $var = ($type)x_PmmSvNode($arg);
    }
    else {
            warn( \"${Package}::$func_name() -- $var is not a XML node\" );
            XSRETURN_UNDEF;
    }

OUTPUT

O_KEYSMANAGER_OBJECT
        sv_setref_pv( $arg, (char *)\"XML::LibXMLSec::KeysManager\", (void*)$var );

O_DSIGCONTEXT_OBJECT
        sv_setref_pv( $arg, (char *)\"XML::LibXMLSec::DSigContext\", (void*)$var );
