The vast majority of all changes in SportsML 1.8 are fully backwards-compatible.
The only exceptions are as follows, and can be viewed as errors of sorts within the SportsML 1.7 spec. These problems were brought to our attention during discussions of SportsML with a Major League Baseball ballclub.
Within the stats-baseball-offensive element, the SportsML 1.7 attribute "defensive-interferance-reaches" is misspelled. Furthermore, this attribute would be clearer if renamed to be "reached-base-defensive-interference", which is in the naming style of other reached-base attributes.
Within the action-baseball-pitch element, the SportsML 1.7 attribute "pitch-type" is defined as being (ball | strike | in-play). In reality, the term "pitch type" applies to whether the pitch was a fastball, a curveball, a slider, etc. The (ball | strike | in-play) options instead are considered "umpire calls."
Hence, SportsML 1.8 proposes that the pitch-type attribute be redefined as (fastball | curveball | etc), and a new "umpire-call" attribute be created, which would have the values (ball | strike | in-play).
coverage-attributes added attribute period-value (for tracking hits per inning, for example) career-phase added attribute subphase-type (could be "sophomore" or "rookie") added attribute phase-caliber (league | team, for example) added attribute phase-caliber-key (l.nfl.com | l.nfl.com-t.2) added attribute entry-reason = draft | trade added attribute selection-level = (1, if drafted in 1st round) added attribute selection-sublevel = (27, if picked as 27th selection in 1st round) added attribute exit-reason = retired | waived home-location added attributes %global-attributes; added attributes %coverage-attributes; name added attribute suffix added attribute prefix rank added attribute issuer (for who issued the ranking) rating added attribute rating-issuer tournament-round element added attribute round-status event-metadata added attribute event-of-day added attribute events-day-total player-metadata added attribute scratch-reason added attribute round-position team-metadata added attribute round-position player-stats time-played-event-average add (wagering-stats*) to the content-model of sports-event, right before (officials?)
stats-basketball-rebounding added attribute rebounds-offensive-per-game added attribute rebounds-defensive-per-game
stats-ice-hockey-defensive added attribute goaltender-wins added attribute goaltender-losses added attribute goaltender-ties action-ice-hockey-score added attribute shootout-shot-order
stats-golf added attribute drive-accuracy added attribute rounds-under-par added attribute greens-in-regulation-putting stats-golf-round added attribute score added attribute strokes
stats-american-football-passing added attribute receptions-looks stats-american-football-special-teams added attribute punts-against-blocked added attribute extra-points-against-made added attribute extra-points-against-missed added attribute extra-points-against-blocked added attribute field-goals-against-made added attribute field-goals-against-missed added attribute field-goals-against-blocked element action-american-football-score added attribute yards-gained element action-american-football-play added attribute yards-gained element action-american-football-play-participant added attribute yards-gained
action-soccer-score-attempt added attribute shootout-shot-order action-soccer-score added attribute shootout-shot-order stats-soccer-offensive added attribute shots-hit-frame
team-stats-tennis define as (stats-tennis-service*,stats-tennis-return*,stats-tennis-set*) player-stats-tennis define as (stats-tennis-service*,stats-tennis-return*,stats-tennis-set*) attributes of new stats-tennis-service element: matches-played aces first-services-good first-services-good-pct first-service-points-won first-service-points-won-pct second-service-points-won second-service-points-won-pct service-games-played service-games-won service-games-won-pct break-points-played break-points-saved break-points-saved-pct attributes of new stats-tennis-return element: returns-played matches-played first-service-return-points-won first-service-return-points-won-pct second-service-return-points-won second-service-return-points-won-pct return-games-played return-games-won return-games-won-pct break-points-played break-points-converted break-points-converted-pct redefine action-tennis-point element to hold action-tennis-volley* attributes of new action-tennis-volley element: swing-type could be service, for the first two volleys in a point. otherwise, forehand, backhand spin-type landing-location where it landed after it was hit result fault, good, out make note that stats-tennis-set is kind of a legacy element. The functionality there is fully implementable in the SportsML 1.7-and-beyond core set of structures.
stats-baseball-offensive added attribute reached-base-error added attribute reached-base-fielder-choice added attribute outs-ground added attribute outs-fly added attribute streak-hits added attribute hits-event-winning added attribute pick-offs-against added attribute hit-into-double-play added attribute strikeouts-looking added attribute home-runs-season renamed attribute defensive-interferance-reaches to reached-base-defensive-interference stats-baseball-pitching inherited-runners-total sacrifice-flies-allowed shutouts-combined add earned-runs-scored attribute to action-baseball-score element add at-bat-number to event-state-attributes-baseball incremented throughout game on a per-team basis. So a perfect game would have at-bat-number go from 1 to 27 for the team that didn't get any hits. add attributes to action-baseball-pitch element: pitch-velocity redefine pitch-type to be fast-ball|curve-ball|etc -- instead of (ball | strike | in-play) umpire-call (ball | strike | in-play) trajectory-coordinates make action-baseball-pitch element hold a new element called action-baseball-contact?, with attributes: %global-attributes; location where the ball ends up after the bat made contact with ball strength velocity trajectory-coordinates comment move action-baseball-pitch from event-actions-baseball and instead make these be the models: action-baseball-score (action-baseball-pitch)* action-baseball-play (action-baseball-pitch)*
new specific-curling plugin created