diff --git a/generator/pom.xml b/generator/pom.xml
index 457862f..b07514d 100644
--- a/generator/pom.xml
+++ b/generator/pom.xml
@@ -5,12 +5,12 @@
   <parent>
     <groupId>org.apache.odftoolkit</groupId>
     <artifactId>odftoolkit</artifactId>
-    <version>0.6.1-incubating-SNAPSHOT</version>
+    <version>0.6.2-incubating-SNAPSHOT</version>
   </parent>
 
     <!-- The Basics -->
     <artifactId>schema2template-pom</artifactId>
-    <version>0.8.10-incubating-SNAPSHOT</version>
+    <version>0.8.11-incubating-SNAPSHOT</version>
     <packaging>pom</packaging>
 
     <properties>
diff --git a/generator/schema2template-maven-plugin/pom.xml b/generator/schema2template-maven-plugin/pom.xml
index 0a934be..ac756e4 100644
--- a/generator/schema2template-maven-plugin/pom.xml
+++ b/generator/schema2template-maven-plugin/pom.xml
@@ -24,12 +24,12 @@
   <parent>
     <groupId>org.apache.odftoolkit</groupId>
     <artifactId>schema2template-pom</artifactId>
-    <version>0.8.10-incubating-SNAPSHOT</version>
+    <version>0.8.11-incubating-SNAPSHOT</version>
   </parent>
   
     <!-- The Basics -->
     <artifactId>schema2template-maven-plugin</artifactId>
-    <version>0.8.10-incubating-SNAPSHOT</version>
+    <version>0.8.11-incubating-SNAPSHOT</version>
     <packaging>maven-plugin</packaging>
     <dependencies>
         <dependency>
diff --git a/generator/schema2template/pom.xml b/generator/schema2template/pom.xml
index 250e761..d5ec050 100644
--- a/generator/schema2template/pom.xml
+++ b/generator/schema2template/pom.xml
@@ -24,12 +24,12 @@
   <parent>
     <groupId>org.apache.odftoolkit</groupId>
     <artifactId>schema2template-pom</artifactId>
-    <version>0.8.10-incubating-SNAPSHOT</version>
+    <version>0.8.11-incubating-SNAPSHOT</version>
   </parent>
   
 	<!-- The Basics -->
 	<artifactId>schema2template</artifactId>
-	<version>0.8.10-incubating-SNAPSHOT</version>
+	<version>0.8.11-incubating-SNAPSHOT</version>
 	<packaging>jar</packaging>
 	<dependencies>
 		<dependency>
@@ -39,7 +39,7 @@
 		<dependency>
 			<groupId>net.java.dev.msv</groupId>
 			<artifactId>msv-core</artifactId>
-            <version>2009.1</version>
+            <version>2013.6.1</version>
 		</dependency>
         <dependency>
             <groupId>xml-apis</groupId>
diff --git a/odfdom/pom.xml b/odfdom/pom.xml
index bb962f4..984fad9 100644
--- a/odfdom/pom.xml
+++ b/odfdom/pom.xml
@@ -25,11 +25,11 @@
 	<parent>
 		<groupId>org.apache.odftoolkit</groupId>
 		<artifactId>odftoolkit</artifactId>
-		<version>0.6.1-incubating-SNAPSHOT</version>
+		<version>0.6.2-incubating-SNAPSHOT</version>
 	</parent>
   
 	<artifactId>odfdom-java</artifactId>
-	<version>0.8.10-incubating-SNAPSHOT</version>
+	<version>0.8.11-incubating-SNAPSHOT</version>
 	<packaging>jar</packaging>
 
 	<dependencies>
@@ -51,20 +51,22 @@
 			<artifactId>junit</artifactId>
 			<scope>test</scope>
 		</dependency>
-		<dependency>
+        <dependency>
+            <groupId>org.apache.jena</groupId>
+            <artifactId>jena-core</artifactId>
+            <version>3.0.1</version>
+        </dependency>
+        <dependency>
 			<groupId>org.apache.jena</groupId>
 			<artifactId>jena-core</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.jena</groupId>
