Skip to main content

ONIX validation library and commandline tool

Project description

Onixcheck - Book Trade Metadata Validation

Documentation Status Travis-CI Build Status AppVeyor Build Status PyPI Package latest release PyPI Package monthly downloads


ONIX for Books is an international XML standard for the publishing and book trade industry.

onixcheck is a Python library and command line tool for validating ONIX metadata. It allows you to validate ONIX versions 2.1 and 3.0 against the official XML Schema.

  • Free software: BSD license


On Windows you can download the standalone binary command line tool:

If you have Python or PyPy installed on your system you can do the usual:

pip install onixcheck


Command line usage examples

Validate all .xml, .onx, .onix files in current directory:


Validate a single onix file:

onixcheck myonixfile.xml

Validate all .xml files in /onixdata and its subdirectories:

onixcheck --path /onixdata --ext xml --recursive

Show help:

onixcheck -h

Using onixcheck as a python lib

Simple usage with onixcheck.validate:

>>> import onixcheck
>>> errors = onixcheck.validate('src/onixcheck/data/invalid_onix3_ref.xml')
>>> print(errors[0].short)
ERROR - SCHEMASV - invalid_onix3_ref.xml:4:0 - Element 'SentDateTime': This element is not expected. Expected is ( Sender ).

errors is either a list of Message objects (INVALID file) or an empty list (VALID file)


To run the all tests run:


Contributions/suggestions are welcome.


0.9.6 (2019-05-26)

  • Python 3.6 and 3.7 compatibility
  • Update Onix 3 to Revision 6 and Code List issue 45

0.9.5 (2016-08-19)

  • Update Onix 3 to Code List issue 34
  • Remove build artifacts from source distribution

0.9.4 (2016-07-15)

  • Fix issue with windows console output encoding
  • Update windows build to pyinstaller 3.1

0.9.3 (2016-05-10)

  • Update ONIX 3.0 Schemas to Revision 3
  • Add support for RELAX NG and custom schema validations
  • Added validator name to short message output

0.9.2 (2016-04-11)

  • Fix ExtentType in custom validation profile
  • Fix false alarm with multiple Price elements in custom profile

0.9.1 (2016-04-11)

  • Inital support for custom validation profiles
  • Custom Google Play Books onix 3.0 validation profile

0.9.0 (2016-03-27)

  • Added Python 3.5 testing / support
  • Update to ONIX to Code List Issue 32 / 2016-01-24

0.8.1 (2015-07-23)

  • More extensive documentation

0.8.0 (2015-07-23)

  • Added CLI-support for fast directory traversal validation
  • Secured XML-Parsing via defusedxml
  • Catch basic XML syntax errors
  • Windows standalone binary builds

0.4.0 (2015-07-18)

  • First release on PyPI.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for onixcheck, version 0.9.6
Filename, size File type Python version Upload date Hashes
Filename, size onixcheck-0.9.6-py2.py3-none-any.whl (554.1 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size onixcheck-0.9.6.tar.gz (537.0 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page