/** * raptor_uri_turtle_write: * @world: world * @iostr: iostream for writing * @uri: uri * @nstack: namespace stack * @base_uri: base URI * * Write #raptor_uri to a stream in turtle syntax (using QNames). * * Return value: non-0 on failure */ int raptor_uri_turtle_write(raptor_world *world, raptor_iostream* iostr, raptor_uri* uri, raptor_namespace_stack *nstack, raptor_uri *base_uri) { raptor_qname* qname; raptor_turtle_writer* turtle_writer; turtle_writer = raptor_new_turtle_writer(world, base_uri, 0, nstack, iostr); if(!turtle_writer) { return 1; } qname = raptor_new_qname_from_namespace_uri(nstack, uri, 10); /* XML Names allow leading '_' and '.' anywhere but Turtle does not */ if(qname && !raptor_turtle_is_legal_turtle_qname(qname)) { raptor_free_qname(qname); qname = NULL; } if(qname) { raptor_turtle_writer_qname(turtle_writer, qname); raptor_free_qname(qname); } else { raptor_turtle_writer_reference(turtle_writer, uri); } raptor_free_turtle_writer(turtle_writer); return 0; }
/* * raptor_turtle_emit_resource: * @serializer: #raptor_serializer object * @node: resource node * @depth: depth into tree * * Emit a description of a resource using an XML Element * * Return value: non-0 on failure **/ static int raptor_turtle_emit_resource(raptor_serializer *serializer, raptor_abbrev_node* node, int depth) { raptor_turtle_context* context = (raptor_turtle_context*)serializer->context; raptor_turtle_writer *turtle_writer = context->turtle_writer; raptor_qname* qname = NULL; RAPTOR_DEBUG5("Emitting resource node %p refcount %d subject %d object %d\n", node, node->ref_count, node->count_as_subject, node->count_as_object); if(node->term->type != RAPTOR_TERM_TYPE_URI) return 1; qname = raptor_new_qname_from_namespace_uri(context->nstack, node->term->value.uri, 10); /* XML Names allow leading '_' and '.' anywhere but Turtle does not */ if(qname && !raptor_turtle_is_legal_turtle_qname(qname)) { raptor_free_qname(qname); qname = NULL; } if(qname) { raptor_turtle_writer_qname(turtle_writer, qname); raptor_free_qname(qname); } else { raptor_turtle_writer_reference(turtle_writer, node->term->value.uri); } RAPTOR_DEBUG2("Emitted %p\n", node); return 0; }