diff options
Diffstat (limited to 'docs/html/tutorial-serializer-example.html')
-rw-r--r-- | docs/html/tutorial-serializer-example.html | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/docs/html/tutorial-serializer-example.html b/docs/html/tutorial-serializer-example.html new file mode 100644 index 0000000..cadb6e2 --- /dev/null +++ b/docs/html/tutorial-serializer-example.html @@ -0,0 +1,113 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Serializing example code: Raptor RDF Syntax Library Manual</title> +<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"> +<link rel="home" href="index.html" title="Raptor RDF Syntax Library Manual"> +<link rel="up" href="tutorial-serializing.html" title="Serializing RDF triples to a syntax"> +<link rel="prev" href="tutorial-serializer-destroy.html" title="Destroy the serializer"> +<link rel="next" href="reference-manual.html" title="Part II. Raptor Reference Manual"> +<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)"> +<link rel="stylesheet" href="style.css" type="text/css"> +</head> +<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> +<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> +<td width="100%" align="left" class="shortcuts"></td> +<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> +<td><a accesskey="u" href="tutorial-serializing.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="tutorial-serializer-destroy.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> +<td><a accesskey="n" href="reference-manual.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> +</tr></table> +<div class="section"> +<div class="titlepage"><div><div><h2 class="title" style="clear: both"> +<a name="tutorial-serializer-example"></a>Serializing example code</h2></div></div></div> +<div class="example"> +<a name="raptor-example-rdfcat"></a><p class="title"><b>Example 4. <code class="filename">rdfcat.c</code>: Read any RDF syntax and serialize to RDF/XML (Abbreviated)</b></p> +<div class="example-contents"> +<pre class="programlisting"> +#include <stdio.h> +#include <raptor2.h> + +/* rdfcat.c: parse any RDF syntax and serialize to RDF/XML-Abbrev */ + +static raptor_serializer* rdf_serializer; + +static void +serialize_triple(void* user_data, raptor_statement* triple) +{ + raptor_serializer_serialize_statement(rdf_serializer, triple); +} + +static void +declare_namespace(void* user_data, raptor_namespace *nspace) +{ + raptor_serializer_set_namespace_from_namespace(rdf_serializer, nspace); +} + +int +main(int argc, char *argv[]) +{ + raptor_world *world = NULL; + raptor_parser* rdf_parser = NULL; + unsigned char *uri_string; + raptor_uri *uri, *base_uri; + + world = raptor_new_world(); + + uri_string = raptor_uri_filename_to_uri_string(argv[1]); + uri = raptor_new_uri(world, uri_string); + base_uri = raptor_uri_copy(uri); + + /* Ask raptor to work out which parser to use */ + rdf_parser = raptor_new_parser(world, "guess"); + raptor_parser_set_statement_handler(rdf_parser, NULL, serialize_triple); + raptor_parser_set_namespace_handler(rdf_parser, NULL, declare_namespace); + + rdf_serializer = raptor_new_serializer(world, "rdfxml-abbrev"); + + raptor_serializer_start_to_file_handle(rdf_serializer, base_uri, stdout); + raptor_parser_parse_file(rdf_parser, uri, base_uri); + raptor_serializer_serialize_end(rdf_serializer); + + raptor_free_serializer(rdf_serializer); + raptor_free_parser(rdf_parser); + + raptor_free_uri(base_uri); + raptor_free_uri(uri); + raptor_free_memory(uri_string); + + raptor_free_world(world); + + return 0; +} + +</pre> +<p>Compile it like this: +</p> +<pre class="screen"> +$ gcc -o rdfcat rdfcat.c `pkg-config raptor2 --cflags --libs` +</pre> +<p> +and run it on an RDF file as: +</p> +<pre class="screen"> +$ ./rdfcat raptor.rdf +<?xml version="1.0" encoding="utf-8"?> +<rdf:RDF xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://usefulinc.com/ns/doap#"> + <rdf:Description rdf:about=""> + <foaf:maker> + <foaf:Person> + <foaf:name>Dave Beckett</foaf:name> +... +</pre> +<p> +</p> +</div> +</div> +<br class="example-break"> +</div> +<div class="footer"> +<hr>Generated by GTK-Doc V1.33.1</div> +</body> +</html>
\ No newline at end of file |