Author: tilman
Date: Sat Mar 22 10:29:41 2025
New Revision: 1924521
URL: http://svn.apache.org/viewvc?rev=1924521&view=rev
Log:
PDFBOX-5976: support more namespaces
Modified:
pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/xml/DomXmpParser.java
pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/xml/DomXmpParserTest.java
Modified:
pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/xml/DomXmpParser.java
URL:
http://svn.apache.org/viewvc/pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/xml/DomXmpParser.java?rev=1924521&r1=1924520&r2=1924521&view=diff
==============================================================================
--- pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/xml/DomXmpParser.java
(original)
+++ pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/xml/DomXmpParser.java
Sat Mar 22 10:29:41 2025
@@ -952,6 +952,11 @@ public class DomXmpParser
{
map.put(no.getLocalName(), no.getValue());
}
+ else if (no.getNamespaceURI() != null && no.getPrefix() !=
null)
+ {
+ // PDFBOX-5976
+ map.put(no.getPrefix(), no.getNamespaceURI());
+ }
}
stack.push(map);
}
Modified:
pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/xml/DomXmpParserTest.java
URL:
http://svn.apache.org/viewvc/pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/xml/DomXmpParserTest.java?rev=1924521&r1=1924520&r2=1924521&view=diff
==============================================================================
---
pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/xml/DomXmpParserTest.java
(original)
+++
pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/xml/DomXmpParserTest.java
Sat Mar 22 10:29:41 2025
@@ -23,6 +23,7 @@ package org.apache.xmpbox.xml;
import java.io.IOException;
import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
import org.apache.xmpbox.XMPMetadata;
@@ -63,4 +64,23 @@ class DomXmpParserTest
Assertions.assertEquals((Integer) 3,
xmp.getPDFAIdentificationSchema().getPart());
}
}
+
+ @Test
+ void testPDFBox5976() throws XmpParsingException,
UnsupportedEncodingException
+ {
+ String s = "<?xml version=\"1.0\" encoding=\"UTF-8\"
standalone=\"no\"?>\n" +
+ "<?xpacket begin=\"\" id=\"W5M0MpCehiHzreSzNTczkc9d\"?>\n" +
+ "<rdf:RDF\n" +
+ "
xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n" +
+ " xmlns:pdf=\"http://ns.adobe.com/pdf/1.3/\"\n" +
+ " xmlns:pdfaid=\"http://www.aiim.org/pdfa/ns/id/\">\n" +
+ " <rdf:Description pdfaid:conformance=\"B\"
pdfaid:part=\"3\" rdf:about=\"\"/>\n" +
+ " <rdf:Description pdf:Producer=\"WeasyPrint 64.1\"
rdf:about=\"\"/>\n" +
+ "</rdf:RDF>\n" +
+ "<?xpacket end=\"r\"?>";
+ DomXmpParser xmpParser = new DomXmpParser();
+ XMPMetadata xmp = xmpParser.parse(s.getBytes("utf-8"));
+ Assertions.assertEquals("B",
xmp.getPDFAIdentificationSchema().getConformance());
+ Assertions.assertEquals((Integer) 3,
xmp.getPDFAIdentificationSchema().getPart());
+ }
}