org.openrdf.rio.rdfxml.util
Class RDFXMLPrettyWriter

java.lang.Object
  extended by org.openrdf.rio.rdfxml.RDFXMLWriter
      extended by org.openrdf.rio.rdfxml.util.RDFXMLPrettyWriter
All Implemented Interfaces:
Closeable, Flushable, RDFHandler, RDFWriter

public class RDFXMLPrettyWriter
extends RDFXMLWriter
implements Closeable, Flushable

An extension of RDFXMLWriter that outputs a more concise form of RDF/XML. The resulting output is semantically equivalent to the output of an RDFXMLWriter (it produces the same set of statements), but it is usually easier to read for humans.

This is a quasi-streaming RDFWriter. Statements are cached as long as the striped syntax is followed (i.e. the subject of the next statement is the object of the previous statement) and written to the output when the stripe is broken.

The abbreviations used are typed node elements, empty property elements and striped syntax. Note that these abbreviations require that statements are written in the appropriate order.

Striped syntax means that when the object of a statement is the subject of the next statement we can nest the descriptions in each other.

Example:

 <rdf:Seq>
    <rdf:li>
       <foaf:Person>
          <foaf:knows>
             <foaf:Person>
               <foaf:mbox rdf:resource="..."/>
             </foaf:Person>
          </foaf:knows>
       </foaf:Person>
    </rdf:li>
 </rdf:Seq>
 
Typed node elements means that we write out type information in the short form of
 <foaf:Person rdf:about="...">
     ...
  </foaf:Person>
 
instead of
 <rdf:Description rdf:about="...">
    <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
     ...
  </rdf:Description>
 
Empty property elements are of the form
 <foaf:Person>
    <foaf:homepage rdf:resource="http://www.cs.vu.nl/˜marta"/>
 </foaf:Person>
 
instead of
 <foaf:Person>
    <foaf:homepage>
       <rdf:Description rdf:about="http://www.cs.vu.nl/˜marta"/>
    <foaf:homepage>
 </foaf:Person>
 

Author:
Peter Mika (pmika@cs.vu.nl)

Field Summary
 
Fields inherited from class org.openrdf.rio.rdfxml.RDFXMLWriter
headerWritten, lastWrittenSubject, namespaceTable, writer, writingStarted
 
Constructor Summary
RDFXMLPrettyWriter(OutputStream out)
          Creates a new RDFXMLPrintWriter that will write to the supplied OutputStream.
RDFXMLPrettyWriter(Writer out)
          Creates a new RDFXMLPrintWriter that will write to the supplied Writer.
 
Method Summary
 void close()
           
 void flush()
           
protected  void flushPendingStatements()
           
 void handleStatement(Statement st)
          Handles a statement.
protected  void writeHeader()
           
protected  void writeIndents(int n)
          Writes n indents.
protected  void writeStartTag(String namespace, String localName)
           
 
Methods inherited from class org.openrdf.rio.rdfxml.RDFXMLWriter
endRDF, getRDFFormat, handleComment, handleNamespace, setNamespace, startRDF, writeAttribute, writeAttribute, writeCharacterData, writeEndOfEmptyTag, writeEndOfStartTag, writeEndTag, writeIndent, writeNewLine, writeStartOfStartTag
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RDFXMLPrettyWriter

public RDFXMLPrettyWriter(OutputStream out)
Creates a new RDFXMLPrintWriter that will write to the supplied OutputStream.

Parameters:
out - The OutputStream to write the RDF/XML document to.

RDFXMLPrettyWriter

public RDFXMLPrettyWriter(Writer out)
Creates a new RDFXMLPrintWriter that will write to the supplied Writer.

Parameters:
out - The Writer to write the RDF/XML document to.
Method Detail

writeHeader

protected void writeHeader()
                    throws IOException
Overrides:
writeHeader in class RDFXMLWriter
Throws:
IOException

flush

public void flush()
           throws IOException
Specified by:
flush in interface Flushable
Throws:
IOException

close

public void close()
           throws IOException
Specified by:
close in interface Closeable
Throws:
IOException

flushPendingStatements

protected void flushPendingStatements()
                               throws IOException
Overrides:
flushPendingStatements in class RDFXMLWriter
Throws:
IOException

handleStatement

public void handleStatement(Statement st)
                     throws RDFHandlerException
Description copied from interface: RDFHandler
Handles a statement.

Specified by:
handleStatement in interface RDFHandler
Overrides:
handleStatement in class RDFXMLWriter
Parameters:
st - The statement.
Throws:
RDFHandlerException - If the RDF handler has encountered an unrecoverable error.

writeStartTag

protected void writeStartTag(String namespace,
                             String localName)
                      throws IOException
Throws:
IOException

writeIndents

protected void writeIndents(int n)
                     throws IOException
Writes n indents.

Throws:
IOException


Copyright © 2001-2007 Aduna. All Rights Reserved.