Skip to main content

MetronInfo V1.2

· 3 min read
Brian Pepple
Founder of the Metron Project / Code Monkey

Following up on the v1.1 release from July, MetronInfo v1.2 is out. This release is focused on the Series element, adding three new optional elements and loosening the restrictions on language codes.

What's New​

Series EndYear​

An optional element for the year a series ended, complementing the existing StartYear element. Like StartYear, it must be a 4 digit value. The schema checks that EndYear isn't earlier than StartYear, and that a series with a Status of Ongoing doesn't have an EndYear.

Series Status​

An optional element for the publication status of the series. It must be one of the following values:

  • Cancelled
  • Completed
  • Hiatus
  • Ongoing

Series Summary​

An optional description or summary of the series itself. This is separate from the existing top-level Summary element, which describes the individual book.

Language Codes​

The lang attribute (used by Series and the Name element of AlternativeNames) previously only accepted a two-letter lowercase code like en or ja. It now accepts BCP 47 language tags, so values like fil, pt-BR, and zh-Hant are now valid. This makes it possible to distinguish things like Brazilian and European Portuguese, or Traditional and Simplified Chinese.

Here's an example of a Series element using the new elements:

<Series lang="en" id="1234">
<Name>Black Lightning</Name>
<SortName>Black Lightning</SortName>
<Volume>1</Volume>
<Format>Single Issue</Format>
<StartYear>1977</StartYear>
<EndYear>1978</EndYear>
<Status>Cancelled</Status>
<IssueCount>11</IssueCount>
<Summary>Jefferson Pierce returns to his old neighborhood to fight crime as Black Lightning.</Summary>
</Series>

All of the changes are documented in full on the MetronInfo documentation page, and the raw schema is up on the schema page.

What Software Currently Supports It?​

The following software already supports MetronInfo v1.2:

If you maintain other software that reads or writes MetronInfo.xml, feel free to create a PR to update the README or contact me to get it added to the list.

Upgrading​

This is a backwards-compatible change. The new elements are optional, and the new language code rules accept every value the old ones did, so any existing v1.0 or v1.1 documents remain valid. If you're validating against the schema in your own tooling, just point it at the v1.2 schema instead of v1.1.

As with v1.1, the EndYear checks are written as XSD 1.1 assertions, so they're only enforced by a validator that supports XSD 1.1 (for example, Saxon or Xerces-J with XSD 1.1 enabled).

Future​

As always, if you have suggestions for the schema, please file a feature request, bug report, or start a discussion.

Thanks again to everyone who's contributed feedback and pull requests to the schema.