Durations are a problem:
XML schema types allow Years, Months, Days, Hours, Minutes, Seconds
Ical allows Weeks, Days, Hours, Minutes, Seconds
These overlap and we really need a combination of both.
So the compromise is to have a pattern restricted String type and note
that if data is to be exported into the icalendar world it cannot have
years or months.
Ultimately it is to be hoped the two worlds can be aligned.
RFC5545 (icalendar) specifies
dur-value = (["+"] / "-") "P" (dur-date / dur-time / dur-week)
dur-date = dur-day [dur-time]
dur-time = "T" (dur-hour / dur-minute / dur-second)
dur-week = 1*DIGIT "W"
dur-hour = 1*DIGIT "H" [dur-minute]
dur-minute = 1*DIGIT "M" [dur-second]
dur-second = 1*DIGIT "S"
dur-day = 1*DIGIT "D"
So P5W is valid: P5WT10M is not. If weeks re specified nothing else can be
XML specifies
PnYnMnDTnHnMnS
The elements must appear in the order specified and the 'T' is omitted
if hours minutes and seconds are absent.