XML Regatta Reporting (XRR) Data Format

The World Sailing XML Regatta Reporting format (XRR) is an XML Schema defined by World Sailing.

It provides a universal standard for the transfer of information relating to sailing events, including but not limited to results, calendar and entry information.

If you require further information that is not currently included or have comment(s) or suggestion(s) on the development of the project and/or its online presence then please contact the World Sailing Events Team.

Schema
The Schema section provides access to the various development versions of the schema document and links to examples that can be followed to assist in development of 3rd party software to use XRR.

Technical Specification
The Technical Specification section provides detail on the content of the schema documents including the source and type of the information for a number of the data fields and how the XML entities relate to one another.

Data Transfer
The Data Transfer section describes the XRR message service in terms of the World Sailing implementation and the methods available for interacting with XRR with third party software.

Software Packages
The Software Packages section provides a list of 3rd party software implementations which are compatible with the data transfer procedures implemented on the World Sailing servers. Links are provided where available.

If you would like to nominate a software package for inclusion in our lists please contact the World Sailing Secretariat to register your interest and to organise an example implementation for testing against the XRR service.

File Import
The File Import section is a manual upload tool that can be used to test XRR documents for correctness. It also provides an upload tool for the particular case of a live Event where an automated tool is unavailable.

Schema (xsd)

XRR Schema
The file below contains all versions of the XRR schema as a reference. This should be used as a guide to developers who are building software for XRR report generation and/or processes for reception and parsing of the same.

XRR Compatible Software

XRR Upload Service

The World Sailing XRR message service allows instant integration of results management systems with the World Sailing results database. Use of the service allows for rapid publication of race and event standings so that regatta management teams can automate some of their office procedures.

Overall, the World Sailing XRR service allows for these actions:

  • Upload of fleet racing results
  • Upload of match racing results
  • Upload of team racing results (with variable crew lists)
  • Download of sailor biography information (including classification assignment)
  • Download of regatta information (with divisions)

In order to make use of the World Sailing XRR data service you will require regatta management software that is XRR enabled, a list of known available packages is shown in XRR Compatible Software.
Alternatively, the following section covers the technical detail of integrating 3rd party software with the World Sailing XRR data service.

Technical description (Upload)
All XRR communications with World Sailing are conducted through the URL: https://stats-ingest.worldsailing.soticcloud.net/

A connection is made by the client software using a standard HTTP connection – specific to the framework libraries that support your chosen programming language.

All communication objects should be set up to use UTF-8 encoding and the submission will need to be a POST request to port 443.

In the instance that the uploaded document content is malformed or has internal referential problems the HTTP status code of the response will be 404, if the upload is valid the response code will be 200. It is recommended to check your XRR messages ahead of the regatta so there is time to check Sailor ID, names and genders before the competition finishes. World Sailing Events Team staff can manually process the file and give you a list of specific errors if you are having troubles.

Import Process
The import process works on a 3 stage basis: schema validation, internal reference validation, persistence.

Schema validation: The initial stage ensures that the document content meets the structural constraints of the chosen version of the XRR schema, this is done by using the standard XML DOM validation library facilities available in most programming languages.

Internal reference validation: This stage ensures that all of the unique keys necessary to link the various individual elements are in place. It also ensures that they haven’t been used in multiplicity and that all IDs required for referencing the external (World Sailing) unique references are in place and valid.

Persistence: This stage takes on three forms, depending on agreement between World Sailing and the document source. An Event element may or may not have the attribute IFUploadCode populated, this attribute is described in technical specification. Assuming the document content passes the previous integrity checks the valid combinations are as follows:

  1. An uploaded document with the word TESTING populated into the IFUploadCode attribute will have the content validated and will report back on errors, if any, without initiating a full import. This method has been provided to allow testing of the service.
  2. An uploaded document with nothing populated into the IFUploadCode attribute will be placed in a queue pending approval by the Events team in the World Sailing Executive Office. They then have the facility to approve, amend or reject each submitted document.
  3. In the instance that an event is provided in advance, by World Sailing, with a pass-code for populating the IFUploadCode attribute this will allow a results document to import directly into the World Sailing results database on receipt.

XRR Download Service

Technical Description (Download)
The data download service allows external sources to perform look-up queries on Sailor Biography and Event data. The Sailor biography query allows for automation of the process of validating Sailor IDs and classification groupings. Performing look-ups on events can be used to set-up an overall regatta in a 3rd party software package.

Sailor Details Look-Up
The first method is to use a query parameterised with personal details: http://datafeed.sailing.org/query?type=Person&FamilyName=[familyname]&GivenName=[givenname]&NOC=[nationcode]

Using this method the type parameter is required to specify a search for Person elements, of the other parameters at least one is mandatory, they are specified as follows:
FamilyName: Family name for the sailor(s), uses partial strings, non-case-sensitive
GivenName: Given name for the sailors(s), uses partial strings, non-case-sensitive
NOC: 3 letter nation code for the sailor search, uses complete strings only (3 characters), non-case-sensitive
for example:
http://datafeed.sailing.org/query?type=Person&FamilyName=smit&GivenName=Dav&NOC=GBR

Results are in ascending order by FamilyName, then GivenName, then IFPersonID.

Sailor ID Look-Up
The second method available to perform this action is as follows:
http://datafeed.sailing.org/query?type=Person&IFPersonID=[sailorID1,sailorID2]

Where the type parameter is used to specify that the query is looking for Person elements and IFPersonID contains either a single Sailor ID or a comma-separated list of Sailor IDs, for example:
http://datafeed.sailing.org/query?type=Person&IFPersonID=USATS15,GBRMI2,GBRTT27,GBRIT9

Where the response has Person elements missing this indicates that those IDs are invalid. Results are in ascending order by FamilyName, then GivenName, then IFPersonID.

Event Details Look-Up
The first method available for requesting regatta details is as follows:
http://datafeed.sailing.org/query?type=Event&Date=[date]&Title=[title]

Here the type parameter specifies a look-up on Event elements, of the other parameters at least one is required, they are specified as follows:

Date: In the format YYYY-MM-DD, cannot be submitted as a partial string, specifies that the results will include only regattas that are running during the specified date (started on or before and ending on or after)
Title: refers to the name of the regatta, minimum of 4 characters, accepts partial strings, non-case-sensitive
For example:
http://datafeed.sailing.org/query?type=Event&Date=2012-05-05&Title=champ

Results are in ascending order by StartDate then Title.

Event ID Look-Up
The second method available for requesting regatta details is as follows:
http://datafeed.sailing.org/query?type=Event&IFEventID=[eventID1,eventID2]

The type parameter specifies that the query refers to Event elements with the IFEventID parameter taking either a single event id or a comma separated list of event ids. For example:
http://datafeed.sailing.org/query?type=Event&IFEventID=AUS201212OZO,USA201301AQA,AUS201212TUX

Results are in ascending order by StartDate then Title.