TYPEMAP const char * T_PV xmlParserCtxtPtr O_PARSER_OBJECT xmlRelaxNGPtr O_OBJECT xmlSchemaPtr O_OBJECT xmlNodeSetPtr O_OBJECT perlxmlParserObjectPtr O_OBJECT xmlDocPtr O_DOC_OBJECT xmlNodePtr O_NODE_OBJECT xmlDtdPtr O_NODE_OBJECT xmlTextReaderPtr O_OBJECT INPUT O_OBJECT if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) ) $var = ($type)SvIV((SV*)SvRV( $arg )); else{ warn( \"${Package}::$func_name() -- $var is not a blessed SV reference\" ); XSRETURN_UNDEF; } O_DOC_OBJECT if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) ) { $var = ($type)PmmSvNode($arg); if ( $var == NULL ) { croak( \"${Package}::$func_name() -- $var contains no data\" ); XSRETURN_UNDEF; } } else{ croak( \"${Package}::$func_name() -- $var is not a blessed SV reference\" ); XSRETURN_UNDEF; } O_NODE_OBJECT if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) ) { $var = ($type)PmmSvNode($arg); if ( $var == NULL ) { croak( \"${Package}::$func_name() -- $var contains no data\" ); XSRETURN_UNDEF; } } else { croak( \"${Package}::$func_name() -- $var is not a blessed SV reference\" ); XSRETURN_UNDEF; } O_PARSER_OBJECT if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) ) { $var = PmmSvContext($arg); if ( $var == NULL ) { croak( \"${Package}::$func_name() -- $var contains no parse context\" ); XSRETURN_UNDEF; } } else { croak( \"${Package}::$func_name() -- $var is not a blessed SV reference\" ); XSRETURN_UNDEF; } OUTPUT # The Perl object is blessed into 'CLASS', which should be a # char* having the name of the package for the blessing. O_OBJECT sv_setref_pv( $arg, (char *)CLASS, (void*)$var ); O_PARSER_OBJECT $arg = PmmContextSv( $var );