Hello,

I've fixed it in https://issues.apache.org/jira/browse/PDFBOX-6257 although I'm 
not really happy with it (ChatGPT claims it is case sensitive but we all know 
that ChatGPT is very persuasive even if it lies) but I looked at my comments 
from last time, so I did it anyway. Please build from source and test your file 
and tell us whether it worked.

Tilman

On 2026/09/07 10:26:42 Sylvere BABIN wrote:
> Hello,
> 
> We use PDFBox to read the XMP metadata of PDF documents in the Factur-X 
> standard, a Franco-German e-invoicing standard.
> It usually works very well, but we are experiencing an issue with some PDF 
> files sent by one of our partners.
> 
> In the XMP schema of these specific files, one of the property types doesn't 
> respect the expected case : we got "closed choice of Text" instead of "closed 
> Choice of Text".
> 
> <rdf:li rdf:parseType="Resource">
>                   <pdfaProperty:name>ConformanceLevel</pdfaProperty:name>
>                   <pdfaProperty:valueType>closed choice of 
> Text</pdfaProperty:valueType>
>                   <pdfaProperty:category>external</pdfaProperty:category>
>                   <pdfaProperty:description>The XML invoice data profile in 
> accordance with ZUGFeRD requirements
> (permitted values MINIMUM, BASIC WL, BASIC, EN 16931, 
> EXTENDED)</pdfaProperty:description>
>                 </rdf:li>
> 
> In the 
> pdfAExtensionHelper.java<https://github.com/apache/pdfbox/blob/trunk/xmpbox/src/main/java/org/apache/xmpbox/xml/PdfaExtensionHelper.java>,
>  the allowed values (CLOSED_CHOICE, CLOSED_CHOICE_U, OPEN_CHOICE and 
> OPEN_CHOICE_U) are case-sensitive, even if there was a 
> fix<https://issues.apache.org/jira/browse/PDFBOX-6131> (PDFBOX-6131) to allow 
> the first letter to be upper or lowercase.
> 
> So when we try to parse the XMP Metadata with xmpbox (3.0.7, but must be the 
> same with the last version), we get this exception :
> Caused by: org.apache.xmpbox.xml.XmpParsingException: Unknown property value 
> type : closed choice of Text
>       at 
> org.apache.xmpbox.xml.PdfaExtensionHelper.populatePDFAPropertyType(PdfaExtensionHelper.java:206)
>       at 
> org.apache.xmpbox.xml.PdfaExtensionHelper.populatePDFASchemaType(PdfaExtensionHelper.java:186)
>       at 
> org.apache.xmpbox.xml.PdfaExtensionHelper.populateSchemaMapping(PdfaExtensionHelper.java:140)
>       at org.apache.xmpbox.xml.DomXmpParser.parse(DomXmpParser.java:230)
>       at org.apache.xmpbox.xml.DomXmpParser.parse(DomXmpParser.java:126)
> 
> I've searched in the XMP Specification, but there's nothing clear about if 
> the syntax must strictly respects the specified case.
> The PDFLib validator accepts the file, and it was issued by a great national 
> company (I admit it's not a strong argument).
> So I think that the full "closed choice" or "open choice" types should be 
> parsed case-insensitively.
> 
> Unfortunately, I can't share the test file because it contains sensitive 
> informations, but if you really need one I can try to mock it up.
> 
> 
> 
> Sylvère Babin
> Programmeur fondations
> Cegid XRP Ultimate
> 
> +33 (0)4 71 64 60 26
> 
> 
> [Facebook]<https://www.facebook.com/CegidGroup/>  [Twitter] 
> <https://twitter.com/cegid_ww>   [LinkedIn] 
> <https://fr.linkedin.com/company/cegid>
> cegid.com<https://www.cegid.com/>
> 
> [Cegid]<http://www.cegid.com/>
> 
> 
> 
> 
> Cegid est susceptible d'effectuer un traitement sur vos données personnelles 
> à des fins de gestion de notre relation commerciale. Pour plus d'information, 
> consultez https://www.cegid.com/fr/privacy-policy
> Ce message et les pièces jointes sont confidentiels et établis à l'attention 
> exclusive de ses destinataires. Toute utilisation ou diffusion, même 
> partielle, non autorisée est interdite. Tout message électronique est 
> susceptible d'altération; Cegid décline donc toute responsabilité au titre de 
> ce message. Si vous n'êtes pas le destinataire de ce message, merci de le 
> détruire et d'avertir l'expéditeur.
> 
> Cegid may process your personal data for the purpose of our business 
> relationship management. For more information, please visit our website 
> https://www.cegid.com/en/privacy-policy
> This message and any attachments are confidential and intended solely for the 
> addressees. Any unauthorized use or disclosure, either whole or partial is 
> prohibited. E-mails are susceptible to alteration; Cegid shall therefore not 
> be liable for the content of this message. If you are not the intended 
> recipient of this message, please delete it and notify the sender.
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to