int rdfa_parse_start(rdfacontext* context) { /* create the buffers and expat parser */ int rval = RDFA_PARSE_SUCCESS; context->wb_allocated = sizeof(char) * READ_BUFFER_SIZE; /* +1 for NUL at end, to allow strstr() etc. to work * malloc - only the first char needs to be NUL */ context->working_buffer = (char*)malloc(context->wb_allocated + 1); *context->working_buffer = '\0'; context->done = 0; context->context_stack = rdfa_create_list(32); /* initialize the context stack */ rdfa_push_item(context->context_stack, context, RDFALIST_FLAG_CONTEXT); #ifdef LIBRDFA_IN_RAPTOR context->sax2 = raptor_new_sax2(context->world, context->locator, context); #else /* init libxml2 */ xmlInitParser(); #endif /* set up the context stack */ #ifdef LIBRDFA_IN_RAPTOR raptor_sax2_set_start_element_handler(context->sax2, raptor_rdfa_start_element); raptor_sax2_set_end_element_handler(context->sax2, raptor_rdfa_end_element); raptor_sax2_set_characters_handler(context->sax2, raptor_rdfa_character_data); raptor_sax2_set_namespace_handler(context->sax2, raptor_rdfa_namespace_handler); #endif rdfa_init_context(context); #ifdef LIBRDFA_IN_RAPTOR context->base_uri = raptor_new_uri(context->sax2->world, (const unsigned char*)context->base); raptor_sax2_parse_start(context->sax2, context->base_uri); #endif return rval; }
static int rasqal_rowsource_sparql_xml_init(rasqal_rowsource* rowsource, void *user_data) { rasqal_rowsource_sparql_xml_context* con; con=(rasqal_rowsource_sparql_xml_context*)user_data; con->rowsource=rowsource; con->state=STATE_unknown; #ifdef TRACE_XML con->trace=1; #endif con->depth=0; raptor_sax2_parse_start(con->sax2, con->base_uri); return 0; }