Files
V2GProtocol_CSharp/temp/exificient/data/bugs/ID29/main/calendar.xsd
ChiKyun Kim 747aabe224 add files
2025-09-09 13:59:12 +09:00

445 lines
15 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2010 rel. 3 (x64) (http://www.altova.com) by Michael Edward Rose (OmniMarkets) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:include schemaLocation="types.xsd"/>
<xs:annotation>
<xs:documentation>Abstract base class</xs:documentation>
</xs:annotation>
<xs:complexType name="XsdCalendar" abstract="false">
<xs:annotation>
<xs:appinfo>REFERENCE+CONSTRUCT</xs:appinfo>
<xs:documentation>Holiday calendar</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="XsdDataSchema">
<xs:choice minOccurs="0">
<xs:element name="composite" type="XslCompositeCalendar">
<xs:annotation>
<xs:documentation>Union of intersection of existing holiday calendars</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="dateList" type="XslDateListCalendar">
<xs:annotation>
<xs:documentation>List over hiolidays over date range</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="modified" type="XslModifiedCalendar">
<xs:annotation>
<xs:documentation>Modification of existing calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ruleBased" type="XslRuleBasedCalendar">
<xs:annotation>
<xs:documentation>Algorithmic calendars</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
<xs:attributeGroup ref="XsdCalendarGroup"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:annotation>
<xs:documentation>Derived classes</xs:documentation>
</xs:annotation>
<xs:complexType name="XslModifiedCalendar">
<xs:annotation>
<xs:appinfo>INSERT+CONSTRUCT</xs:appinfo>
<xs:documentation>Add/remove holidays from calendar</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="calendar" type="XsdCalendar">
<xs:annotation>
<xs:documentation>Underlying calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="add" type="XsdDateVector" minOccurs="0">
<xs:annotation>
<xs:documentation>Add new holidays</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="remove" type="XsdDateVector" minOccurs="0">
<xs:annotation>
<xs:documentation>Remove existing holidays</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="XslRuleBasedCalendar">
<xs:annotation>
<xs:appinfo>INSERT+CONSTRUCT</xs:appinfo>
<xs:documentation>Holiday algorithms</xs:documentation>
</xs:annotation>
<xs:choice>
<xs:element name="Argentina" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Argentinian holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Australia" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Australian holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Brazil" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Brazilian holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Canada" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Canadian holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="China" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Chinese holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="CzechRepublic" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Czech holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Denmark" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Danish holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ECB" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>ECB holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="England" type="XslUKCalendar">
<xs:annotation>
<xs:documentation>Great Britian holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Finland" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Finnish holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Germany" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>German holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="HongKong" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>HongKong holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Hungary" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Hungarian holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Iceland" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Icelandic holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="India" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Indian holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Indonesia" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Indonesian holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Italy" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Italian holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Japan" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Japanese holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Mexico" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Mexican holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="NewZealand" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>New Zealand holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Norway" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Norwegian holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Poland" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Polish holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Russia" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Russian holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SaudiArabia" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Saudi holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Singapore" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Singapore holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Slovakia" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Slovakian holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SouthAfrica" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>South African holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SouthKorea" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>South Korean holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Sweden" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Swsdish holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Switzerland" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Swiss holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Taiwan" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Taiwanese holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Turkey" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Turkish holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Ukraine" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Uknainian holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="UnitedStates" type="XslUSCalendar">
<xs:annotation>
<xs:documentation>USA holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="WeekendsOnly" type="XsdPlaceHolder">
<xs:annotation>
<xs:documentation>Just what it says</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:complexType name="XslDateListCalendar">
<xs:annotation>
<xs:appinfo>INSERT+CONSTRUCT</xs:appinfo>
<xs:documentation>List of holidays</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="bound" type="XsdDateBounds">
<xs:annotation>
<xs:documentation>Use first/last holiday if bound not specified </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="holiday" type="xs:date" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>List of holidays</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="weekend" type="XsdDayOfWeek" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Use Saturday and Sunday if not specified </xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="XslCompositeCalendar">
<xs:annotation>
<xs:appinfo>INSERT+CONSTRUCT</xs:appinfo>
<xs:documentation>Holidays in any calendar</xs:documentation>
</xs:annotation>
<xs:choice>
<xs:element name="intersection" type="XslCalendarList">
<xs:annotation>
<xs:documentation>Holidays in ALL of these calendars</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="union" type="XslCalendarList">
<xs:annotation>
<xs:documentation>Holidays in ANY of these calendars</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:annotation>
<xs:documentation>Unit tests</xs:documentation>
</xs:annotation>
<xs:complexType name="XsdRollTest">
<xs:annotation>
<xs:appinfo>INSERT+CALCULATE</xs:appinfo>
<xs:documentation>Rolls dates to nearest business dates</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="XsdCalculationSchema">
<xs:sequence minOccurs="0">
<xs:element name="result" type="XsdDateVectorResult" minOccurs="0">
<xs:annotation>
<xs:documentation>Returns a date list</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="range" type="XsdDateBounds">
<xs:annotation>
<xs:documentation>Date range to be rolled</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="roll" type="XsdRoll">
<xs:annotation>
<xs:documentation>Roll convention. Default: NONE</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="calendar" type="XsdCalendar">
<xs:annotation>
<xs:documentation>Holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="XsdCalendarTest">
<xs:annotation>
<xs:appinfo>INSERT+CALCULATE</xs:appinfo>
<xs:documentation>Returns holidays between two dates</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="XsdCalculationSchema">
<xs:sequence minOccurs="0">
<xs:element name="result" type="XsdDateVectorResult" minOccurs="0">
<xs:annotation>
<xs:documentation>Returns list of dates</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="range" type="XsdDateBounds">
<xs:annotation>
<xs:documentation>Date range (min/max)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="calendar" type="XsdCalendar">
<xs:annotation>
<xs:documentation>The holiday calendar</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="excludeWeekends" type="xs:boolean" default="true" minOccurs="0">
<xs:annotation>
<xs:documentation>Default: true </xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:annotation>
<xs:documentation>Enumerated types</xs:documentation>
</xs:annotation>
<xs:simpleType name="XsdUKCalendarType">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="EXCHANGE"/>
<xs:enumeration value="METALS"/>
<xs:enumeration value="SETTLEMENT"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="XsdUSCalendarType">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="NERC"/>
<xs:enumeration value="NYSE"/>
<xs:enumeration value="GOVERNMENT_BOND"/>
<xs:enumeration value="SETTLEMENT"/>
</xs:restriction>
</xs:simpleType>
<xs:annotation>
<xs:documentation>Helper classes</xs:documentation>
</xs:annotation>
<xs:complexType name="XslCalendarList">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:sequence minOccurs="2" maxOccurs="unbounded"><!-- -->
<xs:element name="calendar" type="XsdCalendar"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="XslUKCalendar">
<xs:attribute name="type" type="XsdUKCalendarType" default="SETTLEMENT">
<xs:annotation>
<xs:documentation>Default: SETTLEMENT</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="XslUSCalendar">
<xs:attribute name="type" type="XsdUSCalendarType" default="SETTLEMENT">
<xs:annotation>
<xs:documentation>Default: SETTLEMENT</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:annotation>
<xs:documentation>Configuration file </xs:documentation>
</xs:annotation>
<xs:complexType name="XsdCalendarConfig">
<xs:sequence>
<xs:element name="calendar" type="XsdCalendar" maxOccurs="unbounded">
<xs:unique name="CalendarName">
<xs:annotation>
<xs:documentation>Country/exchange combination must be unique</xs:documentation>
</xs:annotation>
<xs:selector xpath="."/>
<xs:field xpath="@country"/>
<xs:field xpath="@exchange"/>
</xs:unique>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="xsdCalendarConfig" type="XsdCalendarConfig">
<xs:annotation>
<xs:documentation>List of holiday calendars</xs:documentation>
</xs:annotation>
</xs:element>
<xs:annotation>
<xs:documentation>Attributes</xs:documentation>
</xs:annotation>
<xs:attributeGroup name="XsdCalendarGroup">
<xs:attribute name="country" type="XsdCountry" use="optional">
<xs:annotation>
<xs:documentation>3-letter ISO code </xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="exchange" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Country/exchange pairs must be unique</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>
</xs:schema>