OIOXML dokumentationsguide for Tid 1. Ejerskab OIOXML Kernekomponentarbejdsgruppen under IT- og Telestyrelsen. 1.1 Interessenter og høringsparter Tidsbegreber såsom tidspunkt, tidsinterval, måneder, uger, dage, timer og minutter mm., anvendes i vid udstrækning overalt i det danske samfund. Udvekslingen af tidsbegreber er derfor yderst normalt og begrebet Tid er derfor blevet udpeget til at være et kernebegreb. Dansk Standard er primær høringspartner, idet kernebegrebet Tid i høj grad bygger på DS/ISO-standarden nr. 8601: Dataelementer og udvekslingsformater - Informationsudveksling - Angivelse af dato og tid. For at tilgodese de interessenter, der ønsker at bruge principperne i DS/ISO-standarden nr. 8601, men som samtidige har brug for at udvide begrebet Tid, har man valgt at standardisere de mest almindelige definitioner på brug af tidsbegreberne. 2. Relevans w3.org har standardiseret en lang række tidsbegreber, men der er stadigvæk et ønske om at få standardiseret yderligere en række tidsbegreber til brug i udvekslingen af data. 3. Baggrund I udarbejdelsen af dette dokument er der taget udgangspunkt i DS/ISO-standarden nr. 8601: Dataelementer og udvekslingsformater - Informationsudveksling - Angivelse af dato og tid, herefter benævnt ISO8601. Da ISO8601 er begrænset til at indeholde én og kun én attribut og der generelt vil være ønske om flere attributter, har man valgt at bruge ISO8601s principper, men ikke dens format. Dvs. man tager udgangspunkt i time interval og recurring time interval fra ISO8601. Recurring time interval er dog udvidet i forhold til ISO8601. Ifølge ISO8601 er RecurringTimeInterval en sammenhængende tidsperiode. Dvs. at hvis en tidsperiode er på 72 timer og skal gentages 3 gange, vil det være kontinuerligt, således at tidsintervallerne af samme varighed kommer umiddelbart efter hinanden. For at gøre RecurringTimeInterval mere fleksibel, er det nu tilladt, at have tidsperioder, der indeholder et bestemt tidsinterval på f.eks. en tidsperiode på 1 time hver mandag i 5 uger og RecurringTimeInterval er dermed ikke kontinuerlig. Endvidere er standarden udviddet med en datoperiode, hvor start og slut er defineret som datoer uden tidsangivelse. 1
ISO8601 giver mulighed for et Bacis format og et Extended format. I dette dokument er det valgt at benytte Extended format se bilag A. For at undgå forvirring omkring tidszoner anvendes UTC (Coordinated Universal Time) 1 for alle start- og sluttider. I XML angives dette med suffix Z. Da det forventes at definitionerne i ISO8601 ligger fast, er kontinuiteten for dokuments tidsbegreber sikret. Men i tilfælde af at w3.org standardiserer flere tidsbegreber, bør der ske en opdatering af dette dokument. 4. Oversigt over de relevante klasser Konceptuel model for Tid Tid FastDatoperiode Tidspunkt FastTidsperiode TilbagevendendeTidsperiode Figur 1: konceptuel model 1 UTC vedligeholdes af BIPM (Bureau International des Poids et Mesures), se http://www.bipm.org/en/scientific/tai/time_server.html 2
Figur 1 viser Tid som et abstrakt begreb, der enten kan være en tidsperiode eller et tidspunkt. En FastDatoperiode er en afgrænset tidsperiode, hvorunder der kan eksistere flere FastTidsperioder. En FastTidsperiode er en afgrænset tidsperiode der kun eksisterer én gang. En TilbagevendendeTidsperiode er en FastTidsperiode plus informationer om perioder eller gentagelse samt intervaller. En TilbagevendendeTidsperiode er en Tidsperiode, der eksisterer minimum én gang. Foruden FastDatoperiode, FastTidsperiode og TilbagevendendeTidsperiode eksisterer der en lang række simple typer. Mange af disse typer er allerede velbeskrevet hos w3.org og er derfor ikke beskrevet i dette dokument og ikke medtaget i figur 2. Ydermere er Tidspunkt også defineret hos w3.org, og nævnes ikke videre i dette dokument. De simple typer, der er vist i figur 2 kan bruges efter ønske til enten udvidelse af andre begreber eller selvstændigt. De simple typer er beskrevet yderligere i tabel 3. Figur 2: simple typer Tabel 1: Oversigt over konceptuelle OIOXML-klasser Navn på schema Formål Anvendelse DateInterval FastDatoperiode Angivelse af et datointerval Entydig angivelse af et datointerval, dvs. et datointerval forankret i en bestemt dato, med mulighed for at være åbent i den ene ende Struktureret udveksling af datointervaller, primært system-system-udveksling. Anvendes til angive af f.eks. ferieperioder, som forekommer én gang. Følgende anvendelser er defineret: Defineret ved start og slut Defineret ved start og varighed Defineret ved varighed og slut Defineret ved Start Defineret ved Slut 3
Navn på schema Formål Anvendelse TimeInterval FastTidsperiode Angivelse af et tidsinterval Enten 1) entydig angivelse af et tidsinterval, dvs. et tidsinterval forankret i et bestemt tidspunkt, med mulighed for at være åbent i den ene ende, eller 2) en varighed. Struktureret udveksling af tidsintervaller, primært system-system-udveksling. Anvendes til angivelse af f.eks. mødetider, som forekommer én gang. Der er i ISO8601 defineret fire typer anvendelse: Defineret ved start og slut Defineret ved varighed Defineret ved start og varighed Defineret ved varighed og slut Desuden kan der være brug for ekstra typer. Følgende er derfor defineret: Defineret ved Start Defineret ved Slut TimeInterval definere RecurringTimeIntervals første forkomst af det gentagende tidsinterval. RecurringTimeInterval TilbagevendendeTidsperiode Angivelse af et tilbagevendende tidsperiode, dvs. tidsintervaller, der gentages flere gange, men som stadigvæk er forankret i et bestemt tidsperiode. Det første tidsinterval angives af TimeInterval. Anvendes til angivelse af f.eks. mødetider, som forekommer periodisk hver uge, eller årligt. Struktureret udveksling af tidsintervaller, primært system-system-udveksling. Der er 4 anvendelser (Ifølge ISO8601) Defineret ved gentagelse og varighed Defineret ved gentagelse, varighed og slutperiode Defineret ved gentagelse, varighed og startperiode Defineret ved gentagelse, startperiode og slutperiode For at tilpasse dem til almindelig brug er de ændret til følgende: Defineret ved interval og gentagelse eller varighed Defineret ved slutperiode, interval og gentagelse eller varighed Defineret ved startperiode, slutperiode og interval Defineret ved startperiode, interval og gentagelse eller varighed 4
5. De strukturerede OIOXML typer Logisk model for Tid Tid 1 * FastDatoperiode +StartDato +SlutDato +Varighed 1 * FastTidsperiode +StartTid +SlutTid +Varighed TilbagevendendeTidsperiode +StartPeriodeDato +SlutPeriodeDato +VarighedAfPeriode +AntalGentagelser +Gentagelse Figur 3: Logisk model med danske betegnelser. Den logiske model viser FastDatoperiode og FastTidsperiode som komplekse typer, der hver kan indeholde tre attributter. TilbagevendendeTidsperiode er også en kompleks type og indeholder FastTidsperiode og dermed alle dens attributter samt muligheden for yderligere attributter. 5
1/1 2007 (Startperiode) 31/12 2007 (Slutperiode) 4/1 2007 (Starttidspunkt) Eksempel på TilbagevendendeTidsperiode, hvor attributten starttidspunkt er nedarvet. TilbagevendendeTidsperiode kan f.eks. indeholde starttidspunkt som er nedarvet fra FastTidsperiode, samtidig med at den indeholder en startperiode. Perioden kan være et helt år og første starttidspunkt er d. 4/1 (første torsdag i måneden). Oftest vil starttidspunkt og startperiode være sammenfaldende, men ikke altid. Figur 4: Logisk model med engelske betegnelser 6
Tabel 2: Oversigt over elementer som indgår i de strukturerede typer Elementnavn Dansk label og definition Engelsk label og definition Domæne Eksempel StartDate Startdato: Den dato hvor perioden starter. Start date: The specific date where the interval begins. <type="date"> <StartDate>2006-10-02</StartDate> Bemærkninger Elementnavn Dansk label og definition Engelsk label og definition Domæne Eksempel EndDate Slutdato: Den dato hvor perioden slutter. End date: The specific date where the interval ends. <type="date"> <EndDate>2006-10-03</EndDate> Bemærkninger Elementnavn Dansk label og definition Engelsk label og definition Domæne Eksempel StartDateTime Starttidspunkt: Det tidspunkt hvor perioden starter. Start time: The specific time where the interval begins. <restriction base="datetime"> <pattern value="[0-9\-:t]+z"/> </restriction> <StartDateTime>2006-10-02T13:20:01Z</StartDateTime> Bemærkninger StartDateTime anvender UTC, hvilket angives med suffix Z. 7
Elementnavn Dansk label og definition Engelsk label og definition Domæne Eksempel EndDateTime Sluttidspunkt: Det tidspunkt hvor perioden slutter. End time: The specific time where the interval ends. <restriction base="datetime"> <pattern value="[0-9\-:t]+z"/> </restriction> <EndDateTime>2006-10-02T14:20:01Z</EndDateTime> Bemærkninger EndDateTime anvender UTC, hvilket angives med suffix Z. Elementnavn Dansk label og definition Engelsk label og definition Domæne Eksempel Bemærkninger DurationMeasure Varighed: Periodens varighed. Duration: The duration of the interval. <restriction base="duration"> <pattern value="-?p([0-9]+y)?(([1-9] 1[0-1])M)?(([1-9] [1-2][0-9] 3[0-1])D)?(T(([1-9] 1[0-9] 2[0-3])H)?(([1-5]?[0-9])M)?((([1-5]?[0-9](\.[0-9]+)?))S)?)?"/> </restriction> <DurationMeasure>P1Y2M3DT10H30M</DurationMeasure> XML s indbyggede simple type ``duration er her begrænset på følgende vis: Udfaldsrummet for måned (M) er begrænset til 1-11 Udfaldsrummet for dag (D) er begrænset til 1-31 Udfaldsrummet for time (H) er begrænset til 1-23 Udfaldsrummet for minut (M) er begrænset til 1-59 Udfaldsrummet for sekund (S) er begrænset til 0-59 I DateInterval må tidsdelen af DurationMeasure ikke angives. 8
Elementnavn Dansk label og definition Engelsk label og definition Domæne Eksempel RecurrenceQuantity Antal gentagelser: Det antal gange tidsperioden skal gentages. Recurrence quantity: The number of times the time interval must be repeated <restriction base="string"> <pattern value="[1-9]([0-9]*)?"/> </restriction> <RecurrenceQuantity>20</RecurrenceQuantity> Bemærkninger Elementnavn Dansk label og definition Engelsk label og definition Domæne Eksempel Bemærkninger SimpleRecurrenceCode Gentagelseskode: Angivelse af specifikt gentagelsesmønster. Recurrence code: Specification of a specific recurrence pattern. <restriction base="string"> <pattern value="r((m-([1-9] [1-3][0-9] 31)) (W-[1-7]))"/> </restriction> <SimpleRecurrenceCode>RW-5</SimpleRecurrenceCode> RW-5 er accepteret som værende en del af ISO standarden. R = recurring, W = uge, 5=ugedagens nummer (fredag). Se endvidere Bilag A. Som beskrevet i forbindelse med den konceptuelle model er der medtaget en række simple typer for at muliggøre udvikling af specialudviklede tidstyper. Der er i http://www.w3.org/tr/2004/rec-xmlschema-2-20041028/datatypes.html defineret en række tidsbegreber, herunder gyear, gyearmonth, gmonth, gmonthday, gday o.a. Disse begreber er normalt fyldestgørende for de fleste dataudvekslinger. De simple typer skal ses som et evt. supplement til disse. 9
Figur 5: Supplerende simple typer Tabel 3: Oversigt over elementer som indgår i de simple typer Elementnavn Dansk label og definition Engelsk label og definition Domæne Eksempel DayOfWeekCode Ugedag: Angivelse af ugedagens nummer. Day of week: Specification of the number of the day of week. <restriction base="string"> <enumeration value="1"/><!-- Dansk: mandag / English: Monday --> <enumeration value="2"/><!-- Dansk: tirsdag / English: Tuesday --> <enumeration value="3"/><!-- Dansk: onsdag / English: Wednesday --> <enumeration value="4"/><!-- Dansk: torsdag / English: Thursday --> <enumeration value="5"/><!-- Dansk: fredag / English: Friday --> <enumeration value="6"/><!-- Dansk: lørdag / English: Saturday --> <enumeration value="7"/><!-- Dansk: søndag / English: Sunday --> </restriction> <DayOfWeekCode>5</DayOfWeekCode> Bemærkninger Elementnavn Dansk label og definition Engelsk label og definition Domæne Eksempel WeekCode Ugenummer: Angivelse af ugens nummer. Week number: Specification of the number of the week. <restriction base="string"> <pattern value="[1-9] [1-4][0-9] 5[0-3]"/> </restriction> <WeekCode>52</WeekCode> Bemærkninger Et år kan max. indeholde 53 uger. Den første torsdag i det nye år er altid i uge 1. 10
DateInterval (FastDatoperiode) Formål Baggrund Anvendelse Angivelse af et datointerval Entydig angivelse af et datointerval, dvs. et datointerval forankret i et bestemt dato, med mulighed for at være åbent i den ene ende. Datointerval er en udvidelse af standarden I forhold til DS/ISO standarden nr. 8601: Dataelementer og udvekslingsformater - Informationsudveksling - Angivelse af dato og tid, idet det ikke altid er formålstjenligt at skulle angive et specifikt tidspunkt for et interval. Struktureret udveksling af datointervaller, primært system-system-udveksling. Anvendes til angive af f.eks. ferieperioder, som forekommer én gang. Følgende anvendelser er defineret: Defineret ved start og slut Defineret ved start og varighed Defineret ved varighed og slut Defineret ved Start Defineret ved Slut Indhold En FastDatoperiode indeholder en startdato og/eller en slutdato og evt. en varighed. Varighed angives uden tidsdelen. DateInterval Min Max Dansk Label Eksempel StartDate 0 1 Startdato 2006-10-02 EndDate 0 1 Slutdato 2006-10-03 DurationMeasure 0 1 Varighed P1Y2M3DT10H30M Nødvendige elementer er angivet med fed skrift Typer DateInterval Min Max Dansk Label Defineret ved start StartDate 1 1 Startdato og slut EndDate 1 1 Slutdato Defineret ved start StartDate 1 1 Startdato og varighed DurationMeasure 1 1 Varighed Defineret ved DurationMeasure 1 1 Varighed varighed og slut EndDate 1 1 Slutdato Defineret ved start StartDate 1 1 Startdato Defineret ved slut EndDate 1 1 Slutdato 11
Eksempler på XML-strukturer for DateInterval (uden angivelse af namespace tilhørsforhold) <DateInterval> <StartDate>2001-08-07</StartDate> <EndDate>2002-10-10</EndDate> </DateInterval> <DateInterval> <StartDate>2001-08-07</StartDate> <DurationMeasure>P1Y2M3D</DurationMeasure> </DateInterval> <DateInterval> <EndDate>2002-10-10</EndDate> <DurationMeasure>P1Y2M3D</DurationMeasure> </DateInterval> <DateInterval> <StartDateTime>2001-08-07</StartDate> </DateInterval> <DateInterval> <EndDate>2002-10-10</EndDate> </DateInterval> TimeInterval (FastTidsperiode) Formål Baggrund Anvendelse Angivelse af et tidsinterval Enten 1) entydig angivelse af et tidsinterval, dvs. et tidsinterval forankret i et bestemt tidspunkt, med mulighed for at være åbent i den ene ende, eller 2) en varighed. Tidsinterval er baseret på DS/ISO standarden nr. 8601: Dataelementer og udvekslingsformater - Informationsudveksling - Angivelse af dato og tid. Struktureret udveksling af tidsintervaller, primært system-system-udveksling. Anvendes til angive af f.eks. mødetider, som forekommer én gang. Der er i ISO8601 defineret fire typer anvendelse: Defineret ved start og slut Defineret ved varighed Defineret ved start og varighed Defineret ved varighed og slut Desuden kan der være brug for ekstra typer. Følgende er derfor defineret: Defineret ved Start Defineret ved Slut TimeInterval definerer RecurringTimeIntervals første forkomst af det gentagende tidsinterval. Indhold En fasttidsperiode indeholder et starttidspunkt og/eller et sluttidspunkt og/eller en varighed. 12
TimeInterval Min Max Dansk Label Eksempel StartDateTime 0 1 Starttid 2006-10-02T13:20:01Z EndDateTime 0 1 Sluttid 2006-10-02T13:20:01Z DurationMeasure 0 1 Varighed P1Y2M3DT10H30M Nødvendige elementer er angivet med fed skrift Typer TimeInterval Min Max Dansk Label Defineret ved start StartDateTime 1 1 Starttid og slut EndDateTime 1 1 Sluttid Defineret ved varighed DurationMeasure 1 1 Varighed Defineret ved start StartDateTime 1 1 Starttid og varighed DurationMeasure 1 1 Varighed Defineret ved DurationMeasure 1 1 Varighed varighed og slut EndDateTime 1 1 Sluttid Defineret ved start StartDateTime 1 1 Starttid Defineret ved slut EndDateTime 1 1 Sluttid Eksempler på XML-strukturer for TimeInterval (uden angivelse af namespace tilhørsforhold) <StartDateTime>2001-08-07T01:30:00Z</StartDateTime> <EndDateTime>2002-10-10T12:00:00Z</EndDateTime> </TimeInterval> <DurationMeasure>P1Y2M3DT10H30M</DurationMeasure> </TimeInterval> <StartDateTime>2001-08-07T01:30:00Z</StartDateTime> <DurationMeasure>P1Y2M3DT10H30M</DurationMeasure> </TimeInterval> <EndDateTime>2002-10-10T12:00:00Z</EndDateTime> <DurationMeasure>P1Y2M3DT10H30M</DurationMeasure> </TimeInterval> <StartDateTime>2001-08-07T01:30:00Z</StartDateTime> </TimeInterval> <EndDateTime>2002-10-10T12:00:00Z</EndDateTime> </TimeInterval> 13
RecurringTimeInterval (TilbagevendendeTidsperiode) Formål Angivelse af et tilbagevendende tidsperiode, dvs. tidsintervaller, der gentages flere gange, men som stadigvæk er forankret i et bestemt tidsperiode. Det første tidsinterval angives af TimeInterval. Baggrund Tilbagevendende tidsinterval er baseret på DS/ISO standarden nr. 8601: Dataelementer og udvekslingsformater - Informationsudveksling - Angivelse af dato og tid. Anvendelse Anvendes til angivelse af f.eks. mødetider, som forekommer periodisk hver uge, eller årligt. Struktureret udveksling af tidsintervaller, primært system-system-udveksling. Der er 4 anvendelser (Ifølge ISO8601) Defineret ved gentagelse og varighed Defineret ved gentagelse, varighed og slutperiode Defineret ved gentagelse, varighed og startperiode Defineret ved gentagelse, startperiode og slutperiode For at tilpasse dem til almindelig brug er de ændret til følgende: Defineret ved interval og gentagelse eller varighed Defineret ved slutperiode, interval og gentagelse eller varighed Defineret ved startperiode, slutperiode og interval Defineret ved startperiode, interval og gentagelse eller varighed Indhold En tilbagevendende tidsperiode indeholder en fasttidsperiode og periodestart/slut, varighed, antal gentagelser og intervaller RecurringTimeInterval Min Max Dansk Label Eksempel TimeInterval 1 1 Se ovenfor Se ovenfor -StartDateTime 0 1 Starttid 2006-10-02T13:20:01Z -EndDateTime 0 1 Sluttid 2006-10-02T14:20:01Z -DurationMeasure 0 1 Varighed PT72H StartDate 0 1 StartPeriodeDato 2006-10-02 EndDate 0 1 SlutPeriodeDato 2006-11-02 DurationMeasure 0 1 PeriodeVarighed P10D RecurrenceQuantity 0 1 AntalGentagelser 20 SimpleRecurrenceCode 1 * Gentagelseskode RW-5 Nødvendige elementer er angivet med fed skrift. Bemærk at man enten skal bruge AntalGentagelser eller PeriodeVarighed. 14
Typer RecurringTimeInterval Min Max Dansk Label Defineret ved Interval og gentagelse eller varighed Defineret ved slutperiode, interval og gentagelse eller varighed Defineret ved startperiode, slutperiode og interval Defineret ved startperiode, interval og gentagelse eller varighed TimeInterval 1 1 Se ovenstående RecurrenceQuantity 0 1 AntalGentagelser DurationMeasure 0 1 PeriodeVarighed SimpleRecurrenceCode 1 * Gentagelseskode TimeInterval 1 1 Se ovenstående RecurrenceQuantity 0 1 AntalGentagelser DurationMeasure 0 1 PeriodeVarighed EndDate 1 1 PeriodeSlutDato SimpleRecurrenceCode 1 * Gentagelseskode TimeInterval 1 1 Se ovenstående StartDate 1 1 PeriodeStartDato EndDate 1 1 PeriodeSlutDato SimpleRecurrenceCode 1 * Gentagelseskode TimeInterval 1 1 Se ovenstående RecurrenceQuantity 0 1 AntalGentagelser DurationMeasure 0 1 PeriodeVarighed StartDate 1 1 PeriodeStartDato SimpleRecurrenceCode 1 * Gentagelseskode Eksempler på XML-strukturer til angivelse af RecurringTimeInterval (uden angivelse af namespace tilhørsforhold) <RecurringTimeInterval> <StartDateTime>2001-08-07T01:30:00Z</StartDateTime> <EndDateTime>2001-08-07T02:00:00Z</EndDateTime> <RecurrenceQuantity>20</RecurrenceQuantity> <SimpleRecurrenceCode>RW-3</SimpleRecurrenceCode> <SimpleRecurrenceCode>RW-5</SimpleRecurrenceCode> </RecurringTimeInterval> <RecurringTimeInterval> <EndDateTime>2002-08-07T02:00:00Z</EndDateTime> <DurationMeasure>P30m</DurationMeasure> <EndDate>2002-08-07</EndDate> <DurationMeasure>P10W</DurationMeasure> <SimpleRecurrenceCode>RW-3</SimpleRecurrenceCode> <SimpleRecurrenceCode>RW-5</SimpleRecurrenceCode> </RecurringTimeInterval> 15
<RecurringTimeInterval> <StartDateTime>2001-08-07T01:30:00Z</StartDateTime> <EndDateTime>2001-08-07T02:00:00Z</EndDateTime> <StartDate>2001-08-07</StartDate> <EndDate>2002-08-07</EndDate> <SimpleRecurrenceCode>RW-3</SimpleRecurrenceCode> <SimpleRecurrenceCode>RW-5</SimpleRecurrenceCode> </RecurringTimeInterval> <RecurringTimeInterval> <StartDateTime>2001-08-07T01:30:00Z</StartDateTime> <DurationMeasure>P30m</DurationMeasure> <StartDate>2001-08-07</StartDate> <DurationMeasure>P10W</DurationMeasure> <SimpleRecurrenceCode>RW-3</SimpleRecurrenceCode> <SimpleRecurrenceCode>RW-5</SimpleRecurrenceCode> </RecurringTimeInterval> 16
6. Brug af kandidaterne Eksempel 1: Eksempel på indkaldelse til møde hver mandag kl. 9-10. Eksempel på XML-struktur <Meeting> <MeetingIdentifier>Staffmeeting</MeetingIdentifier> <RecurringTimeInterval> <StartDateTime>2007-01-08T09:00:00Z</StartDateTime> <EndDateTime>2007-01-08T10:00:00Z</EndDateTime> </TimeInterval> <StartDate>2007-01-08</StartDate> <EndDate>2007-12-31</EndDate> > <DurationMeasure>P51W</DurationMeasure> <SimpleRecurrenceCode>RW-1</SimpleRecurrenceCode> </RecurringTimeInterval> <Agenda> <ItemText>Welcome</ItemText> <ItemText>Last Week</ItemText> <ItemText>This Week</ItemText> <ItemText>New Sales and projects</itemtext> <ItemText>a.o.b.</ItemText> </Agenda> <Participants> <Participant> <PersonGivenName>Lene</PersonGivenName> <PersonSurnameName>Knudsen</PersonSurnameName> <EmailAddressIdentifier>lk@sub.com</EmailAddressIdentifier> </Participant> <Participant> <PersonGivenName>Peter</PersonGivenName> <PersonSurnameName>Hansen</PersonSurnameName> <EmailAddressIdentifier>ph@sub.com</EmailAddressIdentifier> </Participant> <Participant> <PersonGivenName>Leif</PersonGivenName> <PersonSurnameName>Petersen</PersonSurnameName> <EmailAddressIdentifier>lp@sub.com</EmailAddressIdentifier> </Participant> <Participant> <PersonGivenName>Helle</PersonGivenName> <PersonSurnameName>Jensen</PersonSurnameName> <EmailAddressIdentifier>hj@sub.com</EmailAddressIdentifier> </Participant> <Participant> <PersonGivenName>Niels</PersonGivenName> 17
<PersonSurnameName>Jørgensen</PersonSurnameName> <EmailAddressIdentifier>nj@sub.com</EmailAddressIdentifier> </Participant> <Participant> <PersonGivenName>Kent</PersonGivenName> <PersonSurnameName>Pedersen</PersonSurnameName> <EmailAddressIdentifier>kp@sub.com</EmailAddressIdentifier> </Participant> </Participants> </Meeting> Eksempel 2: Eksempel på oversigt over feriedag. Eksempel på XML-struktur <HolidayPlanning> <Holiday> <HolidayIdentifier>2. Pinse dag</holidayidentifier> <DayOfWeekCode>1</DayOfWeekCode> <HolidayInformationByYear> <gyear>2007</gyear> <gmonth>05</gmonth> <gmonthday>28</gmonthday> <WeekCode>22</WeekCode> </HolidayInformationByYear> <HolidayInformationByYear> <gyear>2008</gyear> <gmonth>05</gmonth> <gmonthday>12</gmonthday> <WeekCode>20</WeekCode> </HolidayInformationByYear> <HolidayInformationByYear> <gyear>2009</gyear> <gmonth>06</gmonth> <gmonthday>1</gmonthday> <WeekCode>23</WeekCode> </HolidayInformationByYear> </Holiday> <Holiday> <HolidayIdentifier>Kristi Himmelfarts dag</holidayidentifier> <DayOfWeekCode>4</DayOfWeekCode> <HolidayInformationByYear> <gyear>2007</gyear> <gmonth>05</gmonth> <gmonthday>17</gmonthday> <WeekCode>20</WeekCode> </HolidayInformationByYear> 18
<HolidayInformationByYear> <gyear>2008</gyear> <gmonth>05</gmonth> <gmonthday>1</gmonthday> <WeekCode>18</WeekCode> </HolidayInformationByYear> <HolidayInformationByYear> <gyear>2009</gyear> <gmonth>05</gmonth> <gmonthday>21</gmonthday> <WeekCode>21</WeekCode> </HolidayInformationByYear> </Holiday> <Holiday> <HolidayIdentifier>Efterårsferie</HolidayIdentifier> <WeekCode>42</WeekCode> <HolidayInformationByYear> <gyear>2007</gyear> <StartDateTime>2007-10-15T00:00:00Z</StartDateTime> <EndDateTime>2007-10-21T23:59:59Z</EndDateTime> </TimeInterval> </HolidayInformationByYear> <HolidayInformationByYear> <gyear>2008</gyear> <StartDateTime>2008-10-13T00:00:00Z</StartDateTime> <EndDateTime>2008-10-19T23:59:59Z</EndDateTime> </TimeInterval> </HolidayInformationByYear> <HolidayInformationByYear> <gyear>2009</gyear> <StartDateTime>2009-10-12T00:00:00Z</StartDateTime> <EndDateTime>2009-10-18T23:59:59Z</EndDateTime> </TimeInterval> </HolidayInformationByYear> </Holiday> </HolidayPlanning> 19
Bilag A I dato- og tidsformater kan man bruge følgende karakterer: [Y] beskriver et tal brugt i tidsbetegnelse year (år) [M] beskriver et tal brugt i tidsbetegnelse month (måned) [D] beskriver et tal brugt i tidsbetegnelse day (dag) [w] beskriver et tal brugt i tidsbetegnelse week (uge) [h] beskriver et tal brugt i tidsbetegnelse hour (time) [m] beskriver et tal brugt i tidsbetegnelse minute (minut) [s] beskriver et tal brugt i tidsbetegnelse second (sekund) [n] beskriver et tal fra en positiv heltal eller nul [ + ] beskriver et plustegn [+] hvis den optræder i kombination med et efterfølgende element hvor en positiv værdi eller nul skal beskrives (plustegnet skal skrives, med mindre andet er oplyst) eller minustegn [-] hvis i kombination med et efterfølgende element hvor en negativ værdi skal være beskrevet. [_] Når en hvilken som helst af karaktererne, der beskriver et tal, er understreget, beskriver det nul eller flere tal i den tilsvarende dato- og tidsrepræsentation. Eksempler med ovenstående: 1Y2M3DT10H30M = 1 år, 2 måneder 3 dage, 10 timer og 30 minutter. 72H = 72 timer Symbolkarakterer: [P] er brugt som et symbol for varighed, som efterfølgelse af den komponent der repræsenter varigheden [R] er brugt som et tilbagevendende tidsintervalsymbol [T] er et tidssymbol der indikere: i. Starten af repræsentationen af lokal tid ii. Starten af repræsentationen af klokkeslæt, dato og tid 20
iii. Starten af repræsentationen af antallet af timer, minutter og sekunder udtrykt som varighed [W] er brugt som symbol for uge [Z] er brugt som symbol for UTC SimpleRecurrenceCode er en del af den tilbagevendende tidsperiode. SimpleRecurrenceCode vil derfor have [R] for Recurring først og derefter tidsenheden. Eksempler på SimpleRecurrenceCode: RW-1 = mandag RW-2 = tirsdag RW-3 = onsdag RW-4 = torsdag RW-5 = fredag RW-6 = lørdag RW-7 = søndag RM-1 = den 1. i måneden RM-2 = den 2. i måneden RM-3 = den 3. i måneden RM-30 = den 30. i måneden RM-31 = den 31. i måneden. 21