Version: 0.3 (history)
Last Updated: 7 Sep 2002
Author: Wordman
This page proposes a set of XML schema to act as standard data exchange for data relating to the Shadowrun role-playing game. Discussions about this proposal are recorded in the Dumpshock forums.
Many XML schema tend to be overly verbose. This is usually because a single schema attempts to encompass absolutely all data into a single file. This is not the approach taken here. Instead, these schema assume that most applications that use them will make use of a standardized, universal, relational database. (Indeed, part of the intent of these schema is to facilitate the creation of just such a database.)
As such, each schema proposed here fits in to one of two "families":
Definition schema are intended to detail data that is universal for most games. Examples of this sort of data include statistics for cyberware, gear, spells and so on. These items posess characteristics defined in a sourcebook that can be standardized among all campaigns. This is the kind of data that is likely to be entered in a standard database. In general, each item of definition data will contain a unique id.
Usage schema are intended to define the kinds of data that will be user specific, such as character information, customized vehicles, etc. Tags in these schema will make use of definition information by referencing its unique id. In this way, the details of the definition data itself will not be repeated in the usage schema, but merely referenced. Only information about the specific use of a item will be recorded in a usage schema.
For example, one usage schema defines a character. Part of this schema is a list of cyberware the character has installed. This list would not list every single characteristic of the cyberware. Instead, it would reference the cyberware definition schema for this data, and would contain details specific that that particular use of the cyber (e.g. grade, body location, etc.).
These references may also contain optional tags for recording calculation results. For example, the cyberware reference list might contain an option essense tag for each item, as a conveinence feature to hold the result of an essense calculation based on the grade of that use of the cyberware.
It would be assumed that the reference to the definition data would be suficient for an application to determine the basic characteristics of the item, presumably based on a shared universal database.
No fast rules exist for defining exactly when to use XML attributes instead of tags. In general, this schema avoids the use of attributes whenever possible. Tags are generally less dificult to work with, particularly when using XSLT transformations or XPath.