<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">It looks like there is a trailing null in the character data written inside the XML box in JPEG 2000 (only tested with OpenJPEG). </p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">I'm seeing a validation error in jpylyzer about not well formed XML, which I think is probably related to this. Or at least goes away with this change:</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;"><span style="color:#000000;"><span style="background-color:#ffffff;"><strong><span style="font-family:monospace;">diff --git a/gcore/gdaljp2metadata.cpp b/gcore/gdaljp2metadata.cpp</span></strong> </span></span><br /><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>index 439b7e6625..a247cad9f8 100644</strong> </span></span><br /><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>--- a/gcore/gdaljp2metadata.cpp</strong> </span></span><br /><span style="color:#000000;"><span style="background-color:#ffffff;"><strong>+++ b/gcore/gdaljp2metadata.cpp</strong> </span></span><br /><span style="background-color:#ffffff;"><span style="color:#18b2b2;">@@ -3333,7 +3333,7 @@</span><span style="color:#000000;"> GDALJP2Metadata::CreateGDALMultiDomainMetadataXMLBox(GDALDataset *poSrcDS, </span></span><br /> <br /> GDALJP2Box *poBox = new GDALJP2Box(); <br /> poBox->SetType("xml "); <span style="background-color:#ffffff;"><span style="color:#b21818;">- poBox->SetWritableData(static_cast<int>(strlen(pszXML) + 1),</span><span style="color:#000000;"> </span></span><br /><span style="background-color:#ffffff;"><span style="color:#18b218;">+ poBox->SetWritableData(static_cast<int>(strlen(pszXML)),</span><span style="color:#000000;"> </span></span><br /> reinterpret_cast<const GByte *>(pszXML)); <br /> CPLFree(pszXML); <br /></p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">However that +1 looks deliberate. So is that trailing null intentional, in that its required for some interoperability or backwards compatibility reason, even though it isn't strictly allowed in XML?</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Brad</p>
<br /></body>
</html>