-			<artifactId>jena-core</artifactId>
-			<classifier>tests</classifier>
+			<version>3.0.1</version>
+            <classifier>tests</classifier>
 			<scope>test</scope>
 		</dependency>
 		<dependency>
 			<groupId>net.rootdev</groupId>
 			<artifactId>java-rdfa</artifactId>
-		</dependency>
+		</dependency>        
 		<dependency>
 			<groupId>commons-validator</groupId>
 			<artifactId>commons-validator</artifactId>
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/dom/OdfSchemaDocument.java b/odfdom/src/main/java/org/odftoolkit/odfdom/dom/OdfSchemaDocument.java
index 25188b4..ac59d33 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/dom/OdfSchemaDocument.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/dom/OdfSchemaDocument.java
@@ -49,9 +49,9 @@
 import org.xml.sax.ErrorHandler;
 import org.xml.sax.SAXException;
 
-import com.hp.hpl.jena.rdf.model.Model;
-import com.hp.hpl.jena.rdf.model.ModelFactory;
-import com.hp.hpl.jena.util.ResourceUtils;
+import org.apache.jena.rdf.model.Model;
+import org.apache.jena.rdf.model.ModelFactory;
+import org.apache.jena.util.ResourceUtils;
 import java.io.InputStreamReader;
 
 /**
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/dom/rdfa/BookmarkRDFMetadataExtractor.java b/odfdom/src/main/java/org/odftoolkit/odfdom/dom/rdfa/BookmarkRDFMetadataExtractor.java
index 475514c..8eace64 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/dom/rdfa/BookmarkRDFMetadataExtractor.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/dom/rdfa/BookmarkRDFMetadataExtractor.java
@@ -43,10 +43,10 @@
 import org.w3c.dom.Node;
 import org.xml.sax.Attributes;
 
-import com.hp.hpl.jena.rdf.model.Model;
-import com.hp.hpl.jena.rdf.model.ModelFactory;
-import com.hp.hpl.jena.rdf.model.Property;
-import com.hp.hpl.jena.rdf.model.Resource;
+import org.apache.jena.rdf.model.Model;
+import org.apache.jena.rdf.model.ModelFactory;
+import org.apache.jena.rdf.model.Property;
+import org.apache.jena.rdf.model.Resource;
 
 /**
  * This is a sub class of <code>DefaultElementVisitor</code>, which is used to
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/OdfFileDom.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/OdfFileDom.java
index 32c7af2..b9e49ba 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/OdfFileDom.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/OdfFileDom.java
@@ -58,7 +58,7 @@
 import org.xml.sax.InputSource;
 import org.xml.sax.XMLReader;
 
-import com.hp.hpl.jena.rdf.model.Model;
+import org.apache.jena.rdf.model.Model;
 
 /**
  * The DOM representation of an XML file within the ODF document.
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/OdfPackageDocument.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/OdfPackageDocument.java
index b44e790..0a87a55 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/OdfPackageDocument.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/OdfPackageDocument.java
@@ -23,9 +23,9 @@
  */
 package org.odftoolkit.odfdom.pkg;
 
-import com.hp.hpl.jena.rdf.model.Model;
-import com.hp.hpl.jena.rdf.model.ModelFactory;
-import com.hp.hpl.jena.util.ResourceUtils;
+import org.apache.jena.rdf.model.Model;
+import org.apache.jena.rdf.model.ModelFactory;
+import org.apache.jena.util.ResourceUtils;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.Closeable;
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/rdfa/JenaSink.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/rdfa/JenaSink.java
index 6092cee..680b962 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/rdfa/JenaSink.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/rdfa/JenaSink.java
@@ -1,50 +1,43 @@
 /************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
- * 
+ *
  * Copyright 2008, 2010 Oracle and/or its affiliates. All rights reserved.
- * 
+ *
  * Use is subject to license terms.
- * 
+ *
  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
  * use this file except in compliance with the License. You may obtain a copy
  * of the License at http://www.apache.org/licenses/LICENSE-2.0. You can also
  * obtain a copy of the License at http://odftoolkit.org/docs/license.txt
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * 
+ *
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
  ************************************************************************/
 package org.odftoolkit.odfdom.pkg.rdfa;
 
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
-
 import net.rootdev.javardfa.StatementSink;
