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/10/28 09:46:30 UTC

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

Author: gbailleul
Date: Sun Oct 28 08:46:29 2012
New Revision: 1402956

URL: http://svn.apache.org/viewvc?rev=1402956&view=rev
Log:
PDFBOX-1388: 
fixed rdf:about deserialization problem

Modified:
    pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/Attribute.java
    pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/xml/DomXmpParser.java
    pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/parser/DeserializationTest.java
    pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/emptyli.xml

Modified: pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/Attribute.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/Attribute.java?rev=1402956&r1=1402955&r2=1402956&view=diff
==============================================================================
--- pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/Attribute.java (original)
+++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/Attribute.java Sun Oct 28 08:46:29 2012
@@ -110,4 +110,10 @@ public class Attribute {
 		this.value = value;
 	}
 
+	public String toString () {
+		StringBuilder sb = new StringBuilder(80);
+		sb.append("[attr:{").append(nsURI).append("}").append(name).append("=").append(value).append("]");
+		return sb.toString();
+	}
+	
 }

Modified: pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/xml/DomXmpParser.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/xml/DomXmpParser.java?rev=1402956&r1=1402955&r2=1402956&view=diff
==============================================================================
--- pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/xml/DomXmpParser.java (original)
+++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/xml/DomXmpParser.java Sun Oct 28 08:46:29 2012
@@ -162,6 +162,7 @@ public class DomXmpParser {
 				XMPSchema schema = xmp.getSchema(namespace);
 				if (schema==null) {
 					schema = tm.getSchemaFactory(namespace).createXMPSchema(xmp, property.getPrefix());
+					loadAttributes(schema, description);
 				}
 				ComplexPropertyContainer container = schema.getContainer();
 				// create property
@@ -314,7 +315,7 @@ public class DomXmpParser {
 		}
 	}
 
-	private void loadAttributes (AbstractSimpleProperty sp, Element element) {
+	private void loadAttributes (AbstractField sp, Element element) {
 		NamedNodeMap nnm = element.getAttributes();
 		for (int i=0; i < nnm.getLength() ; i++) {
 			Attr attr = (Attr)nnm.item(i);

Modified: pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/parser/DeserializationTest.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/parser/DeserializationTest.java?rev=1402956&r1=1402955&r2=1402956&view=diff
==============================================================================
--- pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/parser/DeserializationTest.java (original)
+++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/parser/DeserializationTest.java Sun Oct 28 08:46:29 2012
@@ -28,6 +28,8 @@ import java.util.List;
 import org.apache.padaf.xmpbox.DateConverter;
 import org.apache.padaf.xmpbox.XMPMetadata;
 import org.apache.padaf.xmpbox.schema.DublinCoreSchema;
+import org.apache.padaf.xmpbox.schema.XMPSchema;
+import org.apache.padaf.xmpbox.type.Attribute;
 import org.apache.padaf.xmpbox.type.ThumbnailType;
 import org.apache.padaf.xmpbox.xml.DomXmpParser;
 import org.apache.padaf.xmpbox.xml.XmpParsingException;
@@ -283,4 +285,17 @@ public class DeserializationTest {
 		}
 	}
 
+	@Test
+	public void testRdfAboutFound() throws Exception {
+		InputStream fis = DomXmpParser.class
+				.getResourceAsStream("/validxmp/emptyli.xml");
+		DomXmpParser xdb = new DomXmpParser();
+		XMPMetadata meta = xdb.parse(fis);
+		List<XMPSchema> schemas = meta.getAllSchemas();
+		for (XMPSchema xmpSchema : schemas) {
+			Assert.assertNotNull(xmpSchema.getAboutAttribute());
+		}
+	}
+
+	
 }

Modified: pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/emptyli.xml
URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/emptyli.xml?rev=1402956&r1=1402955&r2=1402956&view=diff
==============================================================================
--- pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/emptyli.xml (original)
+++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/resources/validxmp/emptyli.xml Sun Oct 28 08:46:29 2012
@@ -15,13 +15,6 @@
       <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">title value</rdf:li>
@@ -33,118 +26,7 @@
             </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>
+    </rdf:RDF>
 </x:xmpmeta>
 <?xpacket end='r'?>