XML File Formats used by JEsMS
- Roster Format
- TeamSheet Format
- Scorers List Format
- Assisters List Format
- Performace List Format
- Disciplinary Points List Format
- League Table Format
- Fixtures Format
- Tactics Format
- Language Format
- Commentary Format
- League Configuration Format
- RosterGenerator Configuration File
Roster files are used to represent a team in JEsMS, each roster contains infos about team and a list of all team players completed with their attributes.
In fact a roster file consists in a Roster tag containing a list of Player tags.
A Roster tag usually has an an attribute called "team" which contains the team name abbreviation. Therefore the roster file of a team with abbreviation "dot" could be the following:
<Roster team="dot"> ... </Roster>
Each Player tag contains several attributes, one for each player characteristic:
- name: The name of the player, differently from ESMS classic there's no limit in name size and spaces are allowed (therefore a name such as "Alessandro Del Piero" is perfectly legal in JEsMS)
- age: The age of the player, the age is placed in the roster with actually no use for the game running program and currently is needed only for statistics and house rules set up by each league.
- nationality: Player's nationality, as the age, is not used by the game running program and is placed in the roster only for statistics. Differently from ESMS nationality is not strictly limited to 3 chars even if it's better to continue using 3 chars anyway.
- shootStopping: Player's shoot stopping skill. In other words, it goalkeeping skill. For best performance, the manager has to place the player with the highest St as goalkeeper. Of course manager is not obliged to do so.
- tackling: Player's tackling skill. Mostly used by players playing in the defense.
- passing: Player's passing skill. Mostly used by players in the midfield, useful to create opportunities and assisting goals.
- shooting: Player's passing skill. It defines the player's skill to shot on goal and to reach these shooting chances.
- aggression: Player's aggression. The aggression of a player doesn't change, it stays the same for his whole career. In JEsMS (as in ESMS) the aggression is a value between 1 and 100 and it defines how aggressively a player plays.
- shootStoppingAbility: Player's shoot stopping ability is a number ranging from 0 to 1000 and can affect player's shootStopping skill.
- tacklingAbility: Player's tackling ability is a number ranging from 0 to 1000 and can affect player's tackling skill.
- passingAbility: Player's shoot passing ability is a number ranging from 0 to 1000 and can affect player's passing skill.
- shootingAbility: Player's shooting ability is a number ranging from 0 to 1000 and can affect player's shooting skill.
- games: Simply the amount of games the player played. If the player participated in a game, even if he played a single minute, it will be counted as an another game when the admin runs the roster updating tool.
- saves: The total amount of saves the player made. Only if the player played as a goalkeeper he can make saves.
- keyTackles: The total amount of key tackles the player made to stop scoring opportunities. Usually defenders will make the highest amount of tackles, but midfielders and forwards tackle sometimes too.
- keyPasses: The total amount of key passes made by the player to create goalscoring opportunities.
- shots: The total amount of shots to goal taken by the player.
- goals: The total amount of goals scored by this player.
- assists: The total amount of assists made by this player.
- dps: The total amount of disciplinary points accumulated by the player. Disciplinary Points (DP) are "accumulated" when a player gets yellow/red cards.
- injury: If a player isn't currently injured, injury is 0. If a player is injured, it indicates the amount of weeks he can't play.
- suspension: If a player isn't currently suspended, suspension is 0. If a player is suspended, it indicates the amount of games he can't play. Note the difference between "weeks" for injury and "games" for suspension... Think about this in "real life" terms: It is common to play league games once a week, with cup games in the middle of the week. A player is injured for a certain amount of time (eg. if he's injured for a week, he'll miss one game in a normal league run, but he'll miss more games if some cup games were played during the week), but suspended for an amount of games. You should keep this in mind while planning your league.
Therefore the roster file containing a couple of players become:
<Roster team="dot"> <Player name="Fabio Bellini" age="21" nationality="BRA" shootStopping="1" tackling="2" passing="8" shooting="26" aggression="30" shootStoppingAbility="500" tacklingAbility="500" passingAbility="500" shootingAbility="500" games="1" saves="0" keyTackles="0" keyPasses="0" shots="1" goals="0" assists="0" dps="0" injury="0" suspension="0"/> <Player name="Jack Puppo" age="20" nationality="ITA" shootStopping="1" tackling="21" passing="8" shooting="0" aggression="32" shootStoppingAbility="500" tacklingAbility="570" passingAbility="480" shootingAbility="480" games="1" saves="0" keyTackles="5" keyPasses="0" shots="0" goals="0" assists="0" dps="9" injury="0" suspension="1"/> ... </Roster>
Converting from a classic ESMS roster
JEsMS is able to convert a classic ESMS (2.6) roster file in the new format, the converter can be found in JEsMS package as Engine.Roster
The syntax to use the converter is the following:
java -cp:JEsMS.jar Engine.Roster <sourcefile> <destfile>
where sourcefile is the file containing the roster in ESMS format and destfile is the file that will contain the roster in XML format.
This file contains the teamsheet of a particular team: A teamsheet is a list of players and substitutes chosen for the match and contains also orders for the engine explaining how to react to different possible situations.
The root tag of Teamsheet file is the "TeamSheet" tag, it contains two attributes: "name" and tactic.
- name: The abbreviation of the team whose teamsheet is.
- tactic: A single letter representing the tactic initially used by the team.
Inside this tag there are eleven "Player" elements, a number of "Substitute" elements (the exact number of substitutes is configurable by league administrator), a "PenaltyKicker" element followed by several "Conditional" elements.
"Player", "Substitute" and "PenaltyKicker" has the same structure made up by a "role" attribute and a name one as in the following:
<Player role="GK" name="Gianluca Mallamaci"/>
After the penalty kicker there are several "Conditional" elements, these elements are used to represent all orders for the team; it contains one "Action" element and several "Condition".
An action element has a "value" tag which actually can be CHANGEPOS, SUB or TACTIC and contains several "Argument" elements dependin on the value of the action.
A condition element instead has a "type" attribute, which can be INJ, MIN, RED, YELLOW, SCORE; a "value" attribute and, if necessary a sign attribute:
As an example let's see the conditional capturing the order "IF minute=60 AND our team is losing THEN change tactic to Attack":
<Conditional> <Action value="TACTIC"> <Argument value="A"/> </Action> <Condition type="MIN" sign="=" value="60"/> <Condition type="SCORE" sign="<" value="0"/> </Conditional>
Converting from a classic ESMS TeamSheet
JEsMS is able to convert a classic ESMS (2.6) teamsheet file in the new format, the converter can be found in JEsMS package as Engine.TeamSheet
The syntax to use the converter is the following:
java -cp:JEsMSAll.jar Engine.TeamSheet <sourcefile> <destfile>
where sourcefile is the file containing the teamsheet in ESMS format and destfile is the file that will contain the teamsheet in XML format.
Scorers List Format
This and the following three list formats are very similar and are generated by updater program all are formed by a set of "Player" elements grouped in a root element, in the case of scorers list this root element is obviously called "Scorers".
A Player element contains several attributes, such as name, team (the abbreviation of player owner team), value (in this case it contains the number of goals scored), games (simply the number of games played) as in the following example:
<Scorers> <Player name="Jose Altafini" team="fcs" value="9" games="17"/> <Player name="Aristoteles" team="lac" value="4" games="17"/> ... </Scorers>
Assisters List Format
<Assisters> <Player name="Homer Simpson" team="ifc" value="4" games="18"/> <Player name="Julius Heide" team="stp" value="3" games="18"/> ... </Assisters>
Performace List Format
<Performs> <Player name="Marco la Foorza" team="atm" value="432" games="18"/> <Player name="Egeria" team="pfc" value="408" games="18"/> ... </Performs>
Disciplinary Points List Format
<Dps> <Player name="Tom Becker" team="ifc" value="18" games="13"/> <Player name="Siberian Ascii" team="ifc" value="18" games="17"/> ... </Dps>
League Table Format
This file is the replacement for ESMS language.dat file, it is simply a list of Comment elements contained in a root element called Language.
Every Comment element has two attributes (type and followup) and a body.
- type is a string containing the type of the comment entry (CHANCE, ASSISTEDCHANCE, TACKLE, etc... look at example).
- followup is a boolean value ("true" or "false") and is used by JEsMS to detect if a particular entry follows a previous entry or not (i.e. a SHOT entry is definitly a followup of a previous CHANCHE/ASSISTEDCHANCE event). Actually is not at all used by JEsMS.
- Finally the body of the element contains a text string representing the comment; as in ESMS %s substrings will be replaced with different informations (minute, player, etc) of the actual action by the JEsMS simulation engine.
<Language> <Comment type="CHANCE" followup="false">Min. %s :(%s) %s with the dribble</Comment> ... <Comment type="ASSISTEDCHANCE" followup="false">Min. %s :(%s) %s passes the ball to %s</Comment> ... <Comment type="TACKLE" followup="true">Cleared by %s</Comment> ... </Language>
Converting from a classic ESMS language.dat
JEsMS is able to convert a classic ESMS (2.6) language.dat file in the new format, the converter can be found in JEsMS package as ESMS.Comment
The syntax to use the converter is the following:
java -cp:JEsMSAll.jar ESMS.Comment <sourcefile> <destfile>
where sourcefile is the file containing the language.dat and destfile is the file that will contain the new language file in XML format.