Inquiry about validating an OME.TIFF using xmlvalid

Setup

  • I am trying to validate an image sent by a collaborator. I do not have any information regarding how the OME.TIFF was programmatically built.
  • I am using bftools 6.5.1 on MacOS Catalina.

When I try to validate the image, I get this message

~/bin/bftools/xmlvalid original.ome.tiff
Parsing schema path
No schema path found. Validation cannot continue.

Now if I extract the XML from the image and attempt to validate it, I get this message

~/bin/bftools/showinf -nopix -omexml-only original.ome.tiff > original.xml
~/bin/bftools/xmlvalid original.xml
Parsing schema path
http://www.openmicroscopy.org/Schemas/OME/2016-06/ome.xsd
Validating original.xml
cvc-pattern-valid: Value 'f14da8fd-df4d-496a-bc09-84f954ac8cf2' is not facet-valid with respect to pattern '(urn:lsid:([\w\-\.]+\.[\w\-\.]+)+:\S+:\S+)|(\S+:\S+)' for type 'AnnotationID'.
cvc-attribute.3: The value 'f14da8fd-df4d-496a-bc09-84f954ac8cf2' of attribute 'ID' on element 'XMLAnnotation' is not valid with respect to its type, 'AnnotationID'.
The prefix "om" for element "om:OriginalMetadata" is not bound.
Error validating document: 3 errors found

Now, I am not concerned at the moment about the error from validating the XML file, I am interested on why I am getting separate results. Using tiffinfo I can see the ImageDescription has this information

tiffinfo original.ome.tiff | more

ImageDescription: <ome:OME xmlns:ns2="http://www.openmicroscopy.org/Schemas/BinaryFile/2013-06s" xmlns:om="openmicroscopy.org/OriginalMetadata" xmlns:ome="http://www.openmicroscopy.org/Schemas/ome/2013-06s" xmlns:sa="http://www.openmicroscopy.org/Schemas/sa/2013-06s" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openmicroscopy.org/Schemas/OME/2013-06 http://www.openmicroscopy.org/Schemas/OME/2012-03/ome.xsd">
...

but when I look at the XML file I see

cat original.xml | more

<?xml version="1.0" encoding="UTF-8"?>
<OME xmlns="http://www.openmicroscopy.org/Schemas/OME/2016-06" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openmicroscopy.org/Schemas/OME/2016-06 http://www.openmicroscopy.org/Schemas/OME/2016-06/ome.xsd">

Is this the intended behavior? When I use showinf to extract the XML from ImageDescription is it parsed/interpreted?

Hi @icaoberg! Good to see you on image.sc.

Yes.

With this command, you’ve not only extracted the OME-XML but you’ve also applied any updates from the actual version. Basically, Bio-Formats works hard to try to actually read the file.

tiffcomment should extract the same value that you are seeing with tiffinfo.

~Josh

@joshmoore thanks! I am back and working on several projects that involve OME.

What do you recommend I use for validation? xmlvalid on the image or the extracted OME-XML? Validating the OME-XML was certainly more verbose. I am attempting to build a pipeline to validate OME-TIFFs so the latter returns useful info with respect to the first.

1 Like

“2013-06s” is not a valid OME schema version, which is why it can’t be found. They likely intended to use “2013-06”.

The reporting of “2016-06” by the XML later on is because that’s the version bioformats is built with; it will always “upgrade” the data to this version of the schema. It doesn’t reflect the original schema version within the file.

2 Likes