incubator-odf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From svanteschub...@apache.org
Subject [odftoolkit] branch trunk updated: ODFTOOLKIT-478 - Adding namespaces to manifest and digital signature DOM by fix & refactoring of generator
Date Tue, 02 Oct 2018 11:12:06 GMT
This is an automated email from the ASF dual-hosted git repository.

svanteschubert pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/odftoolkit.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 99975f3  ODFTOOLKIT-478 - Adding namespaces to manifest and digital signature DOM by fix & refactoring of generator
99975f3 is described below

commit 99975f3be40fc1c428167a3db7a9a63038acfa9f
Author: Svante Schubert <Svante.Schubert@gmail.com>
AuthorDate: Tue Oct 2 13:11:40 2018 +0200

    ODFTOOLKIT-478 - Adding namespaces to manifest and digital signature DOM by fix & refactoring of generator
---
 generator/schema2template/pom.xml                  |  11 ++-
 .../schema2template/example/odf/OdfHelper.java     |  63 +++++++-----
 .../schema2template/model/NamespaceDictionary.java |   6 +-
 .../java/schema2template/model/PuzzlePieceSet.java |   6 +-
 .../pkg/odfdom-dsig-attribute-template.vm          |  43 +++++----
 .../pkg/odfdom-dsig-element-template.vm            |  79 +++++++++------
 .../pkg/odfdom-manifest-attribute-template.vm      |  39 ++++----
 .../pkg/odfdom-manifest-element-template.vm        |  66 ++++++++-----
 ...kg-output-files.vm => pkg-dsig-output-files.vm} | 107 +++++++++------------
 ...utput-files.vm => pkg-manifest-output-files.vm} | 106 +++++++++-----------
 .../odftoolkit/odfdom/pkg/OdfPackageNamespace.java |   6 +-
 .../odfdom/pkg/dsig/DocumentSignaturesElement.java |  18 ++--
 .../odfdom/pkg/dsig/SignatureElement.java          |  14 ++-
 .../odfdom/pkg/dsig/VersionAttribute.java          |   4 +-
 .../odfdom/pkg/manifest/AlgorithmElement.java      |  13 ++-
 .../pkg/manifest/AlgorithmNameAttribute.java       |   4 +-
 .../odfdom/pkg/manifest/ChecksumAttribute.java     |   6 +-
 .../odfdom/pkg/manifest/ChecksumTypeAttribute.java |   4 +-
 .../odfdom/pkg/manifest/EncryptionDataElement.java |  73 +++++---------
 .../odfdom/pkg/manifest/FileEntryElement.java      |  29 +++---
 .../odfdom/pkg/manifest/FullPathAttribute.java     |   6 +-
 .../manifest/InitialisationVectorAttribute.java    |   6 +-
 .../pkg/manifest/IterationCountAttribute.java      |   6 +-
 .../odfdom/pkg/manifest/KeyDerivationElement.java  |  17 ++--
 .../pkg/manifest/KeyDerivationNameAttribute.java   |   4 +-
 .../odfdom/pkg/manifest/KeySizeAttribute.java      |   6 +-
 .../odfdom/pkg/manifest/ManifestElement.java       |  21 ++--
 .../odfdom/pkg/manifest/MediaTypeAttribute.java    |   6 +-
 .../odfdom/pkg/manifest/OdfManifestDom.java        |  21 ++--
 .../pkg/manifest/PreferredViewModeAttribute.java   |   4 +-
 .../odfdom/pkg/manifest/SaltAttribute.java         |   6 +-
 .../odfdom/pkg/manifest/SizeAttribute.java         |   6 +-
 .../pkg/manifest/StartKeyGenerationElement.java    |  13 ++-
 .../manifest/StartKeyGenerationNameAttribute.java  |   4 +-
 .../odfdom/pkg/manifest/VersionAttribute.java      |   4 +-
 35 files changed, 456 insertions(+), 371 deletions(-)

diff --git a/generator/schema2template/pom.xml b/generator/schema2template/pom.xml
index dd73c34..972b2ef 100644
--- a/generator/schema2template/pom.xml
+++ b/generator/schema2template/pom.xml
@@ -32,10 +32,15 @@
 	<version>0.9.0-incubating-SNAPSHOT</version>
 	<packaging>jar</packaging>
 	<dependencies>
+        <dependency>
+            <groupId>org.apache.velocity</groupId>
+            <artifactId>velocity-engine-core</artifactId>
+            <version>2.0</version>
+        </dependency>
 		<dependency>
-			<groupId>org.apache.velocity</groupId>
-			<artifactId>velocity</artifactId>
-		</dependency>
+			<groupId>xerces</groupId>
+			<artifactId>xercesImpl</artifactId>
+		</dependency>        
 		<dependency>
 			<groupId>net.java.dev.msv</groupId>
 			<artifactId>msv-core</artifactId>
diff --git a/generator/schema2template/src/main/java/schema2template/example/odf/OdfHelper.java b/generator/schema2template/src/main/java/schema2template/example/odf/OdfHelper.java
index 494d77c..65ca307 100644
--- a/generator/schema2template/src/main/java/schema2template/example/odf/OdfHelper.java
+++ b/generator/schema2template/src/main/java/schema2template/example/odf/OdfHelper.java
@@ -110,8 +110,10 @@ public class OdfHelper {
 	private static final String PYTHON_OUTPUT_FILES = "target" + File.separator + "python-output-files.xml";
 	private static final String DOM_OUTPUT_FILES_TEMPLATE = "dom-output-files.vm";
 	private static final String DOM_OUTPUT_FILES = "target" + File.separator + "dom-output-files.xml";
-	private static final String PKG_OUTPUT_FILES_TEMPLATE = "pkg-output-files.vm";
-	private static final String PKG_OUTPUT_FILES = "target" + File.separator + "pkg-output-files.xml";
+	private static final String PKG_MANIFEST_OUTPUT_FILES_TEMPLATE = "pkg-manifest-output-files.vm";
+	private static final String PKG_MANIFEST_OUTPUT_FILES = "target" + File.separator + "pkg-manifest-output-files.xml";
+	private static final String PKG_DSIG_OUTPUT_FILES_TEMPLATE = "pkg-dsig-output-files.vm";
+	private static final String PKG_DSIG_OUTPUT_FILES = "target" + File.separator + "pkg-dsig-output-files.xml";
 	private static XMLModel mOdf12SignatureSchemaModel;
 	private static XMLModel mOdf12ManifestSchemaModel;
 	private static XMLModel mOdf12SchemaModel;
@@ -154,9 +156,9 @@ public class OdfHelper {
 		initialize();
 
 		// ODF 1.2 Code Generation
-		fillTemplates(odfDomResourceDir, mOdf12Root, DOM_OUTPUT_FILES_TEMPLATE, DOM_OUTPUT_FILES);
-		fillTemplates(odfPkgResourceDir, mOdf12SignatureRoot, PKG_OUTPUT_FILES_TEMPLATE, PKG_OUTPUT_FILES);
-		fillTemplates(odfPkgResourceDir, mOdf12ManifestRoot, PKG_OUTPUT_FILES_TEMPLATE, PKG_OUTPUT_FILES);
+        fillTemplates(odfDomResourceDir, mOdf12Root, DOM_OUTPUT_FILES_TEMPLATE, DOM_OUTPUT_FILES, mOdf12SchemaModel);
+        fillTemplates(odfPkgResourceDir, mOdf12ManifestRoot, PKG_MANIFEST_OUTPUT_FILES_TEMPLATE, PKG_MANIFEST_OUTPUT_FILES, mOdf12ManifestSchemaModel);
+        fillTemplates(odfPkgResourceDir, mOdf12SignatureRoot, PKG_DSIG_OUTPUT_FILES_TEMPLATE, PKG_DSIG_OUTPUT_FILES, mOdf12SignatureSchemaModel);
 	}
 
 	public static void main(String[] args) throws Exception {
@@ -164,14 +166,14 @@ public class OdfHelper {
 		initialize();
 
 		// ODF 1.2 HTML Reference (yet without BNF nor images)
-		fillTemplates(odfReferenceResourceDir, mOdf12Root, REFERENCE_OUTPUT_FILES_TEMPLATE, REFERENCE_OUTPUT_FILES);
+		fillTemplates(odfReferenceResourceDir, mOdf12Root, REFERENCE_OUTPUT_FILES_TEMPLATE, REFERENCE_OUTPUT_FILES, mOdf12SchemaModel);
 		// ODF 1.2 Python (The generated Python source is from a former colleague and might not work any longer..)
-		fillTemplates(odfPythonResourceDir, mOdf12Root, PYTHON_OUTPUT_FILES_TEMPLATE, PYTHON_OUTPUT_FILES);
+		fillTemplates(odfPythonResourceDir, mOdf12Root, PYTHON_OUTPUT_FILES_TEMPLATE, PYTHON_OUTPUT_FILES, mOdf12SchemaModel);
 
 		// ODF 1.2 Code Generation
-		fillTemplates(odfDomResourceDir, mOdf12Root, DOM_OUTPUT_FILES_TEMPLATE, DOM_OUTPUT_FILES);
-		fillTemplates(odfPkgResourceDir, mOdf12ManifestRoot, PKG_OUTPUT_FILES_TEMPLATE, PKG_OUTPUT_FILES);
-		fillTemplates(odfPkgResourceDir, mOdf12SignatureRoot, PKG_OUTPUT_FILES_TEMPLATE, PKG_OUTPUT_FILES);
+		fillTemplates(odfDomResourceDir, mOdf12Root, DOM_OUTPUT_FILES_TEMPLATE, DOM_OUTPUT_FILES, mOdf12SchemaModel);
+        fillTemplates(odfPkgResourceDir, mOdf12ManifestRoot, PKG_MANIFEST_OUTPUT_FILES_TEMPLATE, PKG_MANIFEST_OUTPUT_FILES, mOdf12ManifestSchemaModel);
+		fillTemplates(odfPkgResourceDir, mOdf12SignatureRoot, PKG_DSIG_OUTPUT_FILES_TEMPLATE, PKG_DSIG_OUTPUT_FILES, mOdf12SignatureSchemaModel);
 	}
 
 	private static void initialize() throws Exception {
@@ -205,7 +207,7 @@ public class OdfHelper {
 		LOG.info("Finished initilization..");
 	}
 
-	private static void fillTemplates(String sourceDir, Expression root, String outputRuleTemplate, String outputRuleFile) throws Exception {
+	private static void fillTemplates(String sourceDir, Expression root, String outputRuleTemplate, String outputRuleFile, XMLModel model) throws Exception {
 		// intialising template engine (ie. Velocity)
 		Properties props = new Properties();
 		props.setProperty("file.resource.loader.path", sourceDir);
@@ -213,12 +215,12 @@ public class OdfHelper {
 		ve.init();
 
 		// Create output-files.xml
-		createOutputFileList(ve, outputRuleTemplate, outputRuleFile);
+		createOutputFileList(ve, outputRuleTemplate, outputRuleFile, model);
 		LOG.info("output-files.xml created done.");
 
 		// Process output-files.xml, create output files
 		LOG.fine("Processing output files... ");
-		processFileList(ve, root, outputRuleFile);
+		processFileList(ve, root, outputRuleFile, model);
 		LOG.fine("DONE.\n");
 	}
 
@@ -264,12 +266,26 @@ public class OdfHelper {
 	 * @throws Exception
 	 */
 	public static Expression loadSchema(File rngFile) throws Exception {
-		SAXParserFactory factory = SAXParserFactory.newInstance();
-		factory.setNamespaceAware(true);
+
+   		SAXParserFactory saxFactory = new org.apache.xerces.jaxp.SAXParserFactoryImpl();
+		saxFactory.setNamespaceAware(true);
+		saxFactory.setValidating(false);
+		try {
+			saxFactory.setXIncludeAware(false);
+			saxFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
+			// removing potential vulnerability: see https://www.owasp.org/index.php/XML_External_Entity_%28XXE%29_Processing
+			saxFactory.setFeature("http://xml.org/sax/features/external-general-entities", false);
+			saxFactory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
+			saxFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
+		} catch (Exception ex) {
+			Logger.getLogger(OdfHelper.class.getName()).log(Level.SEVERE, null, ex);
+			throw new RuntimeException();
+		}
+
 		// Parsing the Schema with MSV
 		String absolutePath = rngFile.getAbsolutePath();
 		com.sun.msv.reader.util.IgnoreController ignoreController = new com.sun.msv.reader.util.IgnoreController();
-		Expression root = RELAXNGReader.parse(absolutePath, factory, ignoreController).getTopLevel();
+		Expression root = RELAXNGReader.parse(absolutePath, saxFactory, ignoreController).getTopLevel();
 
 
 		if (root == null) {
@@ -280,9 +296,6 @@ public class OdfHelper {
 
 	private static VelocityContext getContext(String contextStr, String param) {
 		VelocityContext context = new VelocityContext();
-		context.put("signaturemodel", mOdf12SignatureSchemaModel);
-		context.put("manifestmodel", mOdf12ManifestSchemaModel);
-		context.put("model", mOdf12SchemaModel);
 		context.put("oldmodel", mOdf11SchemaModel);
 		context.put("odfmodel", mOdfModel);
 		context.put("javamodel", mJavaModel);
@@ -291,8 +304,9 @@ public class OdfHelper {
 		return context;
 	}
 
-	private static void createOutputFileList(VelocityEngine ve, String template, String output) throws Exception {
+	private static void createOutputFileList(VelocityEngine ve, String template, String output, XMLModel model) throws Exception {
 		VelocityContext context = getContext(null, null);
+        context.put("model", model);
 		File parentPatch = new File(output).getParentFile();
 		if (!parentPatch.exists()) {
 			parentPatch.mkdirs();
@@ -328,7 +342,7 @@ public class OdfHelper {
 		}
 	}
 
-	public static void processFileList(VelocityEngine ve, Expression root, String outputRuleFile) throws Exception {
+	public static void processFileList(VelocityEngine ve, Expression root, String outputRuleFile, XMLModel model) throws Exception {
 		File outputFiles = new File(outputRuleFile);
 		List<OutputFileListEntry> fl = OutputFileListHandler.readFileListFile(outputFiles);
 
@@ -337,15 +351,18 @@ public class OdfHelper {
 				case PATH:
 					break;
 				case FILE:
-					LOG.log(Level.INFO, "Processing line{0}: Generating file {1}\n", new Object[]{f.getLineNumber(), generateFilename(f.getAttribute("path"))});
+					LOG.log(Level.INFO, "Processing line {0}: Generating file {1}\n", new Object[]{f.getLineNumber(), generateFilename(f.getAttribute("path"))});
 					String odfContextStr = f.getAttribute("context");
 					String param = f.getAttribute("param");
 					VelocityContext context = getContext(odfContextStr, param);
 					if (context == null) {
 						throw new RuntimeException("Error in output-files.xml, line " + f.getLineNumber() + ": no or invalid odf-scope");
-					}
+					}else{
+                        context.put("model", model);
+                    }
 
 					File out = new File(outputRoot + File.separator + generateFilename(f.getAttribute("path"))).getCanonicalFile();
+                    LOG.info("Absolute path of generated file: " + out.getAbsolutePath());
 					ensureParentFolders(out);
 					FileWriter fileout = new FileWriter(out);
 					String encoding = "utf-8";
diff --git a/generator/schema2template/src/main/java/schema2template/model/NamespaceDictionary.java b/generator/schema2template/src/main/java/schema2template/model/NamespaceDictionary.java
index ca3f877..ac2b976 100644
--- a/generator/schema2template/src/main/java/schema2template/model/NamespaceDictionary.java
+++ b/generator/schema2template/src/main/java/schema2template/model/NamespaceDictionary.java
@@ -109,8 +109,10 @@ public class NamespaceDictionary {
 	dict.put("grddl","http://www.w3.org/2003/g/data-view#");
 	dict.put("xhtml","http://www.w3.org/1999/xhtml");
 	dict.put("smil","urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0");
-        dict.put("xml", "http://www.w3.org/XML/1998/namespace");
-
+    dict.put("xml", "http://www.w3.org/XML/1998/namespace");
+    dict.put("manifest", "urn:oasis:names:tc:opendocument:xmlns:manifest:1.0");
+    dict.put("dsig", "urn:oasis:names:tc:opendocument:xmlns:digitalsignature:1.0");
+	dict.put("ds", "http://www.w3.org/2000/09/xmldsig#");
         return dict;
     }
 
diff --git a/generator/schema2template/src/main/java/schema2template/model/PuzzlePieceSet.java b/generator/schema2template/src/main/java/schema2template/model/PuzzlePieceSet.java
index 5e45505..42d5768 100644
--- a/generator/schema2template/src/main/java/schema2template/model/PuzzlePieceSet.java
+++ b/generator/schema2template/src/main/java/schema2template/model/PuzzlePieceSet.java
@@ -61,7 +61,7 @@ public class PuzzlePieceSet implements QNamedPuzzleComponent, Collection<PuzzleP
             throw new RuntimeException("Attempt to " + plannedAction + " of empty DefinitionSet ");
         }
     }
-    
+
     private void assertMultiples(String plannedAction) {
         assertNotEmpty(plannedAction);
         PuzzlePiece first = first();
@@ -85,7 +85,7 @@ public class PuzzlePieceSet implements QNamedPuzzleComponent, Collection<PuzzleP
     public int hashCode() {
         return mDefinitions.hashCode();
     }
-    
+
     private PuzzlePiece first() {
         return this.iterator().next();
     }
@@ -139,7 +139,7 @@ public class PuzzlePieceSet implements QNamedPuzzleComponent, Collection<PuzzleP
         }
         return retval;
     }
-    
+
     /**
      * Make PuzzlePieceSet immutable. Cannot be undone.
      *
diff --git a/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-dsig-attribute-template.vm b/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-dsig-attribute-template.vm
index 4c4a92f..b6e29dc 100644
--- a/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-dsig-attribute-template.vm
+++ b/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-dsig-attribute-template.vm
@@ -18,18 +18,17 @@
 ## under the License.
 ##
 ##################################################################
-## Template to create the list of signature artefacts which are to be generated
+
+## Template to create the list of artifacts which are to be generated
 ##
 ## Documentation of template development can be found in local file
 ## TemplateHelp.html.
 ##
 ## Returns PuzzleComponent covering a PuzzlePiece or PuzzlePieceSet dependent if attribute is multiple times defined
-## Template to create the list of artefacts which are to be generated
-#set($attribute = $signaturemodel.getAttribute($context))
-#set($NS = "urn:oasis:names:tc:opendocument:xmlns:digitalsignature:1.0")
-#set ($PREFIX = "dsig")
-#set($localname = ${signaturemodel.extractLocalname($attribute)})
-#set($classname = "${signaturemodel.camelCase($attribute)}Attribute")
+#set($attribute = $model.getAttribute($context))
+#set($NS = $attribute.getNamespace())
+#set($localname = ${model.extractLocalname($attribute)})
+#set($classname = "${model.camelCase($attribute.getLocalName())}Attribute")
 #set ($valueobject = "String")
 ##
 #set($datatypes = ${attribute.getDatatypes().withoutMultiples()})
@@ -95,22 +94,30 @@ import org.odftoolkit.odfdom.pkg.OdfElement;
 #end
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
 
+#if ($hasDefaultValue and $defaultValueSet.size()>1)
+#foreach ($parent in ${attribute.getParents().withoutMultiples()})
+#if ($model.getDefaultAttributeValue($attribute, $parent))
+import org.odftoolkit.odfdom.pkg.dsig.${model.camelCase($parent.getLocalName())}Element;
+#end
+#end
+#end
 /**
  * DOM implementation of OpenDocument attribute  {@odf.attribute ${attribute.getQName()}}.
  *
  */
 public class $classname extends OdfAttribute {
 
-	public static final OdfName ATTRIBUTE_NAME = OdfName.newName("${NS}", "${PREFIX}:${attribute}");
+	public static final OdfName ATTRIBUTE_NAME = OdfName.newName(OdfPackageNamespace.${NS.toUpperCase()}, "$localname");
 #if ($hasDefaultValue)
 #if ($defaultValueSet.size()>1)
 #foreach ($defaultValue in $defaultValueSet)
-#set ($constant = $signaturemodel.constantCase($defaultValue))
+#set ($constant = $model.constantCase($defaultValue))
 #if (($defaultValue=="true" or $defaultValue=="false") and $enum == false)
-	public static final String DEFAULT_VALUE_${signaturemodel.escapeKeyword($constant)}= "$defaultValue";
+	public static final String DEFAULT_VALUE_${model.escapeKeyword($constant)}= "$defaultValue";
 #else
-	public static final String DEFAULT_VALUE_${signaturemodel.escapeKeyword($constant)}=	Value.${signaturemodel.escapeKeyword($constant)}.toString();
+	public static final String DEFAULT_VALUE_${model.escapeKeyword($constant)}=	Value.${model.escapeKeyword($constant)}.toString();
 #end
 #end
 #else
@@ -160,8 +167,8 @@ public class $classname extends OdfAttribute {
 #if (${value.toString().length()} == 1)
 #set ($constant = $value)
 #else
-#set ($constant = $signaturemodel.constantCase($value))
-#end${separator}${signaturemodel.escapeKeyword($constant)}("${signaturemodel.escapeLiteral($value)}")#set ($separator=", ")
+#set ($constant = $model.constantCase($value))
+#end${separator}${model.escapeKeyword($constant)}("${model.escapeLiteral($value)}")#set ($separator=", ")
 #end ;
 
 		private String mValue;
@@ -217,7 +224,7 @@ public class $classname extends OdfAttribute {
 	/**
 	 * @param value The <code>${simplevalue}</code> value of the attribute.
 	 */
-	public void set${signaturemodel.camelCase($simplevalue)}Value(${simplevalue} value) {
+	public void set${model.camelCase($simplevalue)}Value(${simplevalue} value) {
 		super.setValue(String.valueOf(value));
 	}
 
@@ -227,7 +234,7 @@ public class $classname extends OdfAttribute {
 	public ${simplevalue} ${simplevalue}Value() {
 		String val = super.getValue();
 		try {
-			return ${valueobject}.parse${signaturemodel.camelCase($simplevalue)}(val);
+			return ${valueobject}.parse${model.camelCase($simplevalue)}(val);
 		} catch (NumberFormatException e) {
 			// TODO: validation handling/logging
 			throw (e);
@@ -311,13 +318,13 @@ public class $classname extends OdfAttribute {
 #if ($defaultValueSet.size()>1)
 #foreach ($parent in ${attribute.getParents().withoutMultiples()})
 #if ($odfmodel.getDefaultAttributeValue($attribute, $parent))
-			if (parentElement instanceof ${signaturemodel.camelCase($parent)}Element) {
-				defaultValue = "${signaturemodel.escapeLiteral($odfmodel.getDefaultAttributeValue($attribute, $parent))}";
+			if (parentElement instanceof ${model.camelCase($parent)}Element) {
+				defaultValue = "${model.escapeLiteral($odfmodel.getDefaultAttributeValue($attribute, $parent))}";
 			}
 #end
 #end
 #else
-			defaultValue = "${signaturemodel.escapeLiteral($uniqueDefaultValue)}";
+			defaultValue = "${model.escapeLiteral($uniqueDefaultValue)}";
 #end
 		}
 		return defaultValue;
diff --git a/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-dsig-element-template.vm b/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-dsig-element-template.vm
index 0ebb09a..eca6a7a 100644
--- a/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-dsig-element-template.vm
+++ b/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-dsig-element-template.vm
@@ -23,15 +23,9 @@
 ## Documentation of template development can be found in local file
 ## TemplateHelp.html.
 ##
-#set ($element = ${signaturemodel.getElement($context)})
-#if ($element == "Signature")
-	#set ($NS = "http://www.w3.org/2000/09/xmldsig#")
-	#set ($PREFIX = "ds")
-#else
-	#set ($NS = "urn:oasis:names:tc:opendocument:xmlns:digitalsignature:1.0")
-	#set ($PREFIX = "dsig")
-#end
-###set ($NS = "${element.getNamespace()}")
+#set ($element = ${model.getElement($context)})
+#set ($oldelement = ${oldmodel.getElement($context)})
+#set ($NS = ${element.getNamespace()})
 #set ($classname = "${model.camelCase($element)}Element")
 ##
 ## Set child element and child attributes
@@ -79,7 +73,37 @@ package org.odftoolkit.odfdom.pkg.dsig;
 import org.odftoolkit.odfdom.pkg.OdfElement;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
+#set ($element = ${model.getElement($context)})
+#set ($oldelement = ${oldmodel.getElement($context)})
+#set ($NS = ${element.getNamespace()})
+#set ($classname = "${model.camelCase($element.getLocalName())}Element")
 
+#foreach ($child in $children)
+#if ($child == "*")
+    #set ($anychild = true)
+#else
+    #set ($childNS = ${child.getNamespace()})
+    #set ($childClassname = "${model.camelCase($child.getLocalName())}Element")
+#if ($childNS != $NS)
+## we call it all DSIG no DS folder..
+## WE DO NOT IMPORT SAME PACKAGE FOLDER
+##import org.odftoolkit.odfdom.pkg.dsig.$childClassname;
+#end
+#end
+#end
+##
+#foreach ($child in $attributes)
+#if ($child == "*")
+#set ($anyattribute = true)
+#else
+#set ($childNS = ${child.getNamespace()})
+#set ($childClassname = "${model.camelCase($child.getLocalName())}Attribute")
+#if (!$childNS.equals("dsig")) ## Do not generate "import" for the same package!
+import org.odftoolkit.odfdom.pkg.${childNS}.$childClassname;
+#end
+#end
+#end
 ##
 ## If there is a base class which is not in the current package
 #if ($baseimport)
@@ -103,7 +127,7 @@ import ${baseimport};
  */
 public class $classname extends $baseclassname {
 
-	public static final OdfName ELEMENT_NAME = OdfName.newName("${NS}", "${PREFIX}:${element}");
+	public static final OdfName ELEMENT_NAME = OdfName.newName(OdfPackageNamespace.${NS.toUpperCase()}, "${element.getLocalName()}");
 
 	/**
 	 * Create the instance of <code>$classname</code>
@@ -119,6 +143,7 @@ public class $classname extends $baseclassname {
 	 *
 	 * @return  return   <code>OdfName</code> the name of element {@odf.element ${context}}.
 	 */
+    @Override
 	public OdfName getOdfName() {
 		return ELEMENT_NAME;
 	}
@@ -134,7 +159,7 @@ public class $classname extends $baseclassname {
 ## ---------------------------------------------------
 ##
 #foreach ($attr in $attributes)
-#set($attri = ${signaturemodel.getAttribute($attr.getQName())})
+#set($attri = ${model.getAttribute($attr.getQName())})
 #set ($valueObject = "String")
 #set ($simpleValue = "")
 #set ($dataTypes = ${attri.getDatatypes().withoutMultiples()})
@@ -169,8 +194,8 @@ public class $classname extends $baseclassname {
 #if ($attr != "*")
 #set ($attribute = ${attr.withMultiples()})
 #set ($aNS = ${attribute.getNamespace()})
-#set ($aClassname = "${signaturemodel.camelCase($attribute)}Attribute")
-#set ($aParam = "${signaturemodel.javaCase($attribute)}Value")
+#set ($aClassname = "${model.camelCase($attribute.getLocalName())}Attribute")
+#set ($aParam = "${model.javaCase($attribute.getLocalName())}Value")
 
 	/**
 	 * Receives the value of the ODFDOM attribute representation <code>$aClassname</code> , See {@odf.attribute ${attribute.getQName()}}
@@ -182,7 +207,7 @@ public class $classname extends $baseclassname {
 	 * @return - the <code>$valueObject</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
 	 */
 	public $valueObject get${aClassname}() {
-		$aClassname attr = ($aClassname) getOdfAttribute(${aClassname}.ATTRIBUTE_NAME);
+		$aClassname attr = ($aClassname) getOdfAttribute(OdfPackageNamespace.${aNS.toUpperCase()}, "${attribute.getLocalName()}");
 		if (attr != null) {
 #if ($simpleValue!="")
 			return ${valueObject}.valueOf(attr.${simpleValue}Value());
@@ -191,14 +216,14 @@ public class $classname extends $baseclassname {
 #end
 		}
 #if ($odfmodel.getDefaultAttributeValue($attribute, $element))
-#set ($defaultValue = ${signaturemodel.escapeLiteral($odfmodel.getDefaultAttributeValue($attribute, $element))})
+#set ($defaultValue = ${model.escapeLiteral($odfmodel.getDefaultAttributeValue($attribute, $element))})
 #set ($defaultValueSet = $odfmodel.getDefaultAttributeValues($attribute))
 #if ($defaultValueSet.size()>1)
-#set ($constant = $signaturemodel.constantCase($defaultValue))
+#set ($constant = $model.constantCase($defaultValue))
 #if ($valueObject == "String")
-		return ${aClassname}.DEFAULT_VALUE_${signaturemodel.escapeKeyword($constant)};
+		return ${aClassname}.DEFAULT_VALUE_${model.escapeKeyword($constant)};
 #else
-		return ${valueObject}.valueOf(${aClassname}.DEFAULT_VALUE_${signaturemodel.escapeKeyword($constant)});
+		return ${valueObject}.valueOf(${aClassname}.DEFAULT_VALUE_${model.escapeKeyword($constant)});
 #end
 #else
 #if ($valueObject == "String")
@@ -223,7 +248,7 @@ public class $classname extends $baseclassname {
 #if ($valueObject == "String")
 		attr.setValue($aParam);
 #else
-		attr.set${signaturemodel.camelCase($simpleValue)}Value($aParam.${simpleValue}Value());
+		attr.set${model.camelCase($simpleValue)}Value($aParam.${simpleValue}Value());
 #end
 	}
 #end
@@ -237,8 +262,8 @@ public class $classname extends $baseclassname {
 #foreach($ch in $children)
 #if ($ch != "*")
 #set ($child = ${ch.withMultiples()})
-#set ($cClassname = "${signaturemodel.camelCase($child)}Element")
-#set ($cVar = ${signaturemodel.javaCase($child)})
+#set ($cClassname = "${model.camelCase($child.getLocalName())}Element")
+#set ($cVar = ${model.javaCase($child)})
 #set ($ch_attributes = ${child.getAttributes().withoutMultiples()})
 ##set has parameter flag
 #set ($hasParams = false)
@@ -255,7 +280,7 @@ public class $classname extends $baseclassname {
 #set ($params="")
 #foreach ($ch_attr in $ch_attributes)
 #if (${child.isMandatory($ch_attr)})
-#set($ch_attri = ${signaturemodel.getAttribute($ch_attr.getQName())})
+#set($ch_attri = ${model.getAttribute($ch_attr.getQName())})
 #set ($ch_ValueObject = "String")
 #set ($ch_SimpleValue = "")
 #set ($ch_DataTypes = ${ch_attri.getDatatypes().withoutMultiples()})
@@ -290,8 +315,8 @@ public class $classname extends $baseclassname {
 #if ($ch_attr != "*")
 #set ($attribute = ${ch_attr.withMultiples()})
 #set ($aNS = ${attribute.getNamespace()})
-#set ($aClassname = "${signaturemodel.camelCase($attribute)}Attribute")
-#set ($aParam = "${signaturemodel.javaCase($attribute)}Value")
+#set ($aClassname = "${model.camelCase($attribute.getLocalName())}Attribute")
+#set ($aParam = "${model.javaCase($attribute.getLocalName())}Value")
 	 * @param $aParam  the <code>$ch_ValueObject</code> value of <code>$aClassname</code>, see {@odf.attribute  ${attribute.getQName()}} at specification
 #if ($ch_SimpleValue!="")
 #set ($params="${params}${seperateFlag}${ch_SimpleValue} ${aParam}")
@@ -318,8 +343,8 @@ public class $classname extends $baseclassname {
 		$cClassname $cVar = ((OdfFileDom) this.ownerDocument).newOdfElement(${cClassname}.class);
 #foreach ($ch_attr in $ch_attributes)
 #if ($ch_attr != "*" && ${child.isMandatory($ch_attr)})
-#set ($aClassname = "${signaturemodel.camelCase($ch_attr)}Attribute")
-#set ($aParam = "${signaturemodel.javaCase($ch_attr)}Value")
+#set ($aClassname = "${model.camelCase($ch_attr.getLocalName())}Attribute")
+#set ($aParam = "${model.javaCase($ch_attr.getLocalName())}Value")
 		${cVar}.set$aClassname($aParam);
 #end
 #end
@@ -362,7 +387,7 @@ public class $classname extends $baseclassname {
 	 * Add text content. Only elements which are allowed to have text content offer this method.
 	 */
 	 public void newTextNode(String content) {
-		if (content != null && !content.equals("")) {
+		if (content != null && !content.isEmpty()) {
 			this.appendChild(this.getOwnerDocument().createTextNode(content));
 		}
 	 }
diff --git a/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-manifest-attribute-template.vm b/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-manifest-attribute-template.vm
index 7f025f5..9083006 100644
--- a/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-manifest-attribute-template.vm
+++ b/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-manifest-attribute-template.vm
@@ -18,17 +18,17 @@
 ## under the License.
 ##
 ##################################################################
-## Template to create the list of manifest artefacts which are to be generated
+
+## Template to create the list of artefacts which are to be generated
 ##
 ## Documentation of template development can be found in local file
 ## TemplateHelp.html.
 ##
 ## Returns PuzzleComponent covering a PuzzlePiece or PuzzlePieceSet dependent if attribute is multiple times defined
-#set($attribute = $manifestmodel.getAttribute($context))
-#set ($NS = "urn:oasis:names:tc:opendocument:xmlns:manifest:1.0")
-#set($NS = ${attribute.getNamespace()})
-#set($localname = ${manifestmodel.extractLocalname($attribute)})
-#set($classname = "${manifestmodel.camelCase($attribute)}Attribute")
+#set($attribute = $model.getAttribute($context))
+#set($NS = $attribute.getNamespace())
+#set($localname = ${model.extractLocalname($attribute)})
+#set($classname = "${model.camelCase($attribute.getLocalName())}Attribute")
 #set ($valueobject = "String")
 ##
 #set($datatypes = ${attribute.getDatatypes().withoutMultiples()})
@@ -94,11 +94,14 @@ import org.odftoolkit.odfdom.pkg.OdfElement;
 #end
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
 
 #if ($hasDefaultValue and $defaultValueSet.size()>1)
 #foreach ($parent in ${attribute.getParents().withoutMultiples()})
 #if ($odfmodel.getDefaultAttributeValue($attribute, $parent))
-import org.odftoolkit.odfdom.pkg.${parent.getNamespace()}.${manifestmodel.camelCase($parent)}Element;
+#if (!$parent.equals("manifest")) ## Do not generate "import" for the same package!
+import org.odftoolkit.odfdom.pkg.manifest.${model.camelCase($parent.getLocalName())}Element;
+#end
 #end
 #end
 #end
@@ -108,15 +111,15 @@ import org.odftoolkit.odfdom.pkg.${parent.getNamespace()}.${manifestmodel.camelC
  */
 public class $classname extends OdfAttribute {
 
-	public static final OdfName ATTRIBUTE_NAME = OdfName.newName("${NS}", "manifest:${attribute}");
+	public static final OdfName ATTRIBUTE_NAME = OdfName.newName(OdfPackageNamespace.${NS.toUpperCase()}, "$localname");
 #if ($hasDefaultValue)
 #if ($defaultValueSet.size()>1)
 #foreach ($defaultValue in $defaultValueSet)
-#set ($constant = $manifestmodel.constantCase($defaultValue))
+#set ($constant = $model.constantCase($defaultValue))
 #if (($defaultValue=="true" or $defaultValue=="false") and $enum == false)
-	public static final String DEFAULT_VALUE_${manifestmodel.escapeKeyword($constant)}= "$defaultValue";
+	public static final String DEFAULT_VALUE_${model.escapeKeyword($constant)}= "$defaultValue";
 #else
-	public static final String DEFAULT_VALUE_${manifestmodel.escapeKeyword($constant)}=	Value.${manifestmodel.escapeKeyword($constant)}.toString();
+	public static final String DEFAULT_VALUE_${model.escapeKeyword($constant)}=	Value.${model.escapeKeyword($constant)}.toString();
 #end
 #end
 #else
@@ -166,8 +169,8 @@ public class $classname extends OdfAttribute {
 #if (${value.toString().length()} == 1)
 #set ($constant = $value)
 #else
-#set ($constant = $manifestmodel.constantCase($value))
-#end${separator}${manifestmodel.escapeKeyword($constant)}("${manifestmodel.escapeLiteral($value)}")#set ($separator=", ")
+#set ($constant = $model.constantCase($value))
+#end${separator}${model.escapeKeyword($constant)}("${model.escapeLiteral($value)}")#set ($separator=", ")
 #end ;
 
 		private String mValue;
@@ -223,7 +226,7 @@ public class $classname extends OdfAttribute {
 	/**
 	 * @param value The <code>${simplevalue}</code> value of the attribute.
 	 */
-	public void set${manifestmodel.camelCase($simplevalue)}Value(${simplevalue} value) {
+	public void set${model.camelCase($simplevalue)}Value(${simplevalue} value) {
 		super.setValue(String.valueOf(value));
 	}
 
@@ -233,7 +236,7 @@ public class $classname extends OdfAttribute {
 	public ${simplevalue} ${simplevalue}Value() {
 		String val = super.getValue();
 		try {
-			return ${valueobject}.parse${manifestmodel.camelCase($simplevalue)}(val);
+			return ${valueobject}.parse${model.camelCase($simplevalue)}(val);
 		} catch (NumberFormatException e) {
 			// TODO: validation handling/logging
 			throw (e);
@@ -317,13 +320,13 @@ public class $classname extends OdfAttribute {
 #if ($defaultValueSet.size()>1)
 #foreach ($parent in ${attribute.getParents().withoutMultiples()})
 #if ($odfmodel.getDefaultAttributeValue($attribute, $parent))
-			if (parentElement instanceof ${manifestmodel.camelCase($parent)}Element) {
-				defaultValue = "${manifestmodel.escapeLiteral($odfmodel.getDefaultAttributeValue($attribute, $parent))}";
+			if (parentElement instanceof ${model.camelCase($parent)}Element) {
+				defaultValue = "${model.escapeLiteral($odfmodel.getDefaultAttributeValue($attribute, $parent))}";
 			}
 #end
 #end
 #else
-			defaultValue = "${manifestmodel.escapeLiteral($uniqueDefaultValue)}";
+			defaultValue = "${model.escapeLiteral($uniqueDefaultValue)}";
 #end
 		}
 		return defaultValue;
diff --git a/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-manifest-element-template.vm b/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-manifest-element-template.vm
index 714aa99..8d0bd85 100644
--- a/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-manifest-element-template.vm
+++ b/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/odfdom-manifest-element-template.vm
@@ -18,15 +18,16 @@
 ## under the License.
 ##
 ##################################################################
-## Template to create the Java class representing an ODF manifest element
+
+## Template to create the Java class representing an ODF element
 ##
 ## Documentation of template development can be found in local file
 ## TemplateHelp.html.
 ##
-#set ($element = ${manifestmodel.getElement($context)})
+#set ($element = ${model.getElement($context)})
 #set ($oldelement = ${oldmodel.getElement($context)})
-###set ($NS = ${element.getNamespace()})
-#set ($classname = "${manifestmodel.camelCase($element)}Element")
+#set ($NS = ${element.getNamespace()})
+#set ($classname = "${model.camelCase($element.getLocalName())}Element")
 ##
 ## Set child element and child attributes
 #set ($children = ${element.getChildElements().withoutMultiples()})
@@ -60,6 +61,26 @@ package org.odftoolkit.odfdom.pkg.manifest;
 import org.odftoolkit.odfdom.pkg.OdfElement;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
+
+##
+#foreach ($child in $attributes)
+#if ($child == "*")
+#set ($anyattribute = true)
+#else
+#set ($childNS = ${child.getNamespace()})
+#set ($childClassname = "${model.camelCase($child.getLocalName())}Attribute")
+#if (!$childNS.equals("manifest")) ## Do not generate "import" for the same package!
+import org.odftoolkit.odfdom.pkg.${childNS}.$childClassname;
+#end
+#end
+#end
+##
+## If there is a base class which is not in the current package
+#if ($baseimport)
+import ${baseimport};
+#end
+
 ##
 ## ---------------------------------------------------
 ##  Class
@@ -77,7 +98,7 @@ import org.odftoolkit.odfdom.pkg.OdfName;
  */
 public class $classname extends $baseclassname {
 
-	public static final OdfName ELEMENT_NAME = OdfName.newName("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", "manifest:${element}");
+	public static final OdfName ELEMENT_NAME = OdfName.newName(OdfPackageNamespace.${NS.toUpperCase()}, "${element.getLocalName()}");
 
 	/**
 	 * Create the instance of <code>$classname</code>
@@ -93,6 +114,7 @@ public class $classname extends $baseclassname {
 	 *
 	 * @return  return   <code>OdfName</code> the name of element {@odf.element ${context}}.
 	 */
+    @Override
 	public OdfName getOdfName() {
 		return ELEMENT_NAME;
 	}
@@ -108,7 +130,7 @@ public class $classname extends $baseclassname {
 ## ---------------------------------------------------
 ##
 #foreach ($attr in $attributes)
-#set($attri = ${manifestmodel.getAttribute($attr.getQName())})
+#set($attri = ${model.getAttribute($attr.getQName())})
 #set ($valueObject = "String")
 #set ($simpleValue = "")
 #set ($dataTypes = ${attri.getDatatypes().withoutMultiples()})
@@ -143,8 +165,8 @@ public class $classname extends $baseclassname {
 #if ($attr != "*")
 #set ($attribute = ${attr.withMultiples()})
 #set ($aNS = ${attribute.getNamespace()})
-#set ($aClassname = "${manifestmodel.camelCase($attribute)}Attribute")
-#set ($aParam = "${manifestmodel.javaCase($attribute)}Value")
+#set ($aClassname = "${model.camelCase($attribute.getLocalName())}Attribute")
+#set ($aParam = "${model.javaCase($attribute.getLocalName())}Value")
 
 	/**
 	 * Receives the value of the ODFDOM attribute representation <code>$aClassname</code> , See {@odf.attribute ${attribute.getQName()}}
@@ -156,7 +178,7 @@ public class $classname extends $baseclassname {
 	 * @return - the <code>$valueObject</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
 	 */
 	public $valueObject get${aClassname}() {
-		$aClassname attr = ($aClassname) getOdfAttribute(${aClassname}.ATTRIBUTE_NAME);
+		$aClassname attr = ($aClassname) getOdfAttribute(OdfPackageNamespace.${aNS.toUpperCase()}, "${attribute.getLocalName()}");
 		if (attr != null) {
 #if ($simpleValue!="")
 			return ${valueObject}.valueOf(attr.${simpleValue}Value());
@@ -165,14 +187,14 @@ public class $classname extends $baseclassname {
 #end
 		}
 #if ($odfmodel.getDefaultAttributeValue($attribute, $element))
-#set ($defaultValue = ${manifestmodel.escapeLiteral($odfmodel.getDefaultAttributeValue($attribute, $element))})
+#set ($defaultValue = ${model.escapeLiteral($odfmodel.getDefaultAttributeValue($attribute, $element))})
 #set ($defaultValueSet = $odfmodel.getDefaultAttributeValues($attribute))
 #if ($defaultValueSet.size()>1)
-#set ($constant = $manifestmodel.constantCase($defaultValue))
+#set ($constant = $model.constantCase($defaultValue))
 #if ($valueObject == "String")
-		return ${aClassname}.DEFAULT_VALUE_${manifestmodel.escapeKeyword($constant)};
+		return ${aClassname}.DEFAULT_VALUE_${model.escapeKeyword($constant)};
 #else
-		return ${valueObject}.valueOf(${aClassname}.DEFAULT_VALUE_${manifestmodel.escapeKeyword($constant)});
+		return ${valueObject}.valueOf(${aClassname}.DEFAULT_VALUE_${model.escapeKeyword($constant)});
 #end
 #else
 #if ($valueObject == "String")
@@ -197,7 +219,7 @@ public class $classname extends $baseclassname {
 #if ($valueObject == "String")
 		attr.setValue($aParam);
 #else
-		attr.set${manifestmodel.camelCase($simpleValue)}Value($aParam.${simpleValue}Value());
+		attr.set${model.camelCase($simpleValue)}Value($aParam.${simpleValue}Value());
 #end
 	}
 #end
@@ -211,8 +233,8 @@ public class $classname extends $baseclassname {
 #foreach($ch in $children)
 #if ($ch != "*")
 #set ($child = ${ch.withMultiples()})
-#set ($cClassname = "${manifestmodel.camelCase($child)}Element")
-#set ($cVar = ${manifestmodel.javaCase($child)})
+#set ($cClassname = "${model.camelCase($child.getLocalName())}Element")
+#set ($cVar = ${model.javaCase($child)})
 #set ($ch_attributes = ${child.getAttributes().withoutMultiples()})
 ##set has parameter flag
 #set ($hasParams = false)
@@ -229,7 +251,7 @@ public class $classname extends $baseclassname {
 #set ($params="")
 #foreach ($ch_attr in $ch_attributes)
 #if (${child.isMandatory($ch_attr)})
-#set($ch_attri = ${manifestmodel.getAttribute($ch_attr.getQName())})
+#set($ch_attri = ${model.getAttribute($ch_attr.getQName())})
 #set ($ch_ValueObject = "String")
 #set ($ch_SimpleValue = "")
 #set ($ch_DataTypes = ${ch_attri.getDatatypes().withoutMultiples()})
@@ -264,8 +286,8 @@ public class $classname extends $baseclassname {
 #if ($ch_attr != "*")
 #set ($attribute = ${ch_attr.withMultiples()})
 #set ($aNS = ${attribute.getNamespace()})
-#set ($aClassname = "${manifestmodel.camelCase($attribute)}Attribute")
-#set ($aParam = "${manifestmodel.javaCase($attribute)}Value")
+#set ($aClassname = "${model.camelCase($attribute.getLocalName())}Attribute")
+#set ($aParam = "${model.javaCase($attribute.getLocalName())}Value")
 	 * @param $aParam  the <code>$ch_ValueObject</code> value of <code>$aClassname</code>, see {@odf.attribute  ${attribute.getQName()}} at specification
 #if ($ch_SimpleValue!="")
 #set ($params="${params}${seperateFlag}${ch_SimpleValue} ${aParam}")
@@ -292,8 +314,8 @@ public class $classname extends $baseclassname {
 		$cClassname $cVar = ((OdfFileDom) this.ownerDocument).newOdfElement(${cClassname}.class);
 #foreach ($ch_attr in $ch_attributes)
 #if ($ch_attr != "*" && ${child.isMandatory($ch_attr)})
-#set ($aClassname = "${manifestmodel.camelCase($ch_attr)}Attribute")
-#set ($aParam = "${manifestmodel.javaCase($ch_attr)}Value")
+#set ($aClassname = "${model.camelCase($ch_attr.getLocalName())}Attribute")
+#set ($aParam = "${model.javaCase($ch_attr.getLocalName())}Value")
 		${cVar}.set$aClassname($aParam);
 #end
 #end
@@ -336,7 +358,7 @@ public class $classname extends $baseclassname {
 	 * Add text content. Only elements which are allowed to have text content offer this method.
 	 */
 	 public void newTextNode(String content) {
-		if (content != null && !content.equals("")) {
+		if (content != null && !content.isEmpty()) {
 			this.appendChild(this.getOwnerDocument().createTextNode(content));
 		}
 	 }
diff --git a/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/pkg-output-files.vm b/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/pkg-dsig-output-files.vm
similarity index 60%
copy from generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/pkg-output-files.vm
copy to generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/pkg-dsig-output-files.vm
index f5e3f81..19a9350 100644
--- a/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/pkg-output-files.vm
+++ b/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/pkg-dsig-output-files.vm
@@ -1,62 +1,45 @@
-##################################################################
-## 
-## Licensed to the Apache Software Foundation (ASF) under one
-## or more contributor license agreements.  See the NOTICE file
-## distributed with this work for additional information
-## regarding copyright ownership.  The ASF licenses this file
-## to you 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
-## 
-## 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.
-##
-##################################################################
-<?xml version="1.0" encoding="UTF-8"?>
-## Template to create the list of artefacts which are to be generated
-##
-## Documentation of template development can be found in local file
-## src/main/resources/documentation/help.html
-##
-<filelist>
-##
-#foreach ($element in ${signaturemodel.getElements().withoutMultiples()})
-#if ($element != "*")
-##
-#set($classname = "${signaturemodel.camelCase($element)}Element")
-	<file path="org/odftoolkit/odfdom/pkg/dsig/${classname}.java" context="$element" template="odfdom-dsig-element-template.vm" />
-##
-#end
-#end
-##
-#foreach ($attribute in ${signaturemodel.getAttributes().withoutMultiples()})
-#if ($attribute != "*")
-##
-#set($classname = "${signaturemodel.camelCase($attribute)}Attribute")
-	<file path="org/odftoolkit/odfdom/pkg/dsig/${classname}.java" context="$attribute" template="odfdom-dsig-attribute-template.vm" />
-#end
-#end
-##
-#foreach ($element in ${manifestmodel.getElements().withoutMultiples()})
-#if ($element != "*")
-##
-#set($classname = "${manifestmodel.camelCase($element)}Element")
-	<file path="org/odftoolkit/odfdom/pkg/manifest/${classname}.java" context="$element" template="odfdom-manifest-element-template.vm" />
-##
-#end
-#end
-##
-#foreach ($attribute in ${manifestmodel.getAttributes().withoutMultiples()})
-#if ($attribute != "*")
-##
-#set($classname = "${manifestmodel.camelCase($attribute)}Attribute")
-	<file path="org/odftoolkit/odfdom/pkg/manifest/${classname}.java" context="$attribute" template="odfdom-manifest-attribute-template.vm" />
-#end
-#end
-</filelist>
+##################################################################
+## 
+## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements.  See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership.  The ASF licenses this file
+## to you 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
+## 
+## 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.
+##
+##################################################################
+<?xml version="1.0" encoding="UTF-8"?>
+## Template to create the list of artefacts which are to be generated
+##
+## Documentation of template development can be found in local file
+## src/main/resources/documentation/help.html
+##
+<filelist>
+##
+#foreach ($element in ${model.getElements().withoutMultiples()})
+#if ($element != "*")
+##
+#set($classname = "${model.camelCase($element.getLocalName())}Element")
+	<file path="org/odftoolkit/odfdom/pkg/dsig/${classname}.java" context="$element" template="odfdom-dsig-element-template.vm" />
+##
+#end
+#end
+##
+#foreach ($attribute in ${model.getAttributes().withoutMultiples()})
+#if ($attribute != "*")
+##
+#set($classname = "${model.camelCase($attribute.getLocalName())}Attribute")
+	<file path="org/odftoolkit/odfdom/pkg/dsig/${classname}.java" context="$attribute" template="odfdom-dsig-attribute-template.vm" />
+#end
+#end
+</filelist>
diff --git a/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/pkg-output-files.vm b/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/pkg-manifest-output-files.vm
similarity index 61%
rename from generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/pkg-output-files.vm
rename to generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/pkg-manifest-output-files.vm
index f5e3f81..9f0cfc0 100644
--- a/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/pkg-output-files.vm
+++ b/generator/schema2template/src/main/resources/examples/odf/odfdom-java/pkg/pkg-manifest-output-files.vm
@@ -1,62 +1,44 @@
-##################################################################
-## 
-## Licensed to the Apache Software Foundation (ASF) under one
-## or more contributor license agreements.  See the NOTICE file
-## distributed with this work for additional information
-## regarding copyright ownership.  The ASF licenses this file
-## to you 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
-## 
-## 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.
-##
-##################################################################
-<?xml version="1.0" encoding="UTF-8"?>
-## Template to create the list of artefacts which are to be generated
-##
-## Documentation of template development can be found in local file
-## src/main/resources/documentation/help.html
-##
-<filelist>
-##
-#foreach ($element in ${signaturemodel.getElements().withoutMultiples()})
-#if ($element != "*")
-##
-#set($classname = "${signaturemodel.camelCase($element)}Element")
-	<file path="org/odftoolkit/odfdom/pkg/dsig/${classname}.java" context="$element" template="odfdom-dsig-element-template.vm" />
-##
-#end
-#end
-##
-#foreach ($attribute in ${signaturemodel.getAttributes().withoutMultiples()})
-#if ($attribute != "*")
-##
-#set($classname = "${signaturemodel.camelCase($attribute)}Attribute")
-	<file path="org/odftoolkit/odfdom/pkg/dsig/${classname}.java" context="$attribute" template="odfdom-dsig-attribute-template.vm" />
-#end
-#end
-##
-#foreach ($element in ${manifestmodel.getElements().withoutMultiples()})
-#if ($element != "*")
-##
-#set($classname = "${manifestmodel.camelCase($element)}Element")
-	<file path="org/odftoolkit/odfdom/pkg/manifest/${classname}.java" context="$element" template="odfdom-manifest-element-template.vm" />
-##
-#end
-#end
-##
-#foreach ($attribute in ${manifestmodel.getAttributes().withoutMultiples()})
-#if ($attribute != "*")
-##
-#set($classname = "${manifestmodel.camelCase($attribute)}Attribute")
-	<file path="org/odftoolkit/odfdom/pkg/manifest/${classname}.java" context="$attribute" template="odfdom-manifest-attribute-template.vm" />
-#end
-#end
-</filelist>
+##################################################################
+## 
+## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements.  See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership.  The ASF licenses this file
+## to you 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
+## 
+## 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.
+##
+##################################################################
+<?xml version="1.0" encoding="UTF-8"?>
+## Template to create the list of artefacts which are to be generated
+##
+## Documentation of template development can be found in local file
+## src/main/resources/documentation/help.html
+##
+<filelist>
+#foreach ($element in ${model.getElements().withoutMultiples()})
+#if ($element != "*")
+##
+#set($classname = "${model.camelCase($element.getLocalName())}Element")
+	<file path="org/odftoolkit/odfdom/pkg/manifest/${classname}.java" context="$element" template="odfdom-manifest-element-template.vm" />
+##
+#end
+#end
+##
+#foreach ($attribute in ${model.getAttributes().withoutMultiples()})
+#if ($attribute != "*")
+##
+#set($classname = "${model.camelCase($attribute.getLocalName())}Attribute")
+	<file path="org/odftoolkit/odfdom/pkg/manifest/${classname}.java" context="$attribute" template="odfdom-manifest-attribute-template.vm" />
+#end
+#end
+</filelist>
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/OdfPackageNamespace.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/OdfPackageNamespace.java
index 461d955..f325014 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/OdfPackageNamespace.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/OdfPackageNamespace.java
@@ -26,8 +26,10 @@ package org.odftoolkit.odfdom.pkg;
 public enum OdfPackageNamespace implements NamespaceName {
 
 
-	MANIFEST("chart", "urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"),
-	XML("xml", "http://www.w3.org/XML/1998/namespace" );
+	MANIFEST("manifest", "urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"),
+	XML("xml", "http://www.w3.org/XML/1998/namespace"),
+    DSIG("dsig", "urn:oasis:names:tc:opendocument:xmlns:digitalsignature:1.0"),
+	DS("ds", "http://www.w3.org/2000/09/xmldsig#");
 
 	private String mPrefix;
 	private String mUri;
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/dsig/DocumentSignaturesElement.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/dsig/DocumentSignaturesElement.java
index 9b4d949..44be07a 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/dsig/DocumentSignaturesElement.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/dsig/DocumentSignaturesElement.java
@@ -31,20 +31,21 @@ package org.odftoolkit.odfdom.pkg.dsig;
 import org.odftoolkit.odfdom.pkg.OdfElement;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
 
 
 /**
- * DOM implementation of OpenDocument element  {@odf.element dsig:document-signatures}.
+ * Data signature implementation of OpenDocument element  {@odf.element dsig:document-signatures}.
  *
  */
 public class DocumentSignaturesElement extends OdfElement {
 
-	public static final OdfName ELEMENT_NAME = OdfName.newName("urn:oasis:names:tc:opendocument:xmlns:digitalsignature:1.0", "dsig:document-signatures");
+	public static final OdfName ELEMENT_NAME = OdfName.newName(OdfPackageNamespace.DSIG, "document-signatures");
 
 	/**
 	 * Create the instance of <code>DocumentSignaturesElement</code>
 	 *
-	 * @param  ownerDoc The type is <code>OdfFileDom</code>
+	 * @param  ownerDoc     The type is <code>OdfFileDom</code>
 	 */
 	public DocumentSignaturesElement(OdfFileDom ownerDoc) {
 		super(ownerDoc, ELEMENT_NAME);
@@ -53,8 +54,9 @@ public class DocumentSignaturesElement extends OdfElement {
 	/**
 	 * Get the element name
 	 *
-	 * @return  return <code>OdfName</code> the name of element {@odf.element dsig:document-signatures}.
+	 * @return  return   <code>OdfName</code> the name of element {@odf.element dsig:document-signatures}.
 	 */
+    @Override
 	public OdfName getOdfName() {
 		return ELEMENT_NAME;
 	}
@@ -67,7 +69,7 @@ public class DocumentSignaturesElement extends OdfElement {
 	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
 	 */
 	public String getVersionAttribute() {
-		VersionAttribute attr = (VersionAttribute) getOdfAttribute(VersionAttribute.ATTRIBUTE_NAME);
+		VersionAttribute attr = (VersionAttribute) getOdfAttribute(OdfPackageNamespace.DSIG, "version");
 		if (attr != null) {
 			return String.valueOf(attr.getValue());
 		}
@@ -95,9 +97,9 @@ public class DocumentSignaturesElement extends OdfElement {
 	 * @return the element {@odf.element ds:Signature}
 	 */
 	public SignatureElement newSignatureElement() {
-		SignatureElement signature = ((OdfFileDom) this.ownerDocument).newOdfElement(SignatureElement.class);
-		this.appendChild(signature);
-		return signature;
+		SignatureElement dsSignature = ((OdfFileDom) this.ownerDocument).newOdfElement(SignatureElement.class);
+		this.appendChild(dsSignature);
+		return dsSignature;
 	}
 
 }
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/dsig/SignatureElement.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/dsig/SignatureElement.java
index 696ae4a..c7fa75e 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/dsig/SignatureElement.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/dsig/SignatureElement.java
@@ -31,20 +31,23 @@ package org.odftoolkit.odfdom.pkg.dsig;
 import org.odftoolkit.odfdom.pkg.OdfElement;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
 
 
 /**
- * DOM implementation of OpenDocument element  {@odf.element ds:Signature}.
+ * Data signature implementation of OpenDocument element  {@odf.element ds:Signature}.
  *
+ * This class can have any org.w3c.dom.Element child element.
+ * This class can have any org.w3c.dom.Attribute attribute.
  */
 public class SignatureElement extends OdfElement {
 
-	public static final OdfName ELEMENT_NAME = OdfName.newName("http://www.w3.org/2000/09/xmldsig#", "ds:Signature");
+	public static final OdfName ELEMENT_NAME = OdfName.newName(OdfPackageNamespace.DS, "Signature");
 
 	/**
 	 * Create the instance of <code>SignatureElement</code>
 	 *
-	 * @param  ownerDoc The type is <code>OdfFileDom</code>
+	 * @param  ownerDoc     The type is <code>OdfFileDom</code>
 	 */
 	public SignatureElement(OdfFileDom ownerDoc) {
 		super(ownerDoc, ELEMENT_NAME);
@@ -53,8 +56,9 @@ public class SignatureElement extends OdfElement {
 	/**
 	 * Get the element name
 	 *
-	 * @return  return <code>OdfName</code> the name of element {@odf.element ds:Signature}.
+	 * @return  return   <code>OdfName</code> the name of element {@odf.element ds:Signature}.
 	 */
+    @Override
 	public OdfName getOdfName() {
 		return ELEMENT_NAME;
 	}
@@ -63,7 +67,7 @@ public class SignatureElement extends OdfElement {
 	 * Add text content. Only elements which are allowed to have text content offer this method.
 	 */
 	 public void newTextNode(String content) {
-		if (content != null && !content.equals("")) {
+		if (content != null && !content.isEmpty()) {
 			this.appendChild(this.getOwnerDocument().createTextNode(content));
 		}
 	 }
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/dsig/VersionAttribute.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/dsig/VersionAttribute.java
index 32fed37..5617f2a 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/dsig/VersionAttribute.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/dsig/VersionAttribute.java
@@ -1,3 +1,4 @@
+
 /************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
@@ -31,6 +32,7 @@ package org.odftoolkit.odfdom.pkg.dsig;
 import org.odftoolkit.odfdom.pkg.OdfAttribute;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
 
 /**
  * DOM implementation of OpenDocument attribute  {@odf.attribute dsig:version}.
@@ -38,7 +40,7 @@ import org.odftoolkit.odfdom.pkg.OdfName;
  */
 public class VersionAttribute extends OdfAttribute {
 
-	public static final OdfName ATTRIBUTE_NAME = OdfName.newName("urn:oasis:names:tc:opendocument:xmlns:digitalsignature:1.0", "dsig:version");
+	public static final OdfName ATTRIBUTE_NAME = OdfName.newName(OdfPackageNamespace.DSIG, "version");
 
 	/**
 	 * Create the instance of OpenDocument attribute {@odf.attribute dsig:version}.
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/AlgorithmElement.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/AlgorithmElement.java
index e70d8b0..2edef02 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/AlgorithmElement.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/AlgorithmElement.java
@@ -1,3 +1,4 @@
+
 /************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
@@ -31,18 +32,21 @@ package org.odftoolkit.odfdom.pkg.manifest;
 import org.odftoolkit.odfdom.pkg.OdfElement;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
+
+
 /**
  * Manifest implementation of OpenDocument element  {@odf.element manifest:algorithm}.
  *
  */
 public class AlgorithmElement extends OdfElement {
 
-	public static final OdfName ELEMENT_NAME = OdfName.newName("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", "manifest:algorithm");
+	public static final OdfName ELEMENT_NAME = OdfName.newName(OdfPackageNamespace.MANIFEST, "algorithm");
 
 	/**
 	 * Create the instance of <code>AlgorithmElement</code>
 	 *
-	 * @param  ownerDoc  The type is <code>OdfFileDom</code>
+	 * @param  ownerDoc     The type is <code>OdfFileDom</code>
 	 */
 	public AlgorithmElement(OdfFileDom ownerDoc) {
 		super(ownerDoc, ELEMENT_NAME);
@@ -53,6 +57,7 @@ public class AlgorithmElement extends OdfElement {
 	 *
 	 * @return  return   <code>OdfName</code> the name of element {@odf.element manifest:algorithm}.
 	 */
+    @Override
 	public OdfName getOdfName() {
 		return ELEMENT_NAME;
 	}
@@ -65,7 +70,7 @@ public class AlgorithmElement extends OdfElement {
 	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
 	 */
 	public String getAlgorithmNameAttribute() {
-		AlgorithmNameAttribute attr = (AlgorithmNameAttribute) getOdfAttribute(AlgorithmNameAttribute.ATTRIBUTE_NAME);
+		AlgorithmNameAttribute attr = (AlgorithmNameAttribute) getOdfAttribute(OdfPackageNamespace.MANIFEST, "algorithm-name");
 		if (attr != null) {
 			return String.valueOf(attr.getValue());
 		}
@@ -91,7 +96,7 @@ public class AlgorithmElement extends OdfElement {
 	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
 	 */
 	public String getInitialisationVectorAttribute() {
-		InitialisationVectorAttribute attr = (InitialisationVectorAttribute) getOdfAttribute(InitialisationVectorAttribute.ATTRIBUTE_NAME);
+		InitialisationVectorAttribute attr = (InitialisationVectorAttribute) getOdfAttribute(OdfPackageNamespace.MANIFEST, "initialisation-vector");
 		if (attr != null) {
 			return String.valueOf(attr.getValue());
 		}
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/AlgorithmNameAttribute.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/AlgorithmNameAttribute.java
index 60c04a3..c592b8d 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/AlgorithmNameAttribute.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/AlgorithmNameAttribute.java
@@ -1,3 +1,4 @@
+
 /************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
@@ -31,6 +32,7 @@ package org.odftoolkit.odfdom.pkg.manifest;
 import org.odftoolkit.odfdom.pkg.OdfAttribute;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
 
 /**
  * Manifest implementation of OpenDocument attribute  {@odf.attribute manifest:algorithm-name}.
@@ -38,7 +40,7 @@ import org.odftoolkit.odfdom.pkg.OdfName;
  */
 public class AlgorithmNameAttribute extends OdfAttribute {
 
-	public static final OdfName ATTRIBUTE_NAME = OdfName.newName("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", "manifest:algorithm-name");
+	public static final OdfName ATTRIBUTE_NAME = OdfName.newName(OdfPackageNamespace.MANIFEST, "algorithm-name");
 
 	/**
 	 * Create the instance of OpenDocument attribute {@odf.attribute manifest:algorithm-name}.
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/ChecksumAttribute.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/ChecksumAttribute.java
index 159bf53..79929d1 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/ChecksumAttribute.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/ChecksumAttribute.java
@@ -1,3 +1,4 @@
+
 /************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
@@ -31,6 +32,7 @@ package org.odftoolkit.odfdom.pkg.manifest;
 import org.odftoolkit.odfdom.pkg.OdfAttribute;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
 
 /**
  * Manifest implementation of OpenDocument attribute  {@odf.attribute manifest:checksum}.
@@ -38,7 +40,7 @@ import org.odftoolkit.odfdom.pkg.OdfName;
  */
 public class ChecksumAttribute extends OdfAttribute {
 
-	public static final OdfName ATTRIBUTE_NAME = OdfName.newName("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", "manifest:checksum");
+	public static final OdfName ATTRIBUTE_NAME = OdfName.newName(OdfPackageNamespace.MANIFEST, "checksum");
 
 	/**
 	 * Create the instance of OpenDocument attribute {@odf.attribute manifest:checksum}.
@@ -93,7 +95,7 @@ public class ChecksumAttribute extends OdfAttribute {
 			return super.getValue();
 		} catch (IllegalArgumentException e) {
 			// TODO: validation handling/logging
-			throw new NumberFormatException("the value of checksum is not valid");
+			throw new NumberFormatException("the value of manifest:checksum is not valid");
 		}
 	}
 
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/ChecksumTypeAttribute.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/ChecksumTypeAttribute.java
index 445b1f6..c7b99f5 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/ChecksumTypeAttribute.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/ChecksumTypeAttribute.java
@@ -1,3 +1,4 @@
+
 /************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
@@ -31,6 +32,7 @@ package org.odftoolkit.odfdom.pkg.manifest;
 import org.odftoolkit.odfdom.pkg.OdfAttribute;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
 
 /**
  * Manifest implementation of OpenDocument attribute  {@odf.attribute manifest:checksum-type}.
@@ -38,7 +40,7 @@ import org.odftoolkit.odfdom.pkg.OdfName;
  */
 public class ChecksumTypeAttribute extends OdfAttribute {
 
-	public static final OdfName ATTRIBUTE_NAME = OdfName.newName("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", "manifest:checksum-type");
+	public static final OdfName ATTRIBUTE_NAME = OdfName.newName(OdfPackageNamespace.MANIFEST, "checksum-type");
 
 	/**
 	 * Create the instance of OpenDocument attribute {@odf.attribute manifest:checksum-type}.
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/EncryptionDataElement.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/EncryptionDataElement.java
index 8e3aa02..5add791 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/EncryptionDataElement.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/EncryptionDataElement.java
@@ -1,9 +1,10 @@
+
 /************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
- *
+ * 
  * Use is subject to license terms.
- *
+ * 
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
@@ -32,19 +33,20 @@ import org.odftoolkit.odfdom.pkg.OdfElement;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
 import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
-import org.w3c.dom.NodeList;
+
+
 /**
  * Manifest implementation of OpenDocument element  {@odf.element manifest:encryption-data}.
  *
  */
 public class EncryptionDataElement extends OdfElement {
 
-	public static final OdfName ELEMENT_NAME = OdfName.newName("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", "manifest:encryption-data");
+	public static final OdfName ELEMENT_NAME = OdfName.newName(OdfPackageNamespace.MANIFEST, "encryption-data");
 
 	/**
 	 * Create the instance of <code>EncryptionDataElement</code>
 	 *
-	 * @param  ownerDoc  The type is <code>OdfFileDom</code>
+	 * @param  ownerDoc     The type is <code>OdfFileDom</code>
 	 */
 	public EncryptionDataElement(OdfFileDom ownerDoc) {
 		super(ownerDoc, ELEMENT_NAME);
@@ -55,6 +57,7 @@ public class EncryptionDataElement extends OdfElement {
 	 *
 	 * @return  return   <code>OdfName</code> the name of element {@odf.element manifest:encryption-data}.
 	 */
+    @Override
 	public OdfName getOdfName() {
 		return ELEMENT_NAME;
 	}
@@ -67,7 +70,7 @@ public class EncryptionDataElement extends OdfElement {
 	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
 	 */
 	public String getChecksumAttribute() {
-		ChecksumAttribute attr = (ChecksumAttribute) getOdfAttribute(ChecksumAttribute.ATTRIBUTE_NAME);
+		ChecksumAttribute attr = (ChecksumAttribute) getOdfAttribute(OdfPackageNamespace.MANIFEST, "checksum");
 		if (attr != null) {
 			return String.valueOf(attr.getValue());
 		}
@@ -93,7 +96,7 @@ public class EncryptionDataElement extends OdfElement {
 	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
 	 */
 	public String getChecksumTypeAttribute() {
-		ChecksumTypeAttribute attr = (ChecksumTypeAttribute) getOdfAttribute(ChecksumTypeAttribute.ATTRIBUTE_NAME);
+		ChecksumTypeAttribute attr = (ChecksumTypeAttribute) getOdfAttribute(OdfPackageNamespace.MANIFEST, "checksum-type");
 		if (attr != null) {
 			return String.valueOf(attr.getValue());
 		}
@@ -123,25 +126,11 @@ public class EncryptionDataElement extends OdfElement {
 	 * @return the element {@odf.element manifest:algorithm}
 	 */
 	 public AlgorithmElement newAlgorithmElement(String algorithmNameValue, String initialisationVectorValue) {
-		AlgorithmElement algorithm = ((OdfFileDom) this.ownerDocument).newOdfElement(AlgorithmElement.class);
-		algorithm.setAlgorithmNameAttribute(algorithmNameValue);
-		algorithm.setInitialisationVectorAttribute(initialisationVectorValue);
-        if(this.hasChildNodes()){
-            OdfElement precedingSibling = null;
-            NodeList nl = this.getElementsByTagNameNS(OdfPackageNamespace.MANIFEST.getUri(), "start-key-generation");
-            if(nl.getLength() == 0){
-                nl = this.getElementsByTagNameNS(OdfPackageNamespace.MANIFEST.getUri(), "key-derivation");
-            }
-            if(nl.getLength() != 0){
-               precedingSibling = (OdfElement) nl.item(0);
-               this.insertBefore(algorithm, precedingSibling);
-            }else{
-                this.appendChild(algorithm);
-            }
-        }else{
-            this.appendChild(algorithm);
-        }
-		return algorithm;
+		AlgorithmElement manifestAlgorithm = ((OdfFileDom) this.ownerDocument).newOdfElement(AlgorithmElement.class);
+		manifestAlgorithm.setAlgorithmNameAttribute(algorithmNameValue);
+		manifestAlgorithm.setInitialisationVectorAttribute(initialisationVectorValue);
+		this.appendChild(manifestAlgorithm);
+		return manifestAlgorithm;
 	}
 
 	/**
@@ -157,12 +146,12 @@ public class EncryptionDataElement extends OdfElement {
 	 * @return the element {@odf.element manifest:key-derivation}
 	 */
 	 public KeyDerivationElement newKeyDerivationElement(int iterationCountValue, String keyDerivationNameValue, String saltValue) {
-		KeyDerivationElement keyDerivation = ((OdfFileDom) this.ownerDocument).newOdfElement(KeyDerivationElement.class);
-		keyDerivation.setIterationCountAttribute(iterationCountValue);
-		keyDerivation.setKeyDerivationNameAttribute(keyDerivationNameValue);
-		keyDerivation.setSaltAttribute(saltValue);
-		this.appendChild(keyDerivation);
-		return keyDerivation;
+		KeyDerivationElement manifestKeyDerivation = ((OdfFileDom) this.ownerDocument).newOdfElement(KeyDerivationElement.class);
+		manifestKeyDerivation.setIterationCountAttribute(iterationCountValue);
+		manifestKeyDerivation.setKeyDerivationNameAttribute(keyDerivationNameValue);
+		manifestKeyDerivation.setSaltAttribute(saltValue);
+		this.appendChild(manifestKeyDerivation);
+		return manifestKeyDerivation;
 	}
 
 	/**
@@ -174,22 +163,10 @@ public class EncryptionDataElement extends OdfElement {
 	 * @return the element {@odf.element manifest:start-key-generation}
 	 */
 	 public StartKeyGenerationElement newStartKeyGenerationElement(String startKeyGenerationNameValue) {
-		StartKeyGenerationElement startKeyGeneration = ((OdfFileDom) this.ownerDocument).newOdfElement(StartKeyGenerationElement.class);
-		startKeyGeneration.setStartKeyGenerationNameAttribute(startKeyGenerationNameValue);
-
-        if(this.hasChildNodes()){
-            OdfElement precedingSibling = null;
-            NodeList nl = this.getElementsByTagNameNS(OdfPackageNamespace.MANIFEST.getUri(), "key-derivation");
-            if(nl.getLength() != 0){
-               precedingSibling = (OdfElement) nl.item(0);
-               this.insertBefore(startKeyGeneration, precedingSibling);
-            }else{
-                this.appendChild(startKeyGeneration);
-            }
-        }else{
-            this.appendChild(startKeyGeneration);
-        }
-        return startKeyGeneration;
+		StartKeyGenerationElement manifestStartKeyGeneration = ((OdfFileDom) this.ownerDocument).newOdfElement(StartKeyGenerationElement.class);
+		manifestStartKeyGeneration.setStartKeyGenerationNameAttribute(startKeyGenerationNameValue);
+		this.appendChild(manifestStartKeyGeneration);
+		return manifestStartKeyGeneration;
 	}
 
 }
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/FileEntryElement.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/FileEntryElement.java
index 0962b41..69fdfd6 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/FileEntryElement.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/FileEntryElement.java
@@ -1,3 +1,4 @@
+
 /************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
@@ -31,18 +32,21 @@ package org.odftoolkit.odfdom.pkg.manifest;
 import org.odftoolkit.odfdom.pkg.OdfElement;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
+
+
 /**
  * Manifest implementation of OpenDocument element  {@odf.element manifest:file-entry}.
  *
  */
 public class FileEntryElement extends OdfElement {
 
-	public static final OdfName ELEMENT_NAME = OdfName.newName("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", "manifest:file-entry");
+	public static final OdfName ELEMENT_NAME = OdfName.newName(OdfPackageNamespace.MANIFEST, "file-entry");
 
 	/**
 	 * Create the instance of <code>FileEntryElement</code>
 	 *
-	 * @param  ownerDoc  The type is <code>OdfFileDom</code>
+	 * @param  ownerDoc     The type is <code>OdfFileDom</code>
 	 */
 	public FileEntryElement(OdfFileDom ownerDoc) {
 		super(ownerDoc, ELEMENT_NAME);
@@ -53,6 +57,7 @@ public class FileEntryElement extends OdfElement {
 	 *
 	 * @return  return   <code>OdfName</code> the name of element {@odf.element manifest:file-entry}.
 	 */
+    @Override
 	public OdfName getOdfName() {
 		return ELEMENT_NAME;
 	}
@@ -65,7 +70,7 @@ public class FileEntryElement extends OdfElement {
 	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
 	 */
 	public String getFullPathAttribute() {
-		FullPathAttribute attr = (FullPathAttribute) getOdfAttribute(FullPathAttribute.ATTRIBUTE_NAME);
+		FullPathAttribute attr = (FullPathAttribute) getOdfAttribute(OdfPackageNamespace.MANIFEST, "full-path");
 		if (attr != null) {
 			return String.valueOf(attr.getValue());
 		}
@@ -91,7 +96,7 @@ public class FileEntryElement extends OdfElement {
 	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
 	 */
 	public String getMediaTypeAttribute() {
-		MediaTypeAttribute attr = (MediaTypeAttribute) getOdfAttribute(MediaTypeAttribute.ATTRIBUTE_NAME);
+		MediaTypeAttribute attr = (MediaTypeAttribute) getOdfAttribute(OdfPackageNamespace.MANIFEST, "media-type");
 		if (attr != null) {
 			return String.valueOf(attr.getValue());
 		}
@@ -115,7 +120,7 @@ public class FileEntryElement extends OdfElement {
 	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
 	 */
 	public String getPreferredViewModeAttribute() {
-		PreferredViewModeAttribute attr = (PreferredViewModeAttribute) getOdfAttribute(PreferredViewModeAttribute.ATTRIBUTE_NAME);
+		PreferredViewModeAttribute attr = (PreferredViewModeAttribute) getOdfAttribute(OdfPackageNamespace.MANIFEST, "preferred-view-mode");
 		if (attr != null) {
 			return String.valueOf(attr.getValue());
 		}
@@ -139,7 +144,7 @@ public class FileEntryElement extends OdfElement {
 	 * @return - the <code>Integer</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
 	 */
 	public Integer getSizeAttribute() {
-		SizeAttribute attr = (SizeAttribute) getOdfAttribute(SizeAttribute.ATTRIBUTE_NAME);
+		SizeAttribute attr = (SizeAttribute) getOdfAttribute(OdfPackageNamespace.MANIFEST, "size");
 		if (attr != null) {
 			return Integer.valueOf(attr.intValue());
 		}
@@ -163,7 +168,7 @@ public class FileEntryElement extends OdfElement {
 	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
 	 */
 	public String getVersionAttribute() {
-		VersionAttribute attr = (VersionAttribute) getOdfAttribute(VersionAttribute.ATTRIBUTE_NAME);
+		VersionAttribute attr = (VersionAttribute) getOdfAttribute(OdfPackageNamespace.MANIFEST, "version");
 		if (attr != null) {
 			return String.valueOf(attr.getValue());
 		}
@@ -191,11 +196,11 @@ public class FileEntryElement extends OdfElement {
 	 * @return the element {@odf.element manifest:encryption-data}
 	 */
 	 public EncryptionDataElement newEncryptionDataElement(String checksumValue, String checksumTypeValue) {
-		EncryptionDataElement encryptionData = ((OdfFileDom) this.ownerDocument).newOdfElement(EncryptionDataElement.class);
-		encryptionData.setChecksumAttribute(checksumValue);
-		encryptionData.setChecksumTypeAttribute(checksumTypeValue);
-		this.appendChild(encryptionData);
-		return encryptionData;
+		EncryptionDataElement manifestEncryptionData = ((OdfFileDom) this.ownerDocument).newOdfElement(EncryptionDataElement.class);
+		manifestEncryptionData.setChecksumAttribute(checksumValue);
+		manifestEncryptionData.setChecksumTypeAttribute(checksumTypeValue);
+		this.appendChild(manifestEncryptionData);
+		return manifestEncryptionData;
 	}
 
 }
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/FullPathAttribute.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/FullPathAttribute.java
index e21a0f4..f866d84 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/FullPathAttribute.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/FullPathAttribute.java
@@ -1,3 +1,4 @@
+
 /************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
@@ -31,6 +32,7 @@ package org.odftoolkit.odfdom.pkg.manifest;
 import org.odftoolkit.odfdom.pkg.OdfAttribute;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
 
 /**
  * Manifest implementation of OpenDocument attribute  {@odf.attribute manifest:full-path}.
@@ -38,7 +40,7 @@ import org.odftoolkit.odfdom.pkg.OdfName;
  */
 public class FullPathAttribute extends OdfAttribute {
 
-	public static final OdfName ATTRIBUTE_NAME = OdfName.newName("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", "manifest:full-path");
+	public static final OdfName ATTRIBUTE_NAME = OdfName.newName(OdfPackageNamespace.MANIFEST, "full-path");
 
 	/**
 	 * Create the instance of OpenDocument attribute {@odf.attribute manifest:full-path}.
@@ -93,7 +95,7 @@ public class FullPathAttribute extends OdfAttribute {
 			return super.getValue();
 		} catch (IllegalArgumentException e) {
 			// TODO: validation handling/logging
-			throw new NumberFormatException("the value of full-path is not valid");
+			throw new NumberFormatException("the value of manifest:full-path is not valid");
 		}
 	}
 
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/InitialisationVectorAttribute.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/InitialisationVectorAttribute.java
index 525de5c..754cf84 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/InitialisationVectorAttribute.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/InitialisationVectorAttribute.java
@@ -1,3 +1,4 @@
+
 /************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
@@ -31,6 +32,7 @@ package org.odftoolkit.odfdom.pkg.manifest;
 import org.odftoolkit.odfdom.pkg.OdfAttribute;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
 
 /**
  * Manifest implementation of OpenDocument attribute  {@odf.attribute manifest:initialisation-vector}.
@@ -38,7 +40,7 @@ import org.odftoolkit.odfdom.pkg.OdfName;
  */
 public class InitialisationVectorAttribute extends OdfAttribute {
 
-	public static final OdfName ATTRIBUTE_NAME = OdfName.newName("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", "manifest:initialisation-vector");
+	public static final OdfName ATTRIBUTE_NAME = OdfName.newName(OdfPackageNamespace.MANIFEST, "initialisation-vector");
 
 	/**
 	 * Create the instance of OpenDocument attribute {@odf.attribute manifest:initialisation-vector}.
@@ -93,7 +95,7 @@ public class InitialisationVectorAttribute extends OdfAttribute {
 			return super.getValue();
 		} catch (IllegalArgumentException e) {
 			// TODO: validation handling/logging
-			throw new NumberFormatException("the value of initialisation-vector is not valid");
+			throw new NumberFormatException("the value of manifest:initialisation-vector is not valid");
 		}
 	}
 
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/IterationCountAttribute.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/IterationCountAttribute.java
index 6a250b2..7cae61b 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/IterationCountAttribute.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/IterationCountAttribute.java
@@ -1,3 +1,4 @@
+
 /************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
@@ -31,6 +32,7 @@ package org.odftoolkit.odfdom.pkg.manifest;
 import org.odftoolkit.odfdom.pkg.OdfAttribute;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
 
 /**
  * Manifest implementation of OpenDocument attribute  {@odf.attribute manifest:iteration-count}.
@@ -38,7 +40,7 @@ import org.odftoolkit.odfdom.pkg.OdfName;
  */
 public class IterationCountAttribute extends OdfAttribute {
 
-	public static final OdfName ATTRIBUTE_NAME = OdfName.newName("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", "manifest:iteration-count");
+	public static final OdfName ATTRIBUTE_NAME = OdfName.newName(OdfPackageNamespace.MANIFEST, "iteration-count");
 
 	/**
 	 * Create the instance of OpenDocument attribute {@odf.attribute manifest:iteration-count}.
@@ -113,7 +115,7 @@ public class IterationCountAttribute extends OdfAttribute {
 			return super.getValue();
 		} catch (IllegalArgumentException e) {
 			// TODO: validation handling/logging
-			throw new NumberFormatException("the value of iteration-count is not valid");
+			throw new NumberFormatException("the value of manifest:iteration-count is not valid");
 		}
 	}
 
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/KeyDerivationElement.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/KeyDerivationElement.java
index c85ce80..7e97079 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/KeyDerivationElement.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/KeyDerivationElement.java
@@ -1,3 +1,4 @@
+
 /************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
@@ -31,18 +32,21 @@ package org.odftoolkit.odfdom.pkg.manifest;
 import org.odftoolkit.odfdom.pkg.OdfElement;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
+
+
 /**
  * Manifest implementation of OpenDocument element  {@odf.element manifest:key-derivation}.
  *
  */
 public class KeyDerivationElement extends OdfElement {
 
-	public static final OdfName ELEMENT_NAME = OdfName.newName("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", "manifest:key-derivation");
+	public static final OdfName ELEMENT_NAME = OdfName.newName(OdfPackageNamespace.MANIFEST, "key-derivation");
 
 	/**
 	 * Create the instance of <code>KeyDerivationElement</code>
 	 *
-	 * @param  ownerDoc  The type is <code>OdfFileDom</code>
+	 * @param  ownerDoc     The type is <code>OdfFileDom</code>
 	 */
 	public KeyDerivationElement(OdfFileDom ownerDoc) {
 		super(ownerDoc, ELEMENT_NAME);
@@ -53,6 +57,7 @@ public class KeyDerivationElement extends OdfElement {
 	 *
 	 * @return  return   <code>OdfName</code> the name of element {@odf.element manifest:key-derivation}.
 	 */
+    @Override
 	public OdfName getOdfName() {
 		return ELEMENT_NAME;
 	}
@@ -65,7 +70,7 @@ public class KeyDerivationElement extends OdfElement {
 	 * @return - the <code>Integer</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
 	 */
 	public Integer getIterationCountAttribute() {
-		IterationCountAttribute attr = (IterationCountAttribute) getOdfAttribute(IterationCountAttribute.ATTRIBUTE_NAME);
+		IterationCountAttribute attr = (IterationCountAttribute) getOdfAttribute(OdfPackageNamespace.MANIFEST, "iteration-count");
 		if (attr != null) {
 			return Integer.valueOf(attr.intValue());
 		}
@@ -91,7 +96,7 @@ public class KeyDerivationElement extends OdfElement {
 	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
 	 */
 	public String getKeyDerivationNameAttribute() {
-		KeyDerivationNameAttribute attr = (KeyDerivationNameAttribute) getOdfAttribute(KeyDerivationNameAttribute.ATTRIBUTE_NAME);
+		KeyDerivationNameAttribute attr = (KeyDerivationNameAttribute) getOdfAttribute(OdfPackageNamespace.MANIFEST, "key-derivation-name");
 		if (attr != null) {
 			return String.valueOf(attr.getValue());
 		}
@@ -115,7 +120,7 @@ public class KeyDerivationElement extends OdfElement {
 	 * @return - the <code>Integer</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
 	 */
 	public Integer getKeySizeAttribute() {
-		KeySizeAttribute attr = (KeySizeAttribute) getOdfAttribute(KeySizeAttribute.ATTRIBUTE_NAME);
+		KeySizeAttribute attr = (KeySizeAttribute) getOdfAttribute(OdfPackageNamespace.MANIFEST, "key-size");
 		if (attr != null) {
 			return Integer.valueOf(attr.intValue());
 		}
@@ -141,7 +146,7 @@ public class KeyDerivationElement extends OdfElement {
 	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
 	 */
 	public String getSaltAttribute() {
-		SaltAttribute attr = (SaltAttribute) getOdfAttribute(SaltAttribute.ATTRIBUTE_NAME);
+		SaltAttribute attr = (SaltAttribute) getOdfAttribute(OdfPackageNamespace.MANIFEST, "salt");
 		if (attr != null) {
 			return String.valueOf(attr.getValue());
 		}
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/KeyDerivationNameAttribute.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/KeyDerivationNameAttribute.java
index c345d27..6755038 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/KeyDerivationNameAttribute.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/KeyDerivationNameAttribute.java
@@ -1,3 +1,4 @@
+
 /************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
@@ -31,6 +32,7 @@ package org.odftoolkit.odfdom.pkg.manifest;
 import org.odftoolkit.odfdom.pkg.OdfAttribute;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
 
 /**
  * Manifest implementation of OpenDocument attribute  {@odf.attribute manifest:key-derivation-name}.
@@ -38,7 +40,7 @@ import org.odftoolkit.odfdom.pkg.OdfName;
  */
 public class KeyDerivationNameAttribute extends OdfAttribute {
 
-	public static final OdfName ATTRIBUTE_NAME = OdfName.newName("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", "manifest:key-derivation-name");
+	public static final OdfName ATTRIBUTE_NAME = OdfName.newName(OdfPackageNamespace.MANIFEST, "key-derivation-name");
 
 	/**
 	 * Create the instance of OpenDocument attribute {@odf.attribute manifest:key-derivation-name}.
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/KeySizeAttribute.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/KeySizeAttribute.java
index 2c1437a..35435bd 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/KeySizeAttribute.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/KeySizeAttribute.java
@@ -1,3 +1,4 @@
+
 /************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
@@ -31,6 +32,7 @@ package org.odftoolkit.odfdom.pkg.manifest;
 import org.odftoolkit.odfdom.pkg.OdfAttribute;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
 
 /**
  * Manifest implementation of OpenDocument attribute  {@odf.attribute manifest:key-size}.
@@ -38,7 +40,7 @@ import org.odftoolkit.odfdom.pkg.OdfName;
  */
 public class KeySizeAttribute extends OdfAttribute {
 
-	public static final OdfName ATTRIBUTE_NAME = OdfName.newName("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", "manifest:key-size");
+	public static final OdfName ATTRIBUTE_NAME = OdfName.newName(OdfPackageNamespace.MANIFEST, "key-size");
 
 	/**
 	 * Create the instance of OpenDocument attribute {@odf.attribute manifest:key-size}.
@@ -113,7 +115,7 @@ public class KeySizeAttribute extends OdfAttribute {
 			return super.getValue();
 		} catch (IllegalArgumentException e) {
 			// TODO: validation handling/logging
-			throw new NumberFormatException("the value of key-size is not valid");
+			throw new NumberFormatException("the value of manifest:key-size is not valid");
 		}
 	}
 
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/ManifestElement.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/ManifestElement.java
index e8ce4dc..774dc27 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/ManifestElement.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/ManifestElement.java
@@ -1,3 +1,4 @@
+
 /************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
@@ -31,18 +32,21 @@ package org.odftoolkit.odfdom.pkg.manifest;
 import org.odftoolkit.odfdom.pkg.OdfElement;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
+
+
 /**
  * Manifest implementation of OpenDocument element  {@odf.element manifest:manifest}.
  *
  */
 public class ManifestElement extends OdfElement {
 
-	public static final OdfName ELEMENT_NAME = OdfName.newName("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", "manifest:manifest");
+	public static final OdfName ELEMENT_NAME = OdfName.newName(OdfPackageNamespace.MANIFEST, "manifest");
 
 	/**
 	 * Create the instance of <code>ManifestElement</code>
 	 *
-	 * @param  ownerDoc  The type is <code>OdfFileDom</code>
+	 * @param  ownerDoc     The type is <code>OdfFileDom</code>
 	 */
 	public ManifestElement(OdfFileDom ownerDoc) {
 		super(ownerDoc, ELEMENT_NAME);
@@ -53,6 +57,7 @@ public class ManifestElement extends OdfElement {
 	 *
 	 * @return  return   <code>OdfName</code> the name of element {@odf.element manifest:manifest}.
 	 */
+    @Override
 	public OdfName getOdfName() {
 		return ELEMENT_NAME;
 	}
@@ -65,7 +70,7 @@ public class ManifestElement extends OdfElement {
 	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
 	 */
 	public String getVersionAttribute() {
-		VersionAttribute attr = (VersionAttribute) getOdfAttribute(VersionAttribute.ATTRIBUTE_NAME);
+		VersionAttribute attr = (VersionAttribute) getOdfAttribute(OdfPackageNamespace.MANIFEST, "version");
 		if (attr != null) {
 			return String.valueOf(attr.getValue());
 		}
@@ -95,11 +100,11 @@ public class ManifestElement extends OdfElement {
 	 * @return the element {@odf.element manifest:file-entry}
 	 */
 	 public FileEntryElement newFileEntryElement(String fullPathValue, String mediaTypeValue) {
-		FileEntryElement fileEntry = ((OdfFileDom) this.ownerDocument).newOdfElement(FileEntryElement.class);
-		fileEntry.setFullPathAttribute(fullPathValue);
-		fileEntry.setMediaTypeAttribute(mediaTypeValue);
-		this.appendChild(fileEntry);
-		return fileEntry;
+		FileEntryElement manifestFileEntry = ((OdfFileDom) this.ownerDocument).newOdfElement(FileEntryElement.class);
+		manifestFileEntry.setFullPathAttribute(fullPathValue);
+		manifestFileEntry.setMediaTypeAttribute(mediaTypeValue);
+		this.appendChild(manifestFileEntry);
+		return manifestFileEntry;
 	}
 
 }
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/MediaTypeAttribute.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/MediaTypeAttribute.java
index c3aab9c..7195567 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/MediaTypeAttribute.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/MediaTypeAttribute.java
@@ -1,3 +1,4 @@
+
 /************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
@@ -31,6 +32,7 @@ package org.odftoolkit.odfdom.pkg.manifest;
 import org.odftoolkit.odfdom.pkg.OdfAttribute;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
 
 /**
  * Manifest implementation of OpenDocument attribute  {@odf.attribute manifest:media-type}.
@@ -38,7 +40,7 @@ import org.odftoolkit.odfdom.pkg.OdfName;
  */
 public class MediaTypeAttribute extends OdfAttribute {
 
-	public static final OdfName ATTRIBUTE_NAME = OdfName.newName("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", "manifest:media-type");
+	public static final OdfName ATTRIBUTE_NAME = OdfName.newName(OdfPackageNamespace.MANIFEST, "media-type");
 
 	/**
 	 * Create the instance of OpenDocument attribute {@odf.attribute manifest:media-type}.
@@ -93,7 +95,7 @@ public class MediaTypeAttribute extends OdfAttribute {
 			return super.getValue();
 		} catch (IllegalArgumentException e) {
 			// TODO: validation handling/logging
-			throw new NumberFormatException("the value of media-type is not valid");
+			throw new NumberFormatException("the value of manifest:media-type is not valid");
 		}
 	}
 
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/OdfManifestDom.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/OdfManifestDom.java
index 43d68d9..33c7e8c 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/OdfManifestDom.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/OdfManifestDom.java
@@ -25,23 +25,22 @@ package org.odftoolkit.odfdom.pkg.manifest;
 
 import javax.xml.xpath.XPath;
 import javax.xml.xpath.XPathFactory;
-
 import org.odftoolkit.odfdom.dom.OdfSchemaDocument;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfPackage;
 
 /**
  * The DOM representation of the ODF manifest.xml file of an ODF document.
- * 
+ *
  * @since 0.8.9
  */
 public class OdfManifestDom extends OdfFileDom {
-	
+
 	private static final long serialVersionUID = 8149848234988627233L;
-	
+
 	/**
 	 * Creates the DOM representation of an XML file of an Odf document.
-	 * 
+	 *
 	 * @param odfDocument
 	 *            the document the XML files belongs to
 	 * @param packagePath
@@ -50,10 +49,10 @@ public class OdfManifestDom extends OdfFileDom {
 	public OdfManifestDom(OdfSchemaDocument odfDocument, String packagePath) {
 		super(odfDocument, packagePath);
 	}
-	
+
 	/**
 	 * Creates the DOM representation of an XML file of an Odf document.
-	 * 
+	 *
 	 * @param pkg
 	 *            the package the XML files belongs to
 	 * @param packagePath
@@ -62,7 +61,7 @@ public class OdfManifestDom extends OdfFileDom {
 	public OdfManifestDom(OdfPackage pkg, String packagePath) {
 		super(pkg, packagePath);
 	}
-	
+
 	/**
 	 * Might be used to initialize specific XML Namespace prefixes/URIs for this
 	 * XML file
@@ -73,7 +72,7 @@ public class OdfManifestDom extends OdfFileDom {
 		mPrefixByUri.put("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", "manifest");
 		super.initialize();
 	}
-	
+
 	/**
 	 * @return The root element <manifest:manifest > of the manifest.xml file as
 	 *         <code>ManifestElement</code>.
@@ -82,12 +81,12 @@ public class OdfManifestDom extends OdfFileDom {
 	public ManifestElement getRootElement() {
 		return (ManifestElement) getDocumentElement();
 	}
-	
+
 	/**
 	 * Creates an JDK <code>XPath</code> instance. Initialized with ODF
 	 * namespaces from <code>OdfDocumentNamespace</code>. Updated with all
 	 * namespace of the XML file.
-	 * 
+	 *
 	 * @return an XPath instance with namespace context set to include the
 	 *         standard ODFDOM prefixes.
 	 */
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/PreferredViewModeAttribute.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/PreferredViewModeAttribute.java
index e6cb6af..f0d770e 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/PreferredViewModeAttribute.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/PreferredViewModeAttribute.java
@@ -1,3 +1,4 @@
+
 /************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
@@ -31,6 +32,7 @@ package org.odftoolkit.odfdom.pkg.manifest;
 import org.odftoolkit.odfdom.pkg.OdfAttribute;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
 
 /**
  * Manifest implementation of OpenDocument attribute  {@odf.attribute manifest:preferred-view-mode}.
@@ -38,7 +40,7 @@ import org.odftoolkit.odfdom.pkg.OdfName;
  */
 public class PreferredViewModeAttribute extends OdfAttribute {
 
-	public static final OdfName ATTRIBUTE_NAME = OdfName.newName("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", "manifest:preferred-view-mode");
+	public static final OdfName ATTRIBUTE_NAME = OdfName.newName(OdfPackageNamespace.MANIFEST, "preferred-view-mode");
 
 	/**
 	 * Create the instance of OpenDocument attribute {@odf.attribute manifest:preferred-view-mode}.
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/SaltAttribute.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/SaltAttribute.java
index 8dd6016..9a71be7 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/SaltAttribute.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/SaltAttribute.java
@@ -1,3 +1,4 @@
+
 /************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
@@ -31,6 +32,7 @@ package org.odftoolkit.odfdom.pkg.manifest;
 import org.odftoolkit.odfdom.pkg.OdfAttribute;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
 
 /**
  * Manifest implementation of OpenDocument attribute  {@odf.attribute manifest:salt}.
@@ -38,7 +40,7 @@ import org.odftoolkit.odfdom.pkg.OdfName;
  */
 public class SaltAttribute extends OdfAttribute {
 
-	public static final OdfName ATTRIBUTE_NAME = OdfName.newName("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", "manifest:salt");
+	public static final OdfName ATTRIBUTE_NAME = OdfName.newName(OdfPackageNamespace.MANIFEST, "salt");
 
 	/**
 	 * Create the instance of OpenDocument attribute {@odf.attribute manifest:salt}.
@@ -93,7 +95,7 @@ public class SaltAttribute extends OdfAttribute {
 			return super.getValue();
 		} catch (IllegalArgumentException e) {
 			// TODO: validation handling/logging
-			throw new NumberFormatException("the value of salt is not valid");
+			throw new NumberFormatException("the value of manifest:salt is not valid");
 		}
 	}
 
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/SizeAttribute.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/SizeAttribute.java
index 529f033..ddcf305 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/SizeAttribute.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/SizeAttribute.java
@@ -1,3 +1,4 @@
+
 /************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
@@ -31,6 +32,7 @@ package org.odftoolkit.odfdom.pkg.manifest;
 import org.odftoolkit.odfdom.pkg.OdfAttribute;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
 
 /**
  * Manifest implementation of OpenDocument attribute  {@odf.attribute manifest:size}.
@@ -38,7 +40,7 @@ import org.odftoolkit.odfdom.pkg.OdfName;
  */
 public class SizeAttribute extends OdfAttribute {
 
-	public static final OdfName ATTRIBUTE_NAME = OdfName.newName("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", "manifest:size");
+	public static final OdfName ATTRIBUTE_NAME = OdfName.newName(OdfPackageNamespace.MANIFEST, "size");
 
 	/**
 	 * Create the instance of OpenDocument attribute {@odf.attribute manifest:size}.
@@ -113,7 +115,7 @@ public class SizeAttribute extends OdfAttribute {
 			return super.getValue();
 		} catch (IllegalArgumentException e) {
 			// TODO: validation handling/logging
-			throw new NumberFormatException("the value of size is not valid");
+			throw new NumberFormatException("the value of manifest:size is not valid");
 		}
 	}
 
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/StartKeyGenerationElement.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/StartKeyGenerationElement.java
index 5f37287..ccacf21 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/StartKeyGenerationElement.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/StartKeyGenerationElement.java
@@ -1,3 +1,4 @@
+
 /************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
@@ -31,18 +32,21 @@ package org.odftoolkit.odfdom.pkg.manifest;
 import org.odftoolkit.odfdom.pkg.OdfElement;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
+
+
 /**
  * Manifest implementation of OpenDocument element  {@odf.element manifest:start-key-generation}.
  *
  */
 public class StartKeyGenerationElement extends OdfElement {
 
-	public static final OdfName ELEMENT_NAME = OdfName.newName("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", "manifest:start-key-generation");
+	public static final OdfName ELEMENT_NAME = OdfName.newName(OdfPackageNamespace.MANIFEST, "start-key-generation");
 
 	/**
 	 * Create the instance of <code>StartKeyGenerationElement</code>
 	 *
-	 * @param  ownerDoc  The type is <code>OdfFileDom</code>
+	 * @param  ownerDoc     The type is <code>OdfFileDom</code>
 	 */
 	public StartKeyGenerationElement(OdfFileDom ownerDoc) {
 		super(ownerDoc, ELEMENT_NAME);
@@ -53,6 +57,7 @@ public class StartKeyGenerationElement extends OdfElement {
 	 *
 	 * @return  return   <code>OdfName</code> the name of element {@odf.element manifest:start-key-generation}.
 	 */
+    @Override
 	public OdfName getOdfName() {
 		return ELEMENT_NAME;
 	}
@@ -63,7 +68,7 @@ public class StartKeyGenerationElement extends OdfElement {
 	 * @return - the <code>Integer</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
 	 */
 	public Integer getKeySizeAttribute() {
-		KeySizeAttribute attr = (KeySizeAttribute) getOdfAttribute(KeySizeAttribute.ATTRIBUTE_NAME);
+		KeySizeAttribute attr = (KeySizeAttribute) getOdfAttribute(OdfPackageNamespace.MANIFEST, "key-size");
 		if (attr != null) {
 			return Integer.valueOf(attr.intValue());
 		}
@@ -89,7 +94,7 @@ public class StartKeyGenerationElement extends OdfElement {
 	 * @return - the <code>String</code> , the value or <code>null</code>, if the attribute is not set and no default value defined.
 	 */
 	public String getStartKeyGenerationNameAttribute() {
-		StartKeyGenerationNameAttribute attr = (StartKeyGenerationNameAttribute) getOdfAttribute(StartKeyGenerationNameAttribute.ATTRIBUTE_NAME);
+		StartKeyGenerationNameAttribute attr = (StartKeyGenerationNameAttribute) getOdfAttribute(OdfPackageNamespace.MANIFEST, "start-key-generation-name");
 		if (attr != null) {
 			return String.valueOf(attr.getValue());
 		}
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/StartKeyGenerationNameAttribute.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/StartKeyGenerationNameAttribute.java
index 4d4687c..952c53d 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/StartKeyGenerationNameAttribute.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/StartKeyGenerationNameAttribute.java
@@ -1,3 +1,4 @@
+
 /************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
@@ -31,6 +32,7 @@ package org.odftoolkit.odfdom.pkg.manifest;
 import org.odftoolkit.odfdom.pkg.OdfAttribute;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
 
 /**
  * Manifest implementation of OpenDocument attribute  {@odf.attribute manifest:start-key-generation-name}.
@@ -38,7 +40,7 @@ import org.odftoolkit.odfdom.pkg.OdfName;
  */
 public class StartKeyGenerationNameAttribute extends OdfAttribute {
 
-	public static final OdfName ATTRIBUTE_NAME = OdfName.newName("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", "manifest:start-key-generation-name");
+	public static final OdfName ATTRIBUTE_NAME = OdfName.newName(OdfPackageNamespace.MANIFEST, "start-key-generation-name");
 
 	/**
 	 * Create the instance of OpenDocument attribute {@odf.attribute manifest:start-key-generation-name}.
diff --git a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/VersionAttribute.java b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/VersionAttribute.java
index c14edde..58adaca 100644
--- a/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/VersionAttribute.java
+++ b/odfdom/src/main/java/org/odftoolkit/odfdom/pkg/manifest/VersionAttribute.java
@@ -1,3 +1,4 @@
+
 /************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
@@ -31,6 +32,7 @@ package org.odftoolkit.odfdom.pkg.manifest;
 import org.odftoolkit.odfdom.pkg.OdfAttribute;
 import org.odftoolkit.odfdom.pkg.OdfFileDom;
 import org.odftoolkit.odfdom.pkg.OdfName;
+import org.odftoolkit.odfdom.pkg.OdfPackageNamespace;
 
 /**
  * Manifest implementation of OpenDocument attribute  {@odf.attribute manifest:version}.
@@ -38,7 +40,7 @@ import org.odftoolkit.odfdom.pkg.OdfName;
  */
 public class VersionAttribute extends OdfAttribute {
 
-	public static final OdfName ATTRIBUTE_NAME = OdfName.newName("urn:oasis:names:tc:opendocument:xmlns:manifest:1.0", "manifest:version");
+	public static final OdfName ATTRIBUTE_NAME = OdfName.newName(OdfPackageNamespace.MANIFEST, "version");
 
 	/**
 	 * Create the instance of OpenDocument attribute {@odf.attribute manifest:version}.


Mime
View raw message