Hello PDFBox Community, The validation of a PDF/A - 1b file fails in the test but is successful in production with the same data. What could be the reason for the different results? The error message indicates that the metadata could not be read because it is "nested". The metadata is only set in the conversion method and there should be no differences between test and production. Do you have any ideas as to why this could be?
## Conversion process 1. JxBrowser creates a file from HTML 2. PDFBox converts to PDF/A - 1b ## Validation Error Jun 23, 2025 2:09:39 PM org.verapdf.gf.model.impl.pd.GFPDMetadata getXMPPackage WARNING: Problems with parsing metadata. Nested content not allowed with rdf:resource or property attributes org.verapdf.xmp.XMPException: Nested content not allowed with rdf:resource or property attributes at org.verapdf.xmp.impl.ParseRDF.rdf_EmptyPropertyElement(ParseRDF.java:841) at org.verapdf.xmp.impl.ParseRDF.rdf_PropertyElement(ParseRDF.java:438) at org.verapdf.xmp.impl.ParseRDF.rdf_PropertyElementList(ParseRDF.java:312) at org.verapdf.xmp.impl.ParseRDF.rdf_NodeElement(ParseRDF.java:192) at org.verapdf.xmp.impl.ParseRDF.rdf_ResourcePropertyElement(ParseRDF.java:584) at org.verapdf.xmp.impl.ParseRDF.rdf_PropertyElement(ParseRDF.java:471) at org.verapdf.xmp.impl.ParseRDF.rdf_PropertyElementList(ParseRDF.java:312) at org.verapdf.xmp.impl.ParseRDF.rdf_NodeElement(ParseRDF.java:192) ## Convert implementation static ByteArrayOutputStream convert(File file, PDFBuilder.PDFFlavour pdfFlavour) throws Exception { try (PDDocument document = PDDocument.load(file)) { PDFAFlavour veraPDFFlavour = PDFAUtils.pdfAFlavourMapper(pdfFlavour); XMPMetadata xmpMetaData = XMPMetadata.createXMPMetadata(); PDDocumentInformation docInfo = document.getDocumentInformation(); createPDFAIdentificationSchema(xmpMetaData, veraPDFFlavour); createDublinCoreSchema(docInfo, xmpMetaData); createXMPBasicSchema(docInfo, xmpMetaData); createAndAddAdobePDFSchema(docInfo, xmpMetaData); PDDocumentCatalog documentCatalog = document.getDocumentCatalog(); PDMetadata metadata = new PDMetadata(document); XmpSerializer serializer = new XmpSerializer(); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); serializer.serialize(xmpMetaData, byteArrayOutputStream, true); metadata.importXMPMetadata(byteArrayOutputStream.toByteArray()); documentCatalog.setMetadata(metadata); PDCIDSetEmbedder.setPDFontDescriptorCIDSet(document); InputStream colorProfile = PDF2PDFAConverter.class.getResourceAsStream("/resources/sRGB2014.icc"); PDOutputIntent pdOutputIntent = createOutputIntent(document, colorProfile); documentCatalog.addOutputIntent(pdOutputIntent); ByteArrayOutputStream out = new ByteArrayOutputStream(); document.save(out); document.close(); return out; } catch (IOException | BadFieldValueException | TransformerException | IllegalArgumentException exception) { throw new PDFAConverterException(exception.getCause()); } }