You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2013/11/03 17:01:09 UTC

svn commit: r1538395 - in /pdfbox/trunk: preflight/src/main/java/org/apache/pdfbox/preflight/metadata/RDFAboutAttributeConcordanceValidation.java xmpbox/src/main/java/org/apache/xmpbox/schema/XMPSchema.java

Author: leleueri
Date: Sun Nov  3 16:01:08 2013
New Revision: 1538395

URL: http://svn.apache.org/r1538395
Log:
[PDFBOX-1685] Update the preflight validation following the compatibility requirement exposed in the JIRA issue. RDF:About must be the same in all rdf:description (or empty)

Modified:
    pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/metadata/RDFAboutAttributeConcordanceValidation.java
    pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/schema/XMPSchema.java

Modified: pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/metadata/RDFAboutAttributeConcordanceValidation.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/metadata/RDFAboutAttributeConcordanceValidation.java?rev=1538395&r1=1538394&r2=1538395&view=diff
==============================================================================
--- pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/metadata/RDFAboutAttributeConcordanceValidation.java (original)
+++ pdfbox/trunk/preflight/src/main/java/org/apache/pdfbox/preflight/metadata/RDFAboutAttributeConcordanceValidation.java Sun Nov  3 16:01:08 2013
@@ -51,23 +51,26 @@ public class RDFAboutAttributeConcordanc
         {
             throw new ValidationException("Schemas not found in the given metadata representation");
         }
+        
         String about = schemas.get(0).getAboutValue();
+       
         // rdf:description must have an rdf:about attribute
         for (XMPSchema xmpSchema : schemas)
         {
-            checkRdfAbout(about, xmpSchema);
+            // each rdf:Description must have the same rdf:about (or an empty one)
+            String schemaAboutValue = xmpSchema.getAboutValue();
+            if (!("".equals(schemaAboutValue) || "".equals(about) || about.equals(schemaAboutValue)))
+            {
+                throw new DifferentRDFAboutException();
+            }
+            
+            if ("".equals(about)) {
+                about = schemaAboutValue;
+            }
         }
 
     }
 
-    private void checkRdfAbout(String about, XMPSchema xmpSchema) throws DifferentRDFAboutException
-    {
-        if (!about.equals(xmpSchema.getAboutValue()))
-        {
-            throw new DifferentRDFAboutException();
-        }
-    }
-
     public static class DifferentRDFAboutException extends Exception
     {
 

Modified: pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/schema/XMPSchema.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/schema/XMPSchema.java?rev=1538395&r1=1538394&r2=1538395&view=diff
==============================================================================
--- pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/schema/XMPSchema.java (original)
+++ pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/schema/XMPSchema.java Sun Nov  3 16:01:08 2013
@@ -120,7 +120,7 @@ public class XMPSchema extends AbstractS
     /**
      * Get the RDF about value.
      * 
-     * @return The RDF 'about' value.
+     * @return The RDF 'about' value. If there are not rdf:about attribute, an empty string is returned.
      */
     public String getAboutValue()
     {
@@ -129,7 +129,7 @@ public class XMPSchema extends AbstractS
         {
             return prop.getValue();
         }
-        return null;
+        return ""; // PDFBOX-1685 : if missing rdf:about should be considered as empty string
     }
 
     /**