The XSD schema describes the format of the XML data files.
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/Holiday"
xmlns:tns="http://www.example.org/Holiday" elementFormDefault="qualified">
<simpleType name="Weekday">
<restriction base="string">
<enumeration value="MONDAY"></enumeration>
<enumeration value="TUESDAY"></enumeration>
<enumeration value="WEDNESDAY"></enumeration>
<enumeration value="THURSDAY"></enumeration>
<enumeration value="FRIDAY"></enumeration>
<enumeration value="SATURDAY"></enumeration>
<enumeration value="SUNDAY"></enumeration>
</restriction>
</simpleType>
<simpleType name="Month">
<restriction base="string">
<enumeration value="JANUARY"></enumeration>
<enumeration value="FEBRUARY"></enumeration>
<enumeration value="MARCH"></enumeration>
<enumeration value="MAY"></enumeration>
<enumeration value="JUNE"></enumeration>
<enumeration value="JULY"></enumeration>
<enumeration value="AUGUST"></enumeration>
<enumeration value="SEPTEMBER"></enumeration>
<enumeration value="OCTOBER"></enumeration>
<enumeration value="NOVEMBER"></enumeration>
<enumeration value="DECEMBER"></enumeration>
<enumeration value="APRIL"></enumeration>
</restriction>
</simpleType>
<complexType name="RelativeToFixed">
<complexContent>
<extension base="tns:Holiday">
<sequence>
<choice maxOccurs="1" minOccurs="1">
<element name="Days" type="int" maxOccurs="1" minOccurs="0">
</element>
<element name="Weekday" type="tns:Weekday" maxOccurs="1"
minOccurs="0">
</element>
</choice>
<element name="When" type="tns:When"></element>
<element name="Date" type="tns:Fixed"></element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="Holidays">
<sequence>
<element name="Fixed" type="tns:Fixed" maxOccurs="unbounded"
minOccurs="0">
</element>
<element name="RelativeToFixed" type="tns:RelativeToFixed"
maxOccurs="unbounded" minOccurs="0">
</element>
<element name="RelativeToWeekdayInMonth"
type="tns:RelativeToWeekdayInMonth" maxOccurs="unbounded"
minOccurs="0">
</element>
<element name="FixedWeekday" type="tns:FixedWeekdayInMonth"
maxOccurs="unbounded" minOccurs="0">
</element>
<element name="ChristianHoliday" type="tns:ChristianHoliday"
maxOccurs="unbounded" minOccurs="0">
</element>
<element name="IslamicHoliday" type="tns:IslamicHoliday"
maxOccurs="unbounded" minOccurs="0">
</element>
<element name="FixedWeekdayBetweenFixed"
type="tns:FixedWeekdayBetweenFixed" maxOccurs="unbounded"
minOccurs="0">
</element>
<element name="FixedWeekdayRelativeToFixed"
type="tns:FixedWeekdayRelativeToFixed" maxOccurs="unbounded"
minOccurs="0">
</element>
<element name="HinduHoliday" type="tns:HinduHoliday"
maxOccurs="unbounded" minOccurs="0">
</element>
<element name="HebrewHoliday" type="tns:HebrewHoliday"
maxOccurs="unbounded" minOccurs="0">
</element>
<element name="EthiopianOrthodoxHoliday"
type="tns:EthiopianOrthodoxHoliday" maxOccurs="unbounded"
minOccurs="0">
</element>
<element name="RelativeToEasterSunday" type="tns:RelativeToEasterSunday" minOccurs="0" maxOccurs="unbounded"></element>
</sequence>
</complexType>
<element name="Configuration" type="tns:Configuration"></element>
<complexType name="Configuration">
<sequence>
<element name="Holidays" type="tns:Holidays"></element>
<element name="SubConfigurations" type="tns:Configuration"
minOccurs="0" maxOccurs="unbounded">
</element>
</sequence>
<attribute name="hierarchy" type="string"></attribute>
<attribute name="description" type="string"></attribute>
</complexType>
<complexType name="Fixed">
<complexContent>
<extension base="tns:MoveableHoliday">
<attribute name="month" type="tns:Month"></attribute>
<attribute name="day">
<simpleType>
<restriction base="int">
<minInclusive value="1"></minInclusive>
<maxInclusive value="31"></maxInclusive>
</restriction>
</simpleType>
</attribute>
</extension>
</complexContent>
</complexType>
<simpleType name="When">
<restriction base="string">
<enumeration value="BEFORE"></enumeration>
<enumeration value="AFTER"></enumeration>
</restriction>
</simpleType>
<complexType name="FixedWeekdayInMonth">
<complexContent>
<extension base="tns:Holiday">
<attribute name="which" type="tns:Which"></attribute>
<attribute name="weekday" type="tns:Weekday"></attribute>
<attribute name="month" type="tns:Month"></attribute>
</extension>
</complexContent>
</complexType>
<simpleType name="Which">
<restriction base="string">
<enumeration value="FIRST"></enumeration>
<enumeration value="SECOND"></enumeration>
<enumeration value="THIRD"></enumeration>
<enumeration value="LAST"></enumeration>
<enumeration value="FOURTH"></enumeration>
</restriction>
</simpleType>
<complexType name="RelativeToWeekdayInMonth">
<complexContent>
<extension base="tns:Holiday">
<sequence>
<element name="FixedWeekday" type="tns:FixedWeekdayInMonth"></element>
</sequence>
<attribute name="weekday" type="tns:Weekday"></attribute>
<attribute name="when" type="tns:When"></attribute>
</extension>
</complexContent>
</complexType>
<complexType name="IslamicHoliday">
<complexContent>
<extension base="tns:Holiday">
<attribute name="type" type="tns:IslamicHolidayType">
</attribute>
</extension>
</complexContent>
</complexType>
<simpleType name="IslamicHolidayType">
<restriction base="string">
<enumeration value="NEWYEAR"></enumeration>
<enumeration value="ASCHURA"></enumeration>
<enumeration value="MAWLID_AN_NABI"></enumeration>
<enumeration value="LAILAT_AL_MIRAJ"></enumeration>
<enumeration value="LAILAT_AL_BARAT"></enumeration>
<enumeration value="RAMADAN"></enumeration>
<enumeration value="LAILAT_AL_QADR"></enumeration>
<enumeration value="ID_AL_FITR"></enumeration>
<enumeration value="ID_UL_ADHA"></enumeration>
</restriction>
</simpleType>
<simpleType name="ChronologyType">
<restriction base="string">
<enumeration value="JULIAN"></enumeration>
<enumeration value="GREGORIAN"></enumeration>
</restriction>
</simpleType>
<complexType name="ChristianHoliday">
<complexContent>
<extension base="tns:MoveableHoliday">
<attribute name="type" type="tns:ChristianHolidayType">
</attribute>
<attribute name="chronology" type="tns:ChronologyType">
</attribute>
</extension>
</complexContent>
</complexType>
<simpleType name="HolidayType">
<restriction base="string">
<enumeration value="OFFICIAL_HOLIDAY" />
<enumeration value="UNOFFICIAL_HOLIDAY" />
</restriction>
</simpleType>
<simpleType name="ChristianHolidayType">
<restriction base="string">
<enumeration value="GOOD_FRIDAY"></enumeration>
<enumeration value="EASTER_MONDAY"></enumeration>
<enumeration value="ASCENSION_DAY"></enumeration>
<enumeration value="WHIT_MONDAY"></enumeration>
<enumeration value="CORPUS_CHRISTI"></enumeration>
<enumeration value="MAUNDY_THURSDAY"></enumeration>
<enumeration value="ASH_WEDNESDAY"></enumeration>
<enumeration value="MARDI_GRAS"></enumeration>
<enumeration value="GENERAL_PRAYER_DAY"></enumeration>
<enumeration value="CLEAN_MONDAY"></enumeration>
<enumeration value="SHROVE_MONDAY"></enumeration>
<enumeration value="PENTECOST"></enumeration>
<enumeration value="CARNIVAL"></enumeration>
<enumeration value="EASTER_SATURDAY"></enumeration>
<enumeration value="EASTER_TUESDAY"></enumeration>
<enumeration value="SACRED_HEART"></enumeration>
<enumeration value="EASTER"></enumeration>
<enumeration value="PENTECOST_MONDAY"></enumeration>
<enumeration value="WHIT_SUNDAY"></enumeration>
</restriction>
</simpleType>
<complexType name="FixedWeekdayBetweenFixed">
<complexContent>
<extension base="tns:Holiday">
<sequence>
<element name="from" type="tns:Fixed"></element>
<element name="to" type="tns:Fixed"></element>
</sequence>
<attribute name="weekday" type="tns:Weekday"></attribute>
</extension>
</complexContent>
</complexType>
<complexType name="Holiday" abstract="true">
<attribute name="validFrom" type="int" use="optional" />
<attribute name="validTo" type="int" />
<attribute name="every" type="tns:HolidayCycleType" default="EVERY_YEAR" />
<attribute name="descriptionPropertiesKey" type="string" />
<attribute name="localizedType" type="tns:HolidayType"
default="OFFICIAL_HOLIDAY" />
</complexType>
<simpleType name="Substituted">
<restriction base="string">
<enumeration value="ON_SATURDAY"></enumeration>
<enumeration value="ON_SUNDAY"></enumeration>
<enumeration value="ON_WEEKEND"></enumeration>
<enumeration value="ON_TUESDAY"></enumeration>
<enumeration value="ON_WEDNESDAY"></enumeration>
</restriction>
</simpleType>
<simpleType name="With">
<restriction base="string">
<enumeration value="NEXT"></enumeration>
<enumeration value="PREVIOUS"></enumeration>
</restriction>
</simpleType>
<complexType name="MovingCondition">
<attribute name="substitute" type="tns:Weekday"></attribute>
<attribute name="with" type="tns:With"></attribute>
<attribute name="weekday" type="tns:Weekday"></attribute>
</complexType>
<simpleType name="HinduHolidayType">
<restriction base="string">
<enumeration value="HOLI"></enumeration>
</restriction>
</simpleType>
<complexType name="HinduHoliday">
<complexContent>
<extension base="tns:Holiday">
<attribute name="type" type="tns:HinduHolidayType"></attribute>
</extension>
</complexContent>
</complexType>
<complexType name="MoveableHoliday" abstract="true">
<complexContent>
<extension base="tns:Holiday">
<sequence>
<element name="MovingCondition" type="tns:MovingCondition" maxOccurs="unbounded" minOccurs="0"></element>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="HebrewHoliday">
<complexContent>
<extension base="tns:Holiday">
<attribute name="type" type="tns:HebrewHolidayType"></attribute>
</extension>
</complexContent>
</complexType>
<simpleType name="HebrewHolidayType">
<restriction base="string">
<enumeration value="ROSH_HASHANAH"></enumeration>
<enumeration value="ASERET_YEMEI_TESHUVA"></enumeration>
<enumeration value="YOM_KIPPUR"></enumeration>
<enumeration value="SUKKOT"></enumeration>
<enumeration value="SHEMINI_ATZERET"></enumeration>
<enumeration value="HANUKKAH"></enumeration>
<enumeration value="ASARAH_BETEVET"></enumeration>
<enumeration value="TU_BISHVAT"></enumeration>
<enumeration value="PURIM"></enumeration>
<enumeration value="1_NISAN"></enumeration>
<enumeration value="PESACH"></enumeration>
<enumeration value="SEFIRAH"></enumeration>
<enumeration value="LAG_BAOMER"></enumeration>
<enumeration value="SHAVOUT"></enumeration>
<enumeration value="17_TAMMUZ"></enumeration>
<enumeration value="TISHA_BAV"></enumeration>
<enumeration value="1_ELUL"></enumeration>
<enumeration value="ROSH_CODESH"></enumeration>
<enumeration value="SHABBAT"></enumeration>
<enumeration value="YOM_HASHOAH"></enumeration>
<enumeration value="YOM_HAZIKARON"></enumeration>
<enumeration value="YOM_HAATZAMAUT"></enumeration>
<enumeration value="YOM_YERUSHALAIM"></enumeration>
</restriction>
</simpleType>
<complexType name="EthiopianOrthodoxHoliday">
<complexContent>
<extension base="tns:Holiday">
<attribute name="type"
type="tns:EthiopianOrthodoxHolidayType">
</attribute>
</extension>
</complexContent>
</complexType>
<simpleType name="EthiopianOrthodoxHolidayType">
<restriction base="string">
<enumeration value="TIMKAT"></enumeration>
<enumeration value="ENKUTATASH"></enumeration>
<enumeration value="MESKEL"></enumeration>
</restriction>
</simpleType>
<complexType name="FixedWeekdayRelativeToFixed">
<complexContent>
<extension base="tns:Holiday">
<sequence>
<element name="day" type="tns:Fixed"></element>
</sequence>
<attribute name="which" type="tns:Which"></attribute>
<attribute name="weekday" type="tns:Weekday"></attribute>
<attribute name="when" type="tns:When"></attribute>
</extension>
</complexContent>
</complexType>
<simpleType name="HolidayCycleType">
<restriction base="string">
<enumeration value="EVERY_YEAR"></enumeration>
<enumeration value="2_YEARS"></enumeration>
<enumeration value="4_YEARS"></enumeration>
<enumeration value="5_YEARS"></enumeration>
<enumeration value="6_YEARS"></enumeration>
<enumeration value="ODD_YEARS"></enumeration>
<enumeration value="EVEN_YEARS"></enumeration>
</restriction>
</simpleType>
<complexType name="RelativeToEasterSunday">
<complexContent>
<extension base="tns:Holiday">
<sequence>
<element name="chronology"
type="tns:ChronologyType">
</element>
<element name="days" type="int"></element>
</sequence>
</extension>
</complexContent>
</complexType>
</schema>