You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by gb...@apache.org on 2012/08/24 21:04:42 UTC

svn commit: r1377052 - in /pdfbox/branches/xmpbox-refactoring/xmpbox/src: main/java/org/apache/padaf/xmpbox/parser/ main/java/org/apache/padaf/xmpbox/type/ test/java/org/apache/padaf/xmpbox/ test/resources/validxmp/

Author: gbailleul
Date: Fri Aug 24 19:04:42 2012
New Revision: 1377052

URL: http://svn.apache.org/viewvc?rev=1377052&view=rev
Log:
PDFBOX-1343: Simplification of parsing using type description classes

Added:
    pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/TestXMPWithDefinedSchemas.java
    pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/
    pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/Notepad++_A1b.xmp
    pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/ghost2.xmp
    pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/history2.rdf
    pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/override_ns.rdf
Modified:
    pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/parser/StructuredPropertyParser.java
    pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/parser/XMPDocumentBuilder.java
    pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/TypeDescription.java
    pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/TypeMapping.java

Modified: pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/parser/StructuredPropertyParser.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/parser/StructuredPropertyParser.java?rev=1377052&r1=1377051&r2=1377052&view=diff
==============================================================================
--- pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/parser/StructuredPropertyParser.java (original)
+++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/parser/StructuredPropertyParser.java Fri Aug 24 19:04:42 2012
@@ -45,25 +45,25 @@ public class StructuredPropertyParser {
 
 	private XMPDocumentBuilder builder = null;
 
-	private Class<? extends AbstractStructuredType> typeClass = null;
+	private TypeDescription description = null;
 
 	private PropMapping propDesc = null;
 	
 	private boolean isDefinedStructureType = false;
 	
 
-	public StructuredPropertyParser(XMPDocumentBuilder builder, Class<? extends AbstractStructuredType> propertyTypeClass) 
+	public StructuredPropertyParser(XMPDocumentBuilder builder, TypeDescription td) 
 			throws XmpPropertyFormatException {
 		this.builder = builder;
-		this.typeClass = propertyTypeClass;
+		this.description = td;
 		// retrieve xmp properties
-		this.propDesc = ReflectHelper.initializePropMapping(null, propertyTypeClass);
-		this.isDefinedStructureType = DefinedStructuredType.class.isAssignableFrom(typeClass); 
+		this.propDesc = ReflectHelper.initializePropMapping(null, td.getTypeClass());
+		this.isDefinedStructureType = DefinedStructuredType.class.isAssignableFrom(td.getTypeClass()); 
 	}
 
 	private AbstractStructuredType instanciateProperty (XMPMetadata metadata) throws XmpParsingException {
 		try {
-			return metadata.getTypeMapping().instanciateStructuredType(metadata, typeClass);
+			return metadata.getTypeMapping().instanciateStructuredType(metadata, description);
 		} catch (BadFieldValueException e) {
 			throw new XmpParsingException ("Failed to instanciate property",e);
 		}
@@ -72,7 +72,6 @@ public class StructuredPropertyParser {
 
 
 	private boolean isParseTypeResource (XMLStreamReader reader) {
-		//		XMLStreamReader reader = builder.getReader();
 		int count = reader.getAttributeCount();
 		for (int i=0; i < count ; i++) {
 			if ("parseType".equals(reader.getAttributeLocalName(i))) {
@@ -192,17 +191,13 @@ public class StructuredPropertyParser {
 					String ptype = td.getProperties().getPropertyType(eltName.getLocalPart());
 					if (metadata.getTypeMapping().isStructuredType(ptype)) {
 						TypeDescription tclass = metadata.getTypeMapping().getTypeDescription(ptype);
-						Class<? extends AbstractStructuredType> tcn = (Class<? extends AbstractStructuredType>)tclass.getTypeClass();
-						StructuredPropertyParser sp = new StructuredPropertyParser(builder, tcn);
+						StructuredPropertyParser sp = new StructuredPropertyParser(builder, tclass);
 						sp.parseSimple(metadata, reader.getName(), property.getContainer(),isSubSkipDescription,subExpected);// TODO
 					} else if (metadata.getTypeMapping().getArrayType(ptype)!=null) {
 						int pos = ptype.indexOf(' ');
 						String arrayType = metadata.getTypeMapping().getArrayType(ptype);
 						String typeInArray = ptype.substring(pos+1);
-
 						TypeDescription tclass = metadata.getTypeMapping().getTypeDescription(typeInArray);
-						Class<? extends AbstractStructuredType> tcn = (Class<? extends AbstractStructuredType>)tclass.getTypeClass();
-
 						ArrayProperty cp = new ArrayProperty(metadata,null,
 								eltName.getPrefix(), eltName.getLocalPart(),
 								arrayType);
@@ -214,7 +209,7 @@ public class StructuredPropertyParser {
 						if (reader.getLocalName().equals("li")) {
 							// array elements
 							while (reader.getEventType()==XMLStreamConstants.START_ELEMENT && reader.getName().getLocalPart().equals("li")) {
-								StructuredPropertyParser sp = new StructuredPropertyParser(builder, tcn);
+								StructuredPropertyParser sp = new StructuredPropertyParser(builder, tclass);
 								sp.parse(metadata, reader.getName(), cp.getContainer());
 								reader.nextTag();
 							}

Modified: pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/parser/XMPDocumentBuilder.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/parser/XMPDocumentBuilder.java?rev=1377052&r1=1377051&r2=1377052&view=diff
==============================================================================
--- pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/parser/XMPDocumentBuilder.java (original)
+++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/parser/XMPDocumentBuilder.java Fri Aug 24 19:04:42 2012
@@ -56,7 +56,6 @@ import org.apache.padaf.xmpbox.type.PDFA
 import org.apache.padaf.xmpbox.type.PDFAPropertyType;
 import org.apache.padaf.xmpbox.type.PDFASchemaType;
 import org.apache.padaf.xmpbox.type.PDFATypeType;
-import org.apache.padaf.xmpbox.type.TextType;
 import org.apache.padaf.xmpbox.type.TypeDescription;
 import org.apache.padaf.xmpbox.type.TypeMapping;
 import org.apache.pdfbox.io.IOUtils;
@@ -786,9 +785,8 @@ public class XMPDocumentBuilder {
 	}
 
 	private void parseSimpleProperty(XMPMetadata metadata,	QName propertyName, 
-			Class<? extends AbstractSimpleProperty> typeclass, ComplexPropertyContainer container)	
+			TypeDescription description, ComplexPropertyContainer container)	
 					throws XmpUnknownPropertyTypeException, XmpPropertyFormatException,	XMLStreamException {
-		Class<? extends AbstractSimpleProperty> tclass = (Class<? extends AbstractSimpleProperty>)typeclass;
 		try {
 			AbstractSimpleProperty prop = null;
 			ArrayList<Attribute> attributes = new ArrayList<Attribute>();
@@ -800,7 +798,7 @@ public class XMPDocumentBuilder {
 						.getAttributeValue(i)));
 			}
 			prop = metadata.getTypeMapping().instanciateSimpleProperty(metadata, null, propertyName.getPrefix(), 
-					propertyName.getLocalPart(), reader.get().getElementText(),metadata.getTypeMapping().getType(tclass));
+					propertyName.getLocalPart(), reader.get().getElementText(),description.getType());
 			if (prop != null) {
 				container.addProperty(prop);
 				// ADD ATTRIBUTES
@@ -850,7 +848,7 @@ public class XMPDocumentBuilder {
 
 
 	private void parseSimplePropertyArray(XMPMetadata metadata, QName name, String ctype,
-			Class<? extends AbstractSimpleProperty> stype, ComplexPropertyContainer container)
+			TypeDescription td, ComplexPropertyContainer container)
 					throws XmpUnexpectedTypeException, XmpParsingException,
 					XMLStreamException, XmpUnknownPropertyTypeException,
 					XmpPropertyFormatException {
@@ -865,7 +863,7 @@ public class XMPDocumentBuilder {
 		int elmtType = reader.get().nextTag();
 		while ((elmtType != XMLStreamReader.END_ELEMENT)
 				&& !reader.get().getName().getLocalPart().equals(ctype)) {
-			parseSimpleProperty(metadata, reader.get().getName(), stype, cp
+			parseSimpleProperty(metadata, reader.get().getName(), td, cp
 					.getContainer());
 			elmtType = reader.get().nextTag();
 
@@ -923,15 +921,14 @@ public class XMPDocumentBuilder {
 		String type = getPropertyDeclarationInNamespaces(schema, propertyName);
 		// found type, manage it
 		if (type.equals("Lang Alt")) {
-			parseSimplePropertyArray(metadata, propertyName, ArrayProperty.ALTERNATIVE_ARRAY, TextType.class, schema.getContent());
+			parseSimplePropertyArray(metadata, propertyName, ArrayProperty.ALTERNATIVE_ARRAY, typeMapping.getTypeDescription("Text"), schema.getContent());
 		} else if (typeMapping.isSimpleType(type)) {
 			TypeDescription tclass = typeMapping.getTypeDescription(type);
-			Class<? extends AbstractSimpleProperty> tcn = (Class<? extends AbstractSimpleProperty>)tclass.getTypeClass();
-			parseSimpleProperty(metadata, propertyName, tcn, schema.getContent());
+			parseSimpleProperty(metadata, propertyName, tclass, schema.getContent());
 		} else if (typeMapping.isStructuredType(type)) {
 			TypeDescription tclass = typeMapping.getTypeDescription(type);
 			StructuredPropertyParser parser = new StructuredPropertyParser(
-					this, (Class<? extends AbstractStructuredType>)tclass.getTypeClass());
+					this, tclass);
 			parseStructuredProperty(metadata, parser, schema.getContent());
 		} else if (typeMapping.getArrayType(type)!=null) {
 			// retrieve array type and content type
@@ -947,12 +944,12 @@ public class XMPDocumentBuilder {
 						metadata, 
 						propertyName, 
 						arrayType, 
-						(Class<? extends AbstractSimpleProperty>)tcn,
+						tclass,
 						schema.getContent());
 			} else if (AbstractStructuredType.class.isAssignableFrom(tcn)) {
 				// array of structured
 				StructuredPropertyParser parser = new StructuredPropertyParser(
-						this, (Class<? extends AbstractStructuredType>)tcn);
+						this, tclass);
 				parseStructuredPropertyArray(metadata, propertyName, arrayType, parser, schema.getContent());
 			} else {
 				// invalid case

Modified: pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/TypeDescription.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/TypeDescription.java?rev=1377052&r1=1377051&r2=1377052&view=diff
==============================================================================
--- pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/TypeDescription.java (original)
+++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/TypeDescription.java Fri Aug 24 19:04:42 2012
@@ -33,8 +33,6 @@ public class TypeDescription {
 	
 	private Class<? extends AbstractField> clz;
 	
-	private DefinedStructuredType definedStructuredType;
-	
 	private PropMapping properties = null;
 
 	public TypeDescription(String type, BasicType basic,Class<? extends AbstractField> clz) {
@@ -44,25 +42,6 @@ public class TypeDescription {
 		this.clz = clz;
 	}
 	
-	public TypeDescription(String type, BasicType basic, DefinedStructuredType definedStructured) {
-		super();
-		this.type = type;
-		this.basic = basic;
-		this.clz = null;
-		this.definedStructuredType = definedStructured;
-	}
-	
-
-	
-	public TypeDescription(String type, BasicType basic) {
-		this(type, basic,TextType.class);
-	}
-
-	public TypeDescription(String type) {
-		this(type,BasicType.Text,TextType.class);
-	}
-
-	
 	public String getType() {
 		return type;
 	}
@@ -82,9 +61,5 @@ public class TypeDescription {
 	protected void setProperties(PropMapping properties) {
 		this.properties = properties;
 	}
-	
-	public DefinedStructuredType getDefinedStructure () {
-		return this.definedStructuredType;
-	}
-	
+		
 }

Modified: pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/TypeMapping.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/TypeMapping.java?rev=1377052&r1=1377051&r2=1377052&view=diff
==============================================================================
--- pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/TypeMapping.java (original)
+++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/TypeMapping.java Fri Aug 24 19:04:42 2012
@@ -122,7 +122,7 @@ public final class TypeMapping {
 				PropMapping pm = ReflectHelper.initializePropMapping(ns, clz);
 				td.setProperties(pm);
 			} else {
-				PropMapping pm = initializePropMapping(ns, td.getDefinedStructure());
+				PropMapping pm = initializePropMapping(ns, null);
 				td.setProperties(pm);
 			}
 			addToStructuredMaps(td, ns);
@@ -185,22 +185,23 @@ public final class TypeMapping {
 		}
 	}
 
-	public AbstractStructuredType instanciateStructuredType (XMPMetadata metadata, Class<? extends AbstractStructuredType> propertyTypeClass) throws BadFieldValueException {
+	public AbstractStructuredType instanciateStructuredType (XMPMetadata metadata, TypeDescription td /*Class<? extends AbstractStructuredType> propertyTypeClass*/) throws BadFieldValueException {
 		try {
+			Class<? extends AbstractStructuredType> propertyTypeClass = (Class<? extends AbstractStructuredType>)td.getTypeClass();
 			Constructor<? extends AbstractStructuredType> construct = propertyTypeClass.getConstructor(new Class<?> [] {XMPMetadata.class});
 			return construct.newInstance(metadata);
 		} catch (InvocationTargetException e) {
-			throw new BadFieldValueException("Failed to instanciate structured type : "+propertyTypeClass,e);
+			throw new BadFieldValueException("Failed to instanciate structured type : "+td.getType(),e);
 		} catch (IllegalArgumentException e) {
-			throw new BadFieldValueException("Failed to instanciate structured type : "+propertyTypeClass,e);
+			throw new BadFieldValueException("Failed to instanciate structured type : "+td.getType(),e);
 		} catch (InstantiationException e) {
-			throw new BadFieldValueException("Failed to instanciate structured type : "+propertyTypeClass,e);
+			throw new BadFieldValueException("Failed to instanciate structured type : "+td.getType(),e);
 		} catch (IllegalAccessException e) {
-			throw new BadFieldValueException("Failed to instanciate structured type : "+propertyTypeClass,e);
+			throw new BadFieldValueException("Failed to instanciate structured type : "+td.getType(),e);
 		} catch (SecurityException e) {
-			throw new BadFieldValueException("Failed to instanciate structured type : "+propertyTypeClass,e);
+			throw new BadFieldValueException("Failed to instanciate structured type : "+td.getType(),e);
 		} catch (NoSuchMethodException e) {
-			throw new BadFieldValueException("Failed to instanciate structured type : "+propertyTypeClass,e);
+			throw new BadFieldValueException("Failed to instanciate structured type : "+td.getType(),e);
 		} 
 	}
 

Added: pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/TestXMPWithDefinedSchemas.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/TestXMPWithDefinedSchemas.java?rev=1377052&view=auto
==============================================================================
--- pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/TestXMPWithDefinedSchemas.java (added)
+++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/TestXMPWithDefinedSchemas.java Fri Aug 24 19:04:42 2012
@@ -0,0 +1,101 @@
+/*****************************************************************************
+ * 
+ * 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.
+ * 
+ ****************************************************************************/
+
+package org.apache.padaf.xmpbox;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Properties;
+import java.util.StringTokenizer;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.padaf.xmpbox.parser.XMPDocumentBuilder;
+import org.apache.padaf.xmpbox.schema.XMPSchema;
+import org.apache.padaf.xmpbox.type.AbstractField;
+import org.apache.padaf.xmpbox.type.AbstractSimpleProperty;
+import org.apache.padaf.xmpbox.type.AbstractStructuredType;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+@RunWith(Parameterized.class)
+public class TestXMPWithDefinedSchemas {
+
+	
+
+	@Parameters
+	public static Collection<Object[]> initializeParameters() throws Exception 
+	{
+		List<Object[]> data = new ArrayList<Object[]>();
+		data.add(new Object [] {"/validxmp/override_ns.rdf"});
+		data.add(new Object [] {"/validxmp/ghost2.xmp"});
+		data.add(new Object [] {"/validxmp/history2.rdf"});
+		data.add(new Object [] {"/validxmp/Notepad++_A1b.xmp"});
+		return data;
+	}
+
+	private String path;
+	
+	public TestXMPWithDefinedSchemas(String path) {
+		this.path = path;
+	}
+
+	
+	@Test
+	public void main() throws Exception {
+		
+//		String path = "/home/yu/Dev/PDF/invalides/Notepad++_A1b.xmp";
+//		String path = "/home/yu/Dev/PDF/invalides/Notepad++_A1b.short.xmp";
+//		String path = "/home/yu/Dev/PDF/invalides/history2.rdf";
+//		String path = "/home/yu/Dev/PDF/invalides/ghost2.xmp";
+//		String path = "/home/yu/Dev/PDF/invalides/override_ns.rdf";
+	
+		InputStream is = this.getClass().getResourceAsStream(path);
+		
+		
+		XMPDocumentBuilder builder = new XMPDocumentBuilder();
+		XMPMetadata rxmp = builder.parse(is);
+		
+//		List<XMPSchema> schemas = rxmp.getAllSchemas();
+//		for (XMPSchema schema : schemas) {
+//			System.out.println("> "+schema.getNamespaceValue());
+//			List<AbstractField> fields = schema.getAllProperties();
+//			for (AbstractField af : fields) {
+//				if (af instanceof AbstractSimpleProperty) {
+//					AbstractSimpleProperty asp = (AbstractSimpleProperty)af;
+//					System.out.println(">   "+asp.getPropertyName()+" : "+asp.toString());
+//				} else if (af instanceof AbstractStructuredType) {
+//					AbstractStructuredType ast = (AbstractStructuredType)af;
+//					System.out.println(">   "+ast.getPropertyName()+" : "+ast.toString());
+//				}
+//			}
+//		}
+	}
+
+	
+}

Added: pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/Notepad++_A1b.xmp
URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/Notepad%2B%2B_A1b.xmp?rev=1377052&view=auto
==============================================================================
--- pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/Notepad++_A1b.xmp (added)
+++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/Notepad++_A1b.xmp Fri Aug 24 19:04:42 2012
@@ -0,0 +1,162 @@
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c001 1.147551, 2012/06/12-18:11:14        ">
+   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+      <rdf:Description rdf:about=""
+            xmlns:pdf="http://ns.adobe.com/pdf/1.3/"
+            xmlns:dc="http://purl.org/dc/elements/1.1/"
+            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
+            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
+            xmlns:pdfaid="http://www.aiim.org/pdfa/ns/id/"
+            xmlns:pdfaExtension="http://www.aiim.org/pdfa/ns/extension/"
+            xmlns:pdfaSchema="http://www.aiim.org/pdfa/ns/schema#"
+            xmlns:pdfaProperty="http://www.aiim.org/pdfa/ns/property#">
+         <pdf:Producer>FOP 0.20.5</pdf:Producer>
+         <pdf:Keywords>convert</pdf:Keywords>
+         <dc:format>application/pdf</dc:format>
+         <dc:title>
+            <rdf:Alt>
+               <rdf:li xml:lang="x-default">Notepad</rdf:li>
+            </rdf:Alt>
+         </dc:title>
+         <dc:description>
+            <rdf:Alt>
+               <rdf:li xml:lang="x-default">boring</rdf:li>
+            </rdf:Alt>
+         </dc:description>
+         <dc:subject>
+            <rdf:Bag>
+               <rdf:li>convert</rdf:li>
+            </rdf:Bag>
+         </dc:subject>
+         <dc:creator>
+            <rdf:Seq>
+               <rdf:li>Bill</rdf:li>
+            </rdf:Seq>
+         </dc:creator>
+         <xmp:CreateDate>2012-07-26T07:59:36-04:00</xmp:CreateDate>
+         <xmp:ModifyDate>2012-07-26T08:00:08-04:00</xmp:ModifyDate>
+         <xmp:MetadataDate>2012-07-26T08:00:08-04:00</xmp:MetadataDate>
+         <xmpMM:DocumentID>uuid:8a3c03a1-f3be-4863-969c-6d349620a025</xmpMM:DocumentID>
+         <xmpMM:InstanceID>uuid:7aa05387-41d3-413a-9d61-164b354d5971</xmpMM:InstanceID>
+         <xmpMM:RenditionClass>default</xmpMM:RenditionClass>
+         <xmpMM:VersionID>1</xmpMM:VersionID>
+         <xmpMM:History>
+            <rdf:Seq>
+               <rdf:li rdf:parseType="Resource">
+                  <stEvt:action>converted</stEvt:action>
+                  <stEvt:instanceID>uuid:ae8e9f71-6013-4ade-a3e0-ed408df8fe9f</stEvt:instanceID>
+                  <stEvt:parameters>converted to PDF/A-1b</stEvt:parameters>
+                  <stEvt:softwareAgent>Preflight</stEvt:softwareAgent>
+                  <stEvt:when>2012-07-26T07:59:55-04:00</stEvt:when>
+               </rdf:li>
+               <rdf:li rdf:parseType="Resource">
+                  <stEvt:action>converted</stEvt:action>
+                  <stEvt:instanceID>uuid:e83fa70f-efc1-4fc7-85b6-8bd61398025b</stEvt:instanceID>
+                  <stEvt:parameters>converted to PDF/A-1b</stEvt:parameters>
+                  <stEvt:softwareAgent>Preflight</stEvt:softwareAgent>
+                  <stEvt:when>2012-07-26T08:00:01-04:00</stEvt:when>
+               </rdf:li>
+               <rdf:li rdf:parseType="Resource">
+                  <stEvt:action>converted</stEvt:action>
+                  <stEvt:instanceID>uuid:01a1cd62-6038-4c9e-a683-c8ea0c0ce5ac</stEvt:instanceID>
+                  <stEvt:parameters>converted to PDF/A-1b</stEvt:parameters>
+                  <stEvt:softwareAgent>Preflight</stEvt:softwareAgent>
+                  <stEvt:when>2012-07-26T08:00:07-04:00</stEvt:when>
+               </rdf:li>
+            </rdf:Seq>
+         </xmpMM:History>
+         <pdfaid:part>1</pdfaid:part>
+         <pdfaid:conformance>B</pdfaid:conformance>
+         <pdfaExtension:schemas>
+            <rdf:Bag>
+               <rdf:li rdf:parseType="Resource">
+                  <pdfaSchema:namespaceURI>http://ns.adobe.com/pdf/1.3/</pdfaSchema:namespaceURI>
+                  <pdfaSchema:prefix>pdf</pdfaSchema:prefix>
+                  <pdfaSchema:schema>Adobe PDF Schema</pdfaSchema:schema>
+                  <pdfaSchema:property>
+                     <rdf:Seq>
+                        <rdf:li rdf:parseType="Resource">
+                           <pdfaProperty:category>internal</pdfaProperty:category>
+                           <pdfaProperty:description>A name object indicating whether the document has been modified to include trapping information</pdfaProperty:description>
+                           <pdfaProperty:name>Trapped</pdfaProperty:name>
+                           <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+                        </rdf:li>
+                     </rdf:Seq>
+                  </pdfaSchema:property>
+               </rdf:li>
+               <rdf:li rdf:parseType="Resource">
+                  <pdfaSchema:namespaceURI>http://ns.adobe.com/xap/1.0/mm/</pdfaSchema:namespaceURI>
+                  <pdfaSchema:prefix>xmpMM</pdfaSchema:prefix>
+                  <pdfaSchema:schema>XMP Media Management Schema</pdfaSchema:schema>
+                  <pdfaSchema:property>
+                     <rdf:Seq>
+                        <rdf:li rdf:parseType="Resource">
+                           <pdfaProperty:category>internal</pdfaProperty:category>
+                           <pdfaProperty:description>UUID based identifier for specific incarnation of a document</pdfaProperty:description>
+                           <pdfaProperty:name>InstanceID</pdfaProperty:name>
+                           <pdfaProperty:valueType>URI</pdfaProperty:valueType>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <pdfaProperty:category>internal</pdfaProperty:category>
+                           <pdfaProperty:description>The common identifier for all versions and renditions of a document.</pdfaProperty:description>
+                           <pdfaProperty:name>OriginalDocumentID</pdfaProperty:name>
+                           <pdfaProperty:valueType>URI</pdfaProperty:valueType>
+                        </rdf:li>
+                     </rdf:Seq>
+                  </pdfaSchema:property>
+               </rdf:li>
+               <rdf:li rdf:parseType="Resource">
+                  <pdfaSchema:namespaceURI>http://www.aiim.org/pdfa/ns/id/</pdfaSchema:namespaceURI>
+                  <pdfaSchema:prefix>pdfaid</pdfaSchema:prefix>
+                  <pdfaSchema:schema>PDF/A ID Schema</pdfaSchema:schema>
+                  <pdfaSchema:property>
+                     <rdf:Seq>
+                        <rdf:li rdf:parseType="Resource">
+                           <pdfaProperty:category>internal</pdfaProperty:category>
+                           <pdfaProperty:description>Part of PDF/A standard</pdfaProperty:description>
+                           <pdfaProperty:name>part</pdfaProperty:name>
+                           <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <pdfaProperty:category>internal</pdfaProperty:category>
+                           <pdfaProperty:description>Amendment of PDF/A standard</pdfaProperty:description>
+                           <pdfaProperty:name>amd</pdfaProperty:name>
+                           <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <pdfaProperty:category>internal</pdfaProperty:category>
+                           <pdfaProperty:description>Conformance level of PDF/A standard</pdfaProperty:description>
+                           <pdfaProperty:name>conformance</pdfaProperty:name>
+                           <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+                        </rdf:li>
+                     </rdf:Seq>
+                  </pdfaSchema:property>
+               </rdf:li>
+            </rdf:Bag>
+         </pdfaExtension:schemas>
+      </rdf:Description>
+   </rdf:RDF>
+</x:xmpmeta>
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                           
+<?xpacket end="w"?>

Added: pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/ghost2.xmp
URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/ghost2.xmp?rev=1377052&view=auto
==============================================================================
--- pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/ghost2.xmp (added)
+++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/ghost2.xmp Fri Aug 24 19:04:42 2012
@@ -0,0 +1,159 @@
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.2-c001 63.139439, 2010/09/27-13:37:26        ">
+   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+      <rdf:Description rdf:about=""
+            xmlns:dc="http://purl.org/dc/elements/1.1/">
+         <dc:format>application/pdf</dc:format>
+         <dc:description>
+            <rdf:Alt>
+               <rdf:li xml:lang="x-default"/>
+            </rdf:Alt>
+         </dc:description>
+         <dc:title>
+            <rdf:Alt>
+               <rdf:li xml:lang="x-default"/>
+            </rdf:Alt>
+         </dc:title>
+         <dc:creator>
+            <rdf:Seq>
+               <rdf:li/>
+            </rdf:Seq>
+         </dc:creator>
+      </rdf:Description>
+      <rdf:Description rdf:about=""
+            xmlns:xmp="http://ns.adobe.com/xap/1.0/">
+         <xmp:CreateDate>2009-04-26T16:56:29-06:00</xmp:CreateDate>
+         <xmp:CreatorTool>LaTeX with hyperref package</xmp:CreatorTool>
+         <xmp:ModifyDate>2012-07-26T07:23:35-04:00</xmp:ModifyDate>
+         <xmp:MetadataDate>2012-07-26T07:23:35-04:00</xmp:MetadataDate>
+      </rdf:Description>
+      <rdf:Description rdf:about=""
+            xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
+         <pdf:Keywords/>
+         <pdf:Producer>pdfTeX-1.40.3</pdf:Producer>
+         <pdf:Trapped>False</pdf:Trapped>
+      </rdf:Description>
+      <rdf:Description rdf:about=""
+            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
+            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#">
+         <xmpMM:DocumentID>uuid:bbc5e922-8a33-4f23-803a-96bc4f7d99fb</xmpMM:DocumentID>
+         <xmpMM:InstanceID>uuid:cd6bd7b5-aaa8-4bb7-a216-6a8900317f2c</xmpMM:InstanceID>
+         <xmpMM:RenditionClass>default</xmpMM:RenditionClass>
+         <xmpMM:VersionID>1</xmpMM:VersionID>
+<!--
+         <xmpMM:History>
+            <rdf:Seq>
+               <rdf:li rdf:parseType="Resource">
+                  <stEvt:action>converted</stEvt:action>
+                  <stEvt:instanceID>uuid:a607d073-c0de-4d36-8377-d209b5a98592</stEvt:instanceID>
+                  <stEvt:parameters>converted to PDF/A-1b</stEvt:parameters>
+                  <stEvt:softwareAgent>Preflight</stEvt:softwareAgent>
+                  <stEvt:when>2012-07-26T07:23:35-04:00</stEvt:when>
+               </rdf:li>
+            </rdf:Seq>
+         </xmpMM:History>
+-->
+      </rdf:Description>
+      <rdf:Description rdf:about=""
+            xmlns:pdfaid="http://www.aiim.org/pdfa/ns/id/">
+         <pdfaid:part>1</pdfaid:part>
+         <pdfaid:conformance>B</pdfaid:conformance>
+      </rdf:Description>
+      <rdf:Description rdf:about=""
+            xmlns:pdfaExtension="http://www.aiim.org/pdfa/ns/extension/"
+            xmlns:pdfaSchema="http://www.aiim.org/pdfa/ns/schema#"
+            xmlns:pdfaProperty="http://www.aiim.org/pdfa/ns/property#">
+         <pdfaExtension:schemas>
+            <rdf:Bag>
+               <rdf:li rdf:parseType="Resource">
+                  <pdfaSchema:namespaceURI>http://ns.adobe.com/pdf/1.3/</pdfaSchema:namespaceURI>
+                  <pdfaSchema:prefix>pdf</pdfaSchema:prefix>
+                  <pdfaSchema:schema>Adobe PDF Schema</pdfaSchema:schema>
+                  <pdfaSchema:property>
+                     <rdf:Seq>
+                        <rdf:li rdf:parseType="Resource">
+                           <pdfaProperty:category>internal</pdfaProperty:category>
+                           <pdfaProperty:description>A name object indicating whether the document has been modified to include trapping information</pdfaProperty:description>
+                           <pdfaProperty:name>Trapped</pdfaProperty:name>
+                           <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+                        </rdf:li>
+                     </rdf:Seq>
+                  </pdfaSchema:property>
+               </rdf:li>
+               <rdf:li rdf:parseType="Resource">
+                  <pdfaSchema:namespaceURI>http://ns.adobe.com/xap/1.0/mm/</pdfaSchema:namespaceURI>
+                  <pdfaSchema:prefix>xmpMM</pdfaSchema:prefix>
+                  <pdfaSchema:schema>XMP Media Management Schema</pdfaSchema:schema>
+                  <pdfaSchema:property>
+                     <rdf:Seq>
+                        <rdf:li rdf:parseType="Resource">
+                           <pdfaProperty:category>internal</pdfaProperty:category>
+                           <pdfaProperty:description>UUID based identifier for specific incarnation of a document</pdfaProperty:description>
+                           <pdfaProperty:name>InstanceID</pdfaProperty:name>
+                           <pdfaProperty:valueType>URI</pdfaProperty:valueType>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <pdfaProperty:category>internal</pdfaProperty:category>
+                           <pdfaProperty:description>The common identifier for all versions and renditions of a document.</pdfaProperty:description>
+                           <pdfaProperty:name>OriginalDocumentID</pdfaProperty:name>
+                           <pdfaProperty:valueType>URI</pdfaProperty:valueType>
+                        </rdf:li>
+                     </rdf:Seq>
+                  </pdfaSchema:property>
+               </rdf:li>
+<!--
+               <rdf:li rdf:parseType="Resource">
+                  <pdfaSchema:namespaceURI>http://www.aiim.org/pdfa/ns/id/</pdfaSchema:namespaceURI>
+                  <pdfaSchema:prefix>pdfaid</pdfaSchema:prefix>
+                  <pdfaSchema:schema>PDF/A ID Schema</pdfaSchema:schema>
+                  <pdfaSchema:property>
+                     <rdf:Seq>
+                        <rdf:li rdf:parseType="Resource">
+                           <pdfaProperty:category>internal</pdfaProperty:category>
+                           <pdfaProperty:description>Part of PDF/A standard</pdfaProperty:description>
+                           <pdfaProperty:name>part</pdfaProperty:name>
+                           <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <pdfaProperty:category>internal</pdfaProperty:category>
+                           <pdfaProperty:description>Amendment of PDF/A standard</pdfaProperty:description>
+                           <pdfaProperty:name>amd</pdfaProperty:name>
+                           <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <pdfaProperty:category>internal</pdfaProperty:category>
+                           <pdfaProperty:description>Conformance level of PDF/A standard</pdfaProperty:description>
+                           <pdfaProperty:name>conformance</pdfaProperty:name>
+                           <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+                        </rdf:li>
+                     </rdf:Seq>
+                  </pdfaSchema:property>
+               </rdf:li>
+-->
+            </rdf:Bag>
+         </pdfaExtension:schemas>
+      </rdf:Description>
+   </rdf:RDF>
+</x:xmpmeta>
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                           
+<?xpacket end="w"?>

Added: pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/history2.rdf
URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/history2.rdf?rev=1377052&view=auto
==============================================================================
--- pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/history2.rdf (added)
+++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/history2.rdf Fri Aug 24 19:04:42 2012
@@ -0,0 +1,81 @@
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-jc003 DEBUG-12.345678, Tue Feb 28 14:57:12 GMT+00:00 2012">
+   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+      <rdf:Description rdf:about=""
+            xmlns:pdfaExtension="http://www.aiim.org/pdfa/ns/extension/"
+            xmlns:pdfaSchema="http://www.aiim.org/pdfa/ns/schema#"
+            xmlns:pdfaProperty="http://www.aiim.org/pdfa/ns/property#">
+         <pdfaExtension:schemas>
+            <rdf:Bag>
+               <rdf:li>
+                  <rdf:Description>
+                     <pdfaSchema:schema>The XMP Media Management Schema is primarily for use by digital asset management (DAM) systems.</pdfaSchema:schema>
+                     <pdfaSchema:namespaceURI>http://ns.adobe.com/xap/1.0/mm/</pdfaSchema:namespaceURI>
+                     <pdfaSchema:prefix>xmpMM</pdfaSchema:prefix>
+                     <pdfaSchema:property>
+                        <rdf:Seq>
+                           <rdf:li>
+                              <rdf:Description>
+                                 <pdfaProperty:name>InstanceID</pdfaProperty:name>
+                                 <pdfaProperty:valueType>URI</pdfaProperty:valueType>
+                                 <pdfaProperty:category>internal</pdfaProperty:category>
+                                 <pdfaProperty:description>UUID based identifier for specific incarnation of a document</pdfaProperty:description>
+                              </rdf:Description>
+                           </rdf:li>
+                        </rdf:Seq>
+                     </pdfaSchema:property>
+                  </rdf:Description>
+               </rdf:li>
+               <rdf:li>
+                  <rdf:Description>
+                     <pdfaSchema:namespaceURI>http://ns.adobe.com/pdfx/1.3/</pdfaSchema:namespaceURI>
+                     <pdfaSchema:prefix>pdfx</pdfaSchema:prefix>
+                     <pdfaSchema:property>
+                        <rdf:Seq>
+                           <rdf:li>
+                              <rdf:Description>
+                                 <pdfaProperty:name>GTS_PDFXConformance</pdfaProperty:name>
+                                 <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+                                 <pdfaProperty:category>internal</pdfaProperty:category>
+                                 <pdfaProperty:description>Conformance level of PDF/X standard</pdfaProperty:description>
+                              </rdf:Description>
+                           </rdf:li>
+                           <rdf:li>
+                              <rdf:Description>
+                                 <pdfaProperty:name>GTS_PDFXVersion</pdfaProperty:name>
+                                 <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+                                 <pdfaProperty:category>internal</pdfaProperty:category>
+                                 <pdfaProperty:description>ID of PDF/X standard</pdfaProperty:description>
+                              </rdf:Description>
+                           </rdf:li>
+                        </rdf:Seq>
+                     </pdfaSchema:property>
+                  </rdf:Description>
+               </rdf:li>
+            </rdf:Bag>
+         </pdfaExtension:schemas>
+      </rdf:Description>
+   </rdf:RDF>
+</x:xmpmeta>
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                           
+<?xpacket end="w"?>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
                                                                                          
\ No newline at end of file

Added: pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/override_ns.rdf
URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/override_ns.rdf?rev=1377052&view=auto
==============================================================================
--- pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/override_ns.rdf (added)
+++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/override_ns.rdf Fri Aug 24 19:04:42 2012
@@ -0,0 +1,198 @@
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Public XMP Toolkit Core 4.0">
+   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+      <rdf:Description rdf:about=""
+            xmlns:xmp="http://ns.adobe.com/xap/1.0/">
+         <xmp:CreatorTool>FrameMaker 7.0</xmp:CreatorTool>
+         <xmp:ModifyDate>2009-11-08T19:16:29+01:00</xmp:ModifyDate>
+         <xmp:CreateDate>2001-02-05T12:32:48Z</xmp:CreateDate>
+         <xmp:MetadataDate>2009-11-08T19:16:29+01:00</xmp:MetadataDate>
+      </rdf:Description>
+      <rdf:Description rdf:about=""
+            xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
+         <pdf:Copyright>Copyright 2006-2008 PDF/A Competence Center</pdf:Copyright>
+         <pdf:Producer>Acrobat Distiller 8.1.0 (Windows)</pdf:Producer>
+      </rdf:Description>
+      <rdf:Description rdf:about=""
+            xmlns:dc="http://purl.org/dc/elements/1.1/">
+         <dc:format>application/pdf</dc:format>
+         <dc:title>
+            <rdf:Alt>
+               <rdf:li xml:lang="x-default">TechNote 0001: PDF/A-1 and Namespaces</rdf:li>
+            </rdf:Alt>
+         </dc:title>
+         <dc:creator>
+            <rdf:Seq>
+               <rdf:li>PDF/A Competence Center</rdf:li>
+            </rdf:Seq>
+         </dc:creator>
+      </rdf:Description>
+      <rdf:Description rdf:about=""
+            xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/">
+         <pdfx:Copyright>Copyright 2006-2008 PDF/A Competence Center</pdfx:Copyright>
+      </rdf:Description>
+      <rdf:Description rdf:about=""
+            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/">
+         <xmpMM:DocumentID>uuid:586d5239-0535-e540-99ba-d4cfaa3b9c0e</xmpMM:DocumentID>
+         <xmpMM:InstanceID>uuid:417197b4-283d-3147-b689-63d2be1e4f45</xmpMM:InstanceID>
+         <xmpMM:RenditionClass>default</xmpMM:RenditionClass>
+         <xmpMM:VersionID>1</xmpMM:VersionID>
+      </rdf:Description>
+      <rdf:Description rdf:about=""
+            xmlns:pdfaid="http://www.aiim.org/pdfa/ns/id/">
+         <pdfaid:part>1</pdfaid:part>
+         <pdfaid:conformance>A</pdfaid:conformance>
+      </rdf:Description>
+      <rdf:Description rdf:about=""
+            xmlns:pdfaExtension="http://www.aiim.org/pdfa/ns/extension/"
+            xmlns:pdfaSchema="http://www.aiim.org/pdfa/ns/schema#"
+            xmlns:pdfaProperty="http://www.aiim.org/pdfa/ns/property#">
+         <pdfaExtension:schemas>
+            <rdf:Bag>
+               <rdf:li rdf:parseType="Resource">
+                  <pdfaSchema:namespaceURI>http://ns.adobe.com/pdf/1.3/</pdfaSchema:namespaceURI>
+                  <pdfaSchema:prefix>pdf</pdfaSchema:prefix>
+                  <pdfaSchema:schema>Adobe PDF Schema</pdfaSchema:schema>
+                  <pdfaSchema:property>
+                     <rdf:Seq>
+                        <rdf:li rdf:parseType="Resource">
+                           <pdfaProperty:category>internal</pdfaProperty:category>
+                           <pdfaProperty:description>A name object indicating whether the document has been modified to include trapping information</pdfaProperty:description>
+                           <pdfaProperty:name>Trapped</pdfaProperty:name>
+                           <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+                        </rdf:li>
+                     </rdf:Seq>
+                  </pdfaSchema:property>
+               </rdf:li>
+               <rdf:li rdf:parseType="Resource">
+                  <pdfaSchema:namespaceURI>http://ns.adobe.com/pdfx/1.3/</pdfaSchema:namespaceURI>
+                  <pdfaSchema:prefix>pdfx</pdfaSchema:prefix>
+                  <pdfaSchema:schema>PDF/X ID Schema</pdfaSchema:schema>
+                  <pdfaSchema:property>
+                     <rdf:Seq>
+                        <rdf:li rdf:parseType="Resource">
+                           <pdfaProperty:category>internal</pdfaProperty:category>
+                           <pdfaProperty:description>ID of PDF/X standard</pdfaProperty:description>
+                           <pdfaProperty:name>GTS_PDFXVersion</pdfaProperty:name>
+                           <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <pdfaProperty:category>internal</pdfaProperty:category>
+                           <pdfaProperty:description>Conformance level of PDF/X standard</pdfaProperty:description>
+                           <pdfaProperty:name>GTS_PDFXConformance</pdfaProperty:name>
+                           <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <pdfaProperty:category>internal</pdfaProperty:category>
+                           <pdfaProperty:description>Company creating the PDF</pdfaProperty:description>
+                           <pdfaProperty:name>Company</pdfaProperty:name>
+                           <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <pdfaProperty:category>internal</pdfaProperty:category>
+                           <pdfaProperty:description>Date when document was last modified</pdfaProperty:description>
+                           <pdfaProperty:name>SourceModified</pdfaProperty:name>
+                           <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+                        </rdf:li>
+                     </rdf:Seq>
+                  </pdfaSchema:property>
+               </rdf:li>
+               <rdf:li rdf:parseType="Resource">
+                  <pdfaSchema:namespaceURI>http://ns.adobe.com/xap/1.0/mm/</pdfaSchema:namespaceURI>
+                  <pdfaSchema:prefix>xmpMM</pdfaSchema:prefix>
+                  <pdfaSchema:schema>XMP Media Management Schema</pdfaSchema:schema>
+                  <pdfaSchema:property>
+                     <rdf:Seq>
+                        <rdf:li rdf:parseType="Resource">
+                           <pdfaProperty:category>internal</pdfaProperty:category>
+                           <pdfaProperty:description>UUID based identifier for specific incarnation of a document</pdfaProperty:description>
+                           <pdfaProperty:name>InstanceID</pdfaProperty:name>
+                           <pdfaProperty:valueType>URI</pdfaProperty:valueType>
+                        </rdf:li>
+                     </rdf:Seq>
+                  </pdfaSchema:property>
+               </rdf:li>
+               <rdf:li rdf:parseType="Resource">
+                  <pdfaSchema:namespaceURI>http://www.aiim.org/pdfa/ns/id/</pdfaSchema:namespaceURI>
+                  <pdfaSchema:prefix>pdfaid</pdfaSchema:prefix>
+                  <pdfaSchema:schema>PDF/A ID Schema</pdfaSchema:schema>
+                  <pdfaSchema:property>
+                     <rdf:Seq>
+                        <rdf:li rdf:parseType="Resource">
+                           <pdfaProperty:category>internal</pdfaProperty:category>
+                           <pdfaProperty:description>Part of PDF/A standard</pdfaProperty:description>
+                           <pdfaProperty:name>part</pdfaProperty:name>
+                           <pdfaProperty:valueType>Integer</pdfaProperty:valueType>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <pdfaProperty:category>internal</pdfaProperty:category>
+                           <pdfaProperty:description>Amendment of PDF/A standard</pdfaProperty:description>
+                           <pdfaProperty:name>amd</pdfaProperty:name>
+                           <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <pdfaProperty:category>internal</pdfaProperty:category>
+                           <pdfaProperty:description>Conformance level of PDF/A standard</pdfaProperty:description>
+                           <pdfaProperty:name>conformance</pdfaProperty:name>
+                           <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+                        </rdf:li>
+                     </rdf:Seq>
+                  </pdfaSchema:property>
+               </rdf:li>
+               <rdf:li rdf:parseType="Resource">
+                  <pdfaSchema:namespaceURI>http://ns.adobe.com/pdf/1.3/</pdfaSchema:namespaceURI>
+                  <pdfaSchema:prefix>pdf</pdfaSchema:prefix>
+                  <pdfaSchema:schema>Adobe PDF</pdfaSchema:schema>
+                  <pdfaSchema:property>
+                     <rdf:Seq>
+                        <rdf:li rdf:parseType="Resource">
+                           <pdfaProperty:category>external</pdfaProperty:category>
+                           <pdfaProperty:description>Copyright information (mirrored from legacy Document Info field)</pdfaProperty:description>
+                           <pdfaProperty:name>Copyright</pdfaProperty:name>
+                           <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+                        </rdf:li>
+                     </rdf:Seq>
+                  </pdfaSchema:property>
+               </rdf:li>
+               <rdf:li rdf:parseType="Resource">
+                  <pdfaSchema:namespaceURI>http://ns.adobe.com/pdfx/1.3/</pdfaSchema:namespaceURI>
+                  <pdfaSchema:prefix>pdfx</pdfaSchema:prefix>
+                  <pdfaSchema:schema>Adobe pdfx</pdfaSchema:schema>
+                  <pdfaSchema:property>
+                     <rdf:Seq>
+                        <rdf:li rdf:parseType="Resource">
+                           <pdfaProperty:category>external</pdfaProperty:category>
+                           <pdfaProperty:description>Copyright information (mirrored from legacy Document Info field)</pdfaProperty:description>
+                           <pdfaProperty:name>Copyright</pdfaProperty:name>
+                           <pdfaProperty:valueType>Text</pdfaProperty:valueType>
+                        </rdf:li>
+                     </rdf:Seq>
+                  </pdfaSchema:property>
+               </rdf:li>
+            </rdf:Bag>
+         </pdfaExtension:schemas>
+      </rdf:Description>
+   </rdf:RDF>
+</x:xmpmeta>
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                           
+<?xpacket end="w"?>
\ No newline at end of file