Validating XML in an OME-TIFF

The XML stored in an OME-TIFF file can be validated using the command line tools.

Both the tiffcomment and xmlvalid commands are used; tiffcomment extracts the XML from the file and xmlvalid validates the XML and prints any errors to the console.

For example:

xmlvalid /path/to/file.ome.tiff

and

xmlvalid /path/to/file.xml

will perform validatation for an ome.xml file and xml file, respectively.

Also:

tiffcomment "/path/to/file.ome.tiff" | xmlvalid

will perform the extraction and validation all at once.

Typical successful output of xmlvalid is:

[~/Work/bftools]$ ./xmlvalid sample.ome
Parsing schema path
http://www.openmicroscopy.org/Schemas/OME/2010-06/ome.xsd
Validating sample.ome
No validation errors found.
[~/Work/bftools]$

If any errors are found they are reported. When correcting errors it is usually best to work from the top of the file as errors higher up can cause extra errors further down. In this example the output shows 3 errors but there are only 2 mistakes in the file:

[~/Work/bftools]$ ./xmlvalid broken.ome
Parsing schema path
http://www.openmicroscopy.org/Schemas/OME/2010-06/ome.xsd
Validating broken.ome
cvc-complex-type.4: Attribute 'SizeY' must appear on element 'Pixels'.
cvc-enumeration-valid: Value 'Non Zero' is not facet-valid with respect
   to enumeration '[EvenOdd, NonZero]'. It must be a value from the enumeration.
cvc-attribute.3: The value 'Non Zero' of attribute 'FillRule' on element
   'ROI:Shape' is not valid with respect to its type, 'null'.
Error validating document: 3 errors found
[~/Work/bftools]$

If the XML is found to have validation errors, the tiffcomment command can be used to overwrite the XML in the OME-TIFF file with corrected XML. The XML can be displayed in an editor window:

tiffcomment -edit /path/to/file.ome.tiff

or the new XML can be read from a file:

tiffcomment -set new-comment.xml /path/to/file.ome.tiff