docs: @Nullable
      private static String getExtendedXMPGUID(@NotNull Metadata metadata)
      {
          final Collection<XmpDirectory> xmpDirectories = metadata.getDirectoriesOfType(XmpDirectory.class);
  
          for (XmpDirectory directory : xmpDirectories) {
              final XMPMeta xmpMeta = directory.getXMPMeta();
  
              try {
                  final XMPIterator itr = xmpMeta.iterator(SCHEMA_XMP_NOTES, null, null);
                  if (itr == null)
                      continue;
  
                  while (itr.hasNext()) {
                      final XMPPropertyInfo pi = (XMPPropertyInfo) itr.next();
                      if (ATTRIBUTE_EXTENDED_XMP.equals(pi.getPath())) {
                          return pi.getValue();
                      }
                  }
              } catch (XMPException e) {
                  // Fail silently here: we had a reading issue, not a decoding issue.
              }
          }
  
          return null;
      }