-
+import org.apache.jena.rdf.model.Literal;
+import org.apache.jena.rdf.model.Model;
+import org.apache.jena.rdf.model.ModelFactory;
+import org.apache.jena.rdf.model.Property;
+import org.apache.jena.rdf.model.Resource;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
-import org.odftoolkit.odfdom.pkg.OdfFileSaxHandler;
 import org.w3c.dom.Node;
 
-import com.hp.hpl.jena.rdf.model.Literal;
-import com.hp.hpl.jena.rdf.model.Model;
-import com.hp.hpl.jena.rdf.model.ModelFactory;
-import com.hp.hpl.jena.rdf.model.Property;
-import com.hp.hpl.jena.rdf.model.Resource;
-import com.hp.hpl.jena.shared.PrefixMapping.IllegalPrefixException;
-
 /**
  * To cache the Jena RDF triples parsed from RDFaParser
  *
  */
 public class JenaSink implements StatementSink {
 
-//	private OdfFileSaxHandler odf;
 	private Node contextNode;
 	private OdfFileDom mFileDom;
     private Map<String, Resource> bnodeLookup;
@@ -56,17 +49,17 @@
 		this.bnodeLookup = new HashMap<String, Resource>();
     }
 
-    //@Override
+    @Override
     public void start() {
         bnodeLookup = new HashMap<String, Resource>();
     }
 
-    //@Override
+    @Override
     public void end() {
         bnodeLookup = null;
     }
 
-    //@Override
+    @Override
     public void addObject(String subject, String predicate, String object) {
     	Model model =getContextModel();
         Resource s = getResource(model, subject.trim());
@@ -75,7 +68,7 @@
         model.add(s, p, o);
     }
 
-    //@Override
+    @Override
     public void addLiteral(String subject, String predicate, String lex, String lang, String datatype) {
     	if (lex.isEmpty()){
     		return;
@@ -108,15 +101,12 @@
     }
 
     public void addPrefix(String prefix, String uri) {
-//    	Model model =getContextModel();
-//        try {
-//            model.setNsPrefix(prefix.trim(), uri.trim());
-//        } catch (IllegalPrefixException e) {
-//        }
+    	Model model =getContextModel();
+        model.setNsPrefix(prefix.trim(), uri.trim());
     }
 
     public void setBase(String base) {}
-    
+
 	private Model getContextModel() {
 		Map<Node, Model> cache = this.mFileDom.getInContentMetadataCache();
 		Model model = cache.get(contextNode);
@@ -151,8 +141,8 @@
 	public void setContext(EvalContext context) {
 		this.context = context;
 	}
-		
-	
+
+
 //    // Namespace methods
 //    public void setNamespaceURI(String prefix, String uri) {
 //        if (uri.length() == 0) {
diff --git a/odfdom/src/test/java/org/odftoolkit/odfdom/pkg/GRDDLTest.java b/odfdom/src/test/java/org/odftoolkit/odfdom/pkg/GRDDLTest.java
index 1cc6bdc..b6eac49 100644
--- a/odfdom/src/test/java/org/odftoolkit/odfdom/pkg/GRDDLTest.java
+++ b/odfdom/src/test/java/org/odftoolkit/odfdom/pkg/GRDDLTest.java
@@ -40,8 +40,8 @@
 import org.odftoolkit.odfdom.utils.ResourceUtilities;
 import org.xml.sax.InputSource;
 
-import com.hp.hpl.jena.rdf.model.Model;
-import com.hp.hpl.jena.rdf.model.test.ModelTestBase;
+import org.apache.jena.rdf.model.Model;
+import org.apache.jena.rdf.model.test.ModelTestBase;
 
 import java.util.logging.Level;
 import org.junit.Assert;
diff --git a/odfdom/src/test/java/org/odftoolkit/odfdom/pkg/RDFMetadataTest.java b/odfdom/src/test/java/org/odftoolkit/odfdom/pkg/RDFMetadataTest.java
index 529f56b..4bd31f3 100644
--- a/odfdom/src/test/java/org/odftoolkit/odfdom/pkg/RDFMetadataTest.java
+++ b/odfdom/src/test/java/org/odftoolkit/odfdom/pkg/RDFMetadataTest.java
@@ -42,12 +42,12 @@
 import org.odftoolkit.odfdom.utils.ResourceUtilities;
 import org.w3c.dom.Node;
 
-import com.hp.hpl.jena.rdf.model.Literal;
-import com.hp.hpl.jena.rdf.model.Model;
-import com.hp.hpl.jena.rdf.model.Statement;
-import com.hp.hpl.jena.rdf.model.StmtIterator;
-import com.hp.hpl.jena.rdf.model.test.ModelTestBase;
-import com.hp.hpl.jena.util.PrintUtil;
+import org.apache.jena.rdf.model.Literal;
+import org.apache.jena.rdf.model.Model;
+import org.apache.jena.rdf.model.Statement;
+import org.apache.jena.rdf.model.StmtIterator;
+import org.apache.jena.rdf.model.test.ModelTestBase;
+import org.apache.jena.util.PrintUtil;
 
 public class RDFMetadataTest extends ModelTestBase {
 
diff --git a/pom.xml b/pom.xml
index 9abb8e9..4889e03 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.apache.odftoolkit</groupId>
     <artifactId>odftoolkit</artifactId>
-    <version>0.6.1-incubating-SNAPSHOT</version>
+    <version>0.6.2-incubating-SNAPSHOT</version>
     <packaging>pom</packaging>
 
     <parent>
@@ -56,19 +56,14 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.jena</groupId>
-                <artifactId>jena-arq</artifactId>
-                <version>2.9.4</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.jena</groupId>
                 <artifactId>jena-core</artifactId>
-                <version>2.7.4</version>
+                <version>3.0.1</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.jena</groupId>
                 <artifactId>jena-core</artifactId>
                 <classifier>tests</classifier>
-                <version>2.7.4</version>
+                <version>3.0.1</version>
             </dependency>
             <dependency>
                 <groupId>net.rootdev</groupId>
@@ -78,7 +73,7 @@
             <dependency>
                 <groupId>commons-validator</groupId>
                 <artifactId>commons-validator</artifactId>
-                <version>1.4.0</version>
+                <version>1.5.0</version>
             </dependency>
             <dependency>
                 <groupId>commons-fileupload</groupId>
@@ -88,7 +83,7 @@
             <dependency>
                 <groupId>net.java.dev.msv</groupId>
                 <artifactId>msv-core</artifactId>
-                <version>2011.1</version>
+                <version>2013.6.1</version>
             </dependency>
             <dependency>
                 <groupId>org.iso_relax.verifier.jaxp.validation</groupId>
diff --git a/simple/pom.xml b/simple/pom.xml
index 75c9e80..0f49a17 100644
--- a/simple/pom.xml
+++ b/simple/pom.xml
@@ -24,18 +24,18 @@
     <parent>
       <groupId>org.apache.odftoolkit</groupId>
       <artifactId>odftoolkit</artifactId>
-      <version>0.6.1-incubating-SNAPSHOT</version>
+      <version>0.6.2-incubating-SNAPSHOT</version>
     </parent>
 
     <artifactId>simple-odf</artifactId>
-    <version>0.8.1-incubating-SNAPSHOT</version>
+    <version>0.8.2-incubating-SNAPSHOT</version>
     <packaging>jar</packaging>
 
     <dependencies>
         <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>odfdom-java</artifactId>
-           <version>0.8.10-incubating-SNAPSHOT</version>
+           <version>0.8.11-incubating-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>xerces</groupId>
@@ -117,8 +117,7 @@
                     <maxmemory>1024m</maxmemory>
                     <links>
                         <link>http://download.oracle.com/javase/6/docs/api/</link>
-                        <link>http://xerces.apache.org/xerces-j/apiDocs/</link>
-                        <link>http://odfdom.odftoolkit.org/0.8.7/odfdom/apidocs/</link>
+                        <link>http://xerces.apache.org/xerces-j/apiDocs/</link>                        
                     </links>
                     <splitindex>true</splitindex>
                     <windowtitle>Simple ODF v${project.version} - http://odftoolkit</windowtitle>
diff --git a/taglets/pom.xml b/taglets/pom.xml
index 00a1b38..a07359c 100644
--- a/taglets/pom.xml
+++ b/taglets/pom.xml
@@ -24,11 +24,11 @@
     <parent>
         <groupId>org.apache.odftoolkit</groupId>
         <artifactId>odftoolkit</artifactId>
-        <version>0.6.1-incubating-SNAPSHOT</version>
+        <version>0.6.2-incubating-SNAPSHOT</version>
     </parent>
 
     <artifactId>taglets</artifactId>
-    <version>0.8.10-incubating-SNAPSHOT</version>
+    <version>0.8.11-incubating-SNAPSHOT</version>
     <packaging>jar</packaging>
 
     <!-- Build Settings -->
diff --git a/validator/pom.xml b/validator/pom.xml
index 568a01f..3e275e1 100644
--- a/validator/pom.xml
+++ b/validator/pom.xml
@@ -24,7 +24,7 @@
 	<parent>
 		<groupId>org.apache.odftoolkit</groupId>
 		<artifactId>odftoolkit</artifactId>
-		<version>0.6.1-incubating-SNAPSHOT</version>
+		<version>0.6.2-incubating-SNAPSHOT</version>
 	</parent>
 	<artifactId>odfvalidator</artifactId>
 	<version>1.1.7-incubating-SNAPSHOT</version>
@@ -34,7 +34,7 @@
 		<dependency>
 			<groupId>${project.groupId}</groupId>
 			<artifactId>odfdom-java</artifactId>
-			<version>0.8.10-incubating-SNAPSHOT</version>
+			<version>0.8.11-incubating-SNAPSHOT</version>
 		</dependency>
 		<dependency>
 			<groupId>commons-fileupload</groupId>
diff --git a/xslt-runner-task/pom.xml b/xslt-runner-task/pom.xml
index d3847c7..0843e0a 100644
--- a/xslt-runner-task/pom.xml
+++ b/xslt-runner-task/pom.xml
@@ -22,12 +22,12 @@
   <parent>
     <groupId>org.apache.odftoolkit</groupId>
     <artifactId>odftoolkit</artifactId>
-    <version>0.6.1-incubating-SNAPSHOT</version>
+    <version>0.6.2-incubating-SNAPSHOT</version>
   </parent>
 
   <artifactId>xslt-runner-task</artifactId>
   <name>ODF XSLT-Runner Ant Task</name>
-  <version>1.2.3-incubating-SNAPSHOT</version>
+  <version>1.2.4-incubating-SNAPSHOT</version>
   
   <organization>
     <name>The Apache Software Foundation</name>
@@ -37,7 +37,7 @@
 	<dependency>
       <groupId>${project.groupId}</groupId>
       <artifactId>xslt-runner</artifactId>
-      <version>1.2.3-incubating-SNAPSHOT</version>
+      <version>1.2.4-incubating-SNAPSHOT</version>
 	</dependency>	
     <dependency>
       <groupId>org.apache.ant</groupId>
diff --git a/xslt-runner/pom.xml b/xslt-runner/pom.xml
index 829ff5b..1692b04 100644
--- a/xslt-runner/pom.xml
+++ b/xslt-runner/pom.xml
@@ -22,12 +22,12 @@
   <parent>
     <groupId>org.apache.odftoolkit</groupId>
     <artifactId>odftoolkit</artifactId>
-    <version>0.6.1-incubating-SNAPSHOT</version>
+    <version>0.6.2-incubating-SNAPSHOT</version>
   </parent>
 
   <artifactId>xslt-runner</artifactId>
   <name>ODF XSLT-Runner</name>
-  <version>1.2.3-incubating-SNAPSHOT</version>
+  <version>1.2.4-incubating-SNAPSHOT</version>
   
   <organization>
     <name>The Apache Software Foundation</name>
@@ -38,7 +38,7 @@
 	<dependency>
       <groupId>${project.groupId}</groupId>
 	  <artifactId>odfdom-java</artifactId>
-      <version>0.8.10-incubating-SNAPSHOT</version>
+      <version>0.8.11-incubating-SNAPSHOT</version>
 	</dependency>
     <dependency>
         <groupId>xml-apis</groupId>
