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
}
/**