CourseData
Types
classCourseAssignment
An assignment of a class to a named course within a race.
type classCourseAssignment = {
className: string,
classId: option<string>,
courseName: option<string>,
courseFamily: option<string>,
allowedOnLegs: array<int>,
}Fields:
className:stringclassId:option<string>courseName:option<string>courseFamily:option<string>allowedOnLegs:array<int>
personCourseAssignment
An assignment of a person to a named course within a race.
type personCourseAssignment = {
entryId: option<string>,
bibNumber: option<string>,
name: option<string>,
className: option<string>,
courseName: option<string>,
courseFamily: option<string>,
}Fields:
entryId:option<string>bibNumber:option<string>name:option<string>className:option<string>courseName:option<string>courseFamily:option<string>
teamMemberCourseAssignment
An assignment of a relay team member to a named course.
type teamMemberCourseAssignment = {
entryId: option<string>,
bibNumber: option<string>,
leg: option<int>,
legOrder: option<int>,
name: option<string>,
courseName: option<string>,
courseFamily: option<string>,
}Fields:
entryId:option<string>bibNumber:option<string>leg:option<int>legOrder:option<int>name:option<string>courseName:option<string>courseFamily:option<string>
teamCourseAssignment
An assignment of a relay team to member-level courses.
type teamCourseAssignment = {
bibNumber: option<string>,
teamName: option<string>,
className: option<string>,
teamMemberCourseAssignments: array<
teamMemberCourseAssignment,
>,
}Fields:
bibNumber:option<string>teamName:option<string>className:option<string>teamMemberCourseAssignments:array<teamMemberCourseAssignment>
raceCourseData
Course data for a single race in an event.
See: RaceCourseData in the IOF XML 3.0 XSD
type raceCourseData = {
raceNumber: option<int>,
controls: array<IofXml.IofControl.t>,
courses: array<IofXml.IofCourse.t>,
classAssignments: array<classCourseAssignment>,
personAssignments: array<personCourseAssignment>,
teamAssignments: array<teamCourseAssignment>,
}Fields:
raceNumber:option<int>— The ordinal race number in a multi-race event, starting at 1.controls:array<IofXml.IofControl.t>— Full controls defined for this race.courses:array<IofXml.IofCourse.t>classAssignments:array<classCourseAssignment>— Class-to-course assignments for this race.personAssignments:array<personCourseAssignment>— Person-to-course assignments for this race.teamAssignments:array<teamCourseAssignment>— Team-to-course assignments for this race.
t
Course and control information for an event, used to transfer data from course-setting software to event administration software.
See: CourseData in the IOF XML 3.0 XSD
type t = {
event: option<IofXml.IofEvent.t>,
raceCourseData: array<raceCourseData>,
}Fields:
event:option<IofXml.IofEvent.t>raceCourseData:array<raceCourseData>— Course data per race; one element per race in the event.
resolvedCourseControl
A course-control visit resolved against the full controls defined for a race.
type resolvedCourseControl = {
courseControl: IofXml.IofCourse.courseControl,
controls: array<IofXml.IofControl.t>,
control: option<IofXml.IofControl.t>,
effectiveType: option<string>,
}Fields:
courseControl:IofXml.IofCourse.courseControlcontrols:array<IofXml.IofControl.t>— The matching full control records for all referenced control ids.control:option<IofXml.IofControl.t>— The first matching full control, useful for regular ordered courses.effectiveType:option<string>— CourseControl.type when present, otherwise the first referenced control's type.
Values
parseClassAssignment
let parseClassAssignment: IofXml.XmlUtils.xmlElement => option<classCourseAssignment>parsePersonAssignment
let parsePersonAssignment: IofXml.XmlUtils.xmlElement => option<personCourseAssignment>parseTeamMemberAssignment
let parseTeamMemberAssignment: IofXml.XmlUtils.xmlElement => option<
teamMemberCourseAssignment,
>parseTeamAssignment
let parseTeamAssignment: IofXml.XmlUtils.xmlElement => option<teamCourseAssignment>parseRaceCourseData
let parseRaceCourseData: (IofXml.XmlUtils.xmlElement, int) => raceCourseDatafindRaceControl
let findRaceControl: (
array<IofXml.IofControl.t>,
string,
) => option<IofXml.IofControl.t>resolveCourseControls
Resolve a course's control-code references to the full race controls.
This helper is generic to IOF CourseData and preserves alternative controls by returning all matches in controls.
let resolveCourseControls: (
raceCourseData,
IofXml.IofCourse.t,
) => array<resolvedCourseControl>parse
Parse an IOF XML 3.0 CourseData document string into a typed structure.
let parse: string => result<t, string>serializeCourseControl
let serializeCourseControl: IofXml.IofCourse.courseControl => stringserializeCourse
let serializeCourse: IofXml.IofCourse.t => stringserializeControl
let serializeControl: IofXml.IofControl.t => stringserializeAssignment
let serializeAssignment: classCourseAssignment => stringserializePersonAssignment
let serializePersonAssignment: personCourseAssignment => stringserializeTeamMemberAssignment
let serializeTeamMemberAssignment: teamMemberCourseAssignment => stringserializeTeamAssignment
let serializeTeamAssignment: teamCourseAssignment => stringserializeRaceCourseData
let serializeRaceCourseData: raceCourseData => stringserializeEvent
let serializeEvent: IofXml.IofEvent.t => stringserialize
Serialize a CourseData structure to an IOF XML 3.0 document string.
let serialize: t => string