The Chess Tournament Exchange (CTX) format is an application of XML for describing chess tournaments. It aims to include all relevant data of a chess tournament, i.e. all information about participating players and teams, their results and rankings, as well as general tournament information like round times, names of all arbiters, etc. It shall be a source format for rating calculations (Elo, DWZ, ...), easy to parse and exchange. Its filename extension is .ctx
.
CTX is defined by an XML Schema (XSD) of version 1.1. CTX files can be validated with any validator that supports XSD 1.1.
For instance, you can validate your CTX file with Apache Xerces by the following command:
java jaxp.SourceValidator -xsd11 -fx -a CTX.xsd -i tournament.ctx
Apache Xerces requires Java. By calling make xerces
, Apache Xerces gets downloaded into the directory xerces
. As part of this repository, we provide a small bash script to validate a CTX file using this local Xerces instance. Additional information can be found in the Readme-file in this project's bin
directory.
This section has not been updated since 2013. Some information might be outdated.
Swiss-Chess (sometimes called WinSwiss) is the most popular chess tournament management software in Germany. It saves its tournament data in binary SWT-files. There already exists a converter to CTX, written for node.js.
First the obvious one: it's XML!
CTX is more expressive than FIDE's CSV-based TRF file format. Though you can extend TRF by adding new columns, we want to provide a standardized format that can be used for both simple and complex tournaments.
No. Although XML is easily human-readable, the CTX schema is very hard-constrained and therefore better suited for computer-computer-interaction. The order of elements is well-defined, for example you have to specify all players and teams in a very specific order - unlike FIDE's TRF file format, where you can change the order of the given players as you like.
- Expressiveness: Avoid text fields, provide highly structured elements.
- One-to-one correspondence: Every tournament state is defined by one and only one CTX file and vice-versa. This allows to make a
diff
over two tournaments (states), given a previously defined way of XML indentation.