Revision: 1993
Author: [email protected]
Date: Thu Aug  5 06:43:30 2010
Log: Added ns prefixes to XML output for more readable and reusable XML.
http://code.google.com/p/simal/source/detail?r=1993

Modified:
/trunk/uk.ac.osswatch.simal.core/src/main/java/uk/ac/osswatch/simal/model/AbstractResource.java /trunk/uk.ac.osswatch.simal.core/src/main/java/uk/ac/osswatch/simal/model/jena/Resource.java /trunk/uk.ac.osswatch.simal.core/src/main/java/uk/ac/osswatch/simal/rdf/io/RDFUtils.java /trunk/uk.ac.osswatch.simal.core/src/test/java/uk/ac/osswatch/simal/integrationTest/model/TestResource.java

=======================================
--- /trunk/uk.ac.osswatch.simal.core/src/main/java/uk/ac/osswatch/simal/model/AbstractResource.java Tue Feb 16 01:53:18 2010 +++ /trunk/uk.ac.osswatch.simal.core/src/main/java/uk/ac/osswatch/simal/model/AbstractResource.java Thu Aug 5 06:43:30 2010
@@ -20,7 +20,11 @@

 import org.apache.commons.lang.StringEscapeUtils;

+import com.hp.hpl.jena.rdf.model.RDFWriter;
+import com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter;
+
 import uk.ac.osswatch.simal.rdf.SimalRepositoryException;
+import uk.ac.osswatch.simal.rdf.io.RDFUtils;

 public abstract class AbstractResource implements IResource {
        private static final long serialVersionUID = 1L;
@@ -111,5 +115,21 @@
     public void setPath(String path) {
        this.path = path;
     }
+
+    /**
+     * Set namespace prefixes for more readable XML output.
+     * @param writer
+     * @return same writer with prefixes set.
+     */
+    protected RDFWriter setNsPrefixes(BaseXMLWriter writer) {
+      writer.setNsPrefix("", RDFUtils.DOAP_NS);
+      writer.setNsPrefix(RDFUtils.SIMAL_PREFIX, RDFUtils.SIMAL_NS);
+      writer.setNsPrefix(RDFUtils.FOAF_PREFIX, RDFUtils.FOAF_NS);
+      writer.setNsPrefix(RDFUtils.DC_PREFIX, RDFUtils.DC_NS);
+      writer.setNsPrefix(RDFUtils.RDF_PREFIX, RDFUtils.RDF_NS);
+      writer.setNsPrefix(RDFUtils.RDFS_PREFIX, RDFUtils.RDFS_NS);
+
+      return writer;
+    }

 }
=======================================
--- /trunk/uk.ac.osswatch.simal.core/src/main/java/uk/ac/osswatch/simal/model/jena/Resource.java Wed Jan 6 19:02:17 2010 +++ /trunk/uk.ac.osswatch.simal.core/src/main/java/uk/ac/osswatch/simal/model/jena/Resource.java Thu Aug 5 06:43:30 2010
@@ -41,6 +41,7 @@
 import com.hp.hpl.jena.util.ResourceUtils;
 import com.hp.hpl.jena.vocabulary.DC;
 import com.hp.hpl.jena.vocabulary.RDFS;
+import com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter;

 public class Resource extends AbstractResource {
   private static final long serialVersionUID = -10828811166985970L;
@@ -204,8 +205,12 @@
   public String toXML() throws SimalRepositoryException {
     Model model = ResourceUtils.reachableClosure(getJenaResource());
     RDFWriter writer = model.getWriter("RDF/XML-ABBREV");
+    if(writer instanceof BaseXMLWriter) {
+      writer = setNsPrefixes((BaseXMLWriter) writer);
+    }
     StringWriter sw = new StringWriter();
     writer.write(model, sw, null);
+
     return sw.toString();
   }

@@ -216,7 +221,6 @@
    * @param property
    * @return
    */
-  @SuppressWarnings("unchecked")
   protected List<Statement> listProperties(Property property) {
List<Statement> props = getJenaResource().listProperties(property).toList();

=======================================
--- /trunk/uk.ac.osswatch.simal.core/src/main/java/uk/ac/osswatch/simal/rdf/io/RDFUtils.java Mon Jun 7 06:47:17 2010 +++ /trunk/uk.ac.osswatch.simal.core/src/main/java/uk/ac/osswatch/simal/rdf/io/RDFUtils.java Thu Aug 5 06:43:30 2010
@@ -46,6 +46,8 @@
public static final String CATEGORY_NAMESPACE_URI = "http://simal.oss-watch.ac.uk/defaultCategoryNS#";;

public static final String SIMAL_NS = "http://oss-watch.ac.uk/ns/0.2/simal#";;
+  public static final String SIMAL_PREFIX = "simal";
+
   public static final String SIMAL_PERSON = SIMAL_NS + "Person";
   public static final String SIMAL_PROJECT = SIMAL_NS + "Project";
   public static final String SIMAL_CATEGORY_ID = "categoryId";
@@ -53,10 +55,19 @@
   public static final String SIMAL_PROJECT_ID = "projectId";

   public static final String DOAP_NS = DOAP.NS;
+  // TODO Change to public static final String DC_NS = DCTerms.NS;
   public static final String DC_NS = DC.NS;
   public static final String FOAF_NS = FOAF.NS;
   public static final String RDF_NS = RDF.getURI();
   public static final String RDFS_NS = RDFS.getURI();
+  public static final String VCARD_NS = "http://www.w3.org/2006/vcard/ns#";;
+
+  public static final String DOAP_PREFIX = "doap";
+  public static final String DC_PREFIX = "dc";
+  public static final String FOAF_PREFIX = "foaf";
+  public static final String RDF_PREFIX = "rdf";
+  public static final String RDFS_PREFIX = "rdfs";
+  public static final String VCARD_PREFIX = "v";

   private RDFUtils() {
   }
=======================================
--- /trunk/uk.ac.osswatch.simal.core/src/test/java/uk/ac/osswatch/simal/integrationTest/model/TestResource.java Sun Jun 28 15:37:20 2009 +++ /trunk/uk.ac.osswatch.simal.core/src/test/java/uk/ac/osswatch/simal/integrationTest/model/TestResource.java Thu Aug 5 06:43:30 2010
@@ -15,9 +15,7 @@
  */
 package uk.ac.osswatch.simal.integrationTest.model;

-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
+import static org.junit.Assert.*;

 import java.io.File;
 import java.io.FileInputStream;
@@ -58,6 +56,11 @@
   public void testToXML() throws SimalRepositoryException {
     String xml = project1.toXML();
     assertNotNull(xml);
+    // Testing wither namespace prefixes have been set correctly:
+ assertTrue("Namespace simal not set correctly.", xml.indexOf("xmlns:simal") > -1); + assertTrue("Namespace doap not set correctly.", xml.indexOf("xmlns=\"http://usefulinc.com/ns/doap#\"";) > -1); + assertTrue("Namespace foaf not set correctly.", xml.indexOf("xmlns:foaf") > -1); + assertTrue("Namespace dc not set correctly.", xml.indexOf("xmlns:dc")
-1);
   }

   @Test

--
You received this message because you are subscribed to the Google Groups "Simal 
Commits" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/simal-commits?hl=en.

Reply via email to