Skip to content

Metron-Project/metroninfo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MetronInfo.xml

What is it?

MetronInfo.xml is an attempt to create a new schema for digital comic books that fixes some of the deficiencies that exist with the ComicInfo.xml schema.

Rationale

The ComicInfo.xml schema was designed for the needs of the ComicRack Application, and supports a fairly limited amount of data. Some benefits of a new schema would include:

  • Additional Elements for information. (e.g. Price, Global Trade Item Numbers, Series Type, etc.)
  • Better handling of data types. Instead of using delimited strings for list items, we can use Arrays of Elements.
  • Ability to identify where the data was obtained from. (e.g. Comic Vine, Metron, Grand Comics Database, etc.)
  • Add ID elements from the Information Source to resources (Characters, Creators, etc.), so items with the same name are associated correctly if used in a Plex-like Comic Server.

Since Digital Comics are just are archive files (like .zip) this new XML schema can co-exist with any existing ComicInfo.xml if needed for backward compatibility.

Is the schema only for the Metron Database?

No, the schema only has Metron in the name since almost every other format has Comic in the name, and the originating author hates naming projects, so he went with the simplest choice. 😄 It was designed to be used for any of the comic resources (Comic Vine, AniList, etc.)

Where can I find the schemas?

Version 1.0 of the schema is located in schema directory

Is there documentation for it?

Yes, there is documentation describing the elements usage and also a Matrix to help with age rating mapping.

How can I validate my XML?

It's recommended that any software that writes the XML make use of the schema to validate, so consumers of the XML document can be sure of its data. The schema use XSD 1.1, so you need to make sure your validation code uses that instead of XSD 1.0.

For example to validate the XML in python:

from pathlib import Path
from xmlschema import XMLSchema11, XMLSchemaValidationError

xsd = Path("/home/user/MetronInfo.xsd")
xml = Path("/home/user/MetronInfo.xml")

schema = XMLSchema11(xsd)
try:
    schema.validate(xml)
except XMLSchemaValidationError as e:
    print(f"Failed to validate XML: {e!r}")
    exit(1)

# Code to write / read the xml file

What software currently supports it?

Currently, the following software does:

  • Metron-Tagger - Commandline tool to tag comic with metadata from Metron Comic Book Database.
  • Perdoo - Commandline tool to tag and organize comics from multiple sources (Metron, Comicvine & Marvel)
  • ComicRack Community Edition - Revival of the ComicRack software, supports reading metroninfo metadata.

If you are a developer that has added support for MetronInfo.xml to your software, please create a PR to update the README or contact me.