Author: tilman
Date: Sat Mar 22 10:29:45 2025
New Revision: 1924522

URL: http://svn.apache.org/viewvc?rev=1924522&view=rev
Log:
PDFBOX-5976: support more namespaces

Modified:
    
pdfbox/branches/3.0/xmpbox/src/main/java/org/apache/xmpbox/xml/DomXmpParser.java
    
pdfbox/branches/3.0/xmpbox/src/test/java/org/apache/xmpbox/xml/DomXmpParserTest.java

Modified: 
pdfbox/branches/3.0/xmpbox/src/main/java/org/apache/xmpbox/xml/DomXmpParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/xmpbox/src/main/java/org/apache/xmpbox/xml/DomXmpParser.java?rev=1924522&r1=1924521&r2=1924522&view=diff
==============================================================================
--- 
pdfbox/branches/3.0/xmpbox/src/main/java/org/apache/xmpbox/xml/DomXmpParser.java
 (original)
+++ 
pdfbox/branches/3.0/xmpbox/src/main/java/org/apache/xmpbox/xml/DomXmpParser.java
 Sat Mar 22 10:29:45 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/branches/3.0/xmpbox/src/test/java/org/apache/xmpbox/xml/DomXmpParserTest.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/xmpbox/src/test/java/org/apache/xmpbox/xml/DomXmpParserTest.java?rev=1924522&r1=1924521&r2=1924522&view=diff
==============================================================================
--- 
pdfbox/branches/3.0/xmpbox/src/test/java/org/apache/xmpbox/xml/DomXmpParserTest.java
 (original)
+++ 
pdfbox/branches/3.0/xmpbox/src/test/java/org/apache/xmpbox/xml/DomXmpParserTest.java
 Sat Mar 22 10:29:45 2025
@@ -23,6 +23,7 @@ package org.apache.xmpbox.xml;
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
 
 import org.apache.xmpbox.XMPMetadata;
 
@@ -63,4 +64,23 @@ class DomXmpParserTest
             Assertions.assertEquals((Integer) 3, 
xmp.getPDFAIdentificationSchema().getPart());
         }
     }
+
+    @Test
+    void testPDFBox5976() throws XmpParsingException
+    {
+        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(StandardCharsets.UTF_8));
+        Assertions.assertEquals("B", 
xmp.getPDFAIdentificationSchema().getConformance());
+        Assertions.assertEquals((Integer) 3, 
xmp.getPDFAIdentificationSchema().getPart());
+    }
 }


Reply via email to