{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "definitions": {
    "Boolean": {
      "title": "Boolean",
      "description": "Boolean has the value space required to support the mathematical concept of binary-valued logic: {true, false}. ",
      "type": "boolean"
    },
    "CalendarWeekWithinMonth": {
      "title": "CalendarWeekWithinMonth",
      "description": "Specification of periods defined by relevant calendar weeks in a month, see ISO8601. Note: Calendar weeks start with Monday. First week is the week containing the first of the month.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "applicableDay": {
          "title": "applicableDay",
          "description": "Applicable day of the week. \"All days of the week\" is expressed by non-inclusion of this attribute.",
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/DayEnumG"
          },
          "minItems": 0,
          "maxItems": 7
        },
        "applicableMonth": {
          "title": "applicableMonth",
          "description": "Applicable month of the year.  \"All months of the year\" is expressed by non-inclusion of this attribute.",
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/MonthOfYearEnumG"
          },
          "minItems": 0,
          "maxItems": 12
        },
        "applicableCalenderWeekWithinMonth": {
          "title": "applicableCalenderWeekWithinMonth",
          "description": "Calender week in month. See ISO8601.  \"All weeks of the month\" is expressed by not using the CalendarWeekOfMonth class. Note: Calendar weeks start with Monday. First week is the week containing the first of the month.",
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/CalendarWeekWithinMonthEnumG"
          },
          "minItems": 1,
          "maxItems": 6
        },
        "comDayWeekMonthExtensionG": {
          "title": "comDayWeekMonthExtensionG",
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "comCalendarWeekWithinMonthExtensionG": {
          "title": "comCalendarWeekWithinMonthExtensionG",
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "applicableCalenderWeekWithinMonth"
      ]
    },
    "CalendarWeekWithinMonthEnum": {
      "title": "CalendarWeekWithinMonthEnum",
      "description": "Calendar week within month (see ISO8601).",
      "type": "string",
      "enum": [
        "firstWeek",
        "secondWeek",
        "thirdWeek",
        "fourthWeek",
        "fifthWeek",
        "sixthWeek",
        "lastWeek",
        "extendedG"
      ]
    },
    "CalendarWeekWithinMonthEnumG": {
      "title": "CalendarWeekWithinMonthEnumG",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_Common.json#/definitions/CalendarWeekWithinMonthEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "ConfidentialityValueEnum": {
      "title": "ConfidentialityValueEnum",
      "description": "Values of confidentiality.",
      "type": "string",
      "enum": [
        "internalUse",
        "noRestriction",
        "extendedG"
      ]
    },
    "ConfidentialityValueEnumG": {
      "title": "ConfidentialityValueEnumG",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_Common.json#/definitions/ConfidentialityValueEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "CountryCode": {
      "title": "CountryCode",
      "description": "EN ISO 3166-1 alpha-2 two-letter country code",
      "$ref": "DATEXII_3_Common.json#/definitions/String",
      "maxLength": 2
    },
    "DataValueG": {
      "title": "DataValueG",
      "description": "Only one of the properties shall be used in an instance.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "comxDurationValue": {
          "$ref": "DATEXII_3_CommonExtension.json#/definitions/DurationValue"
        }
      }
    },
    "DateTime": {
      "title": "DateTime",
      "description": "A combination of integer-valued year, month, day, hour, minute properties, a decimal-valued second property and a time zone property from which it is possible to determine the local time, the equivalent UTC time and the time zone offset from UTC.",
      "type": "string",
      "format": "date-time"
    },
    "DayEnum": {
      "title": "DayEnum",
      "description": "Days of the week.",
      "type": "string",
      "enum": [
        "monday",
        "tuesday",
        "wednesday",
        "thursday",
        "friday",
        "saturday",
        "sunday",
        "extendedG"
      ]
    },
    "DayEnumG": {
      "title": "DayEnumG",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_Common.json#/definitions/DayEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "DayWeekMonth": {
      "title": "DayWeekMonth",
      "description": "Specification of periods defined by the intersection of days or instances of them, calendar weeks and months.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "applicableDay": {
          "title": "applicableDay",
          "description": "Applicable day of the week. \"All days of the week\" is expressed by non-inclusion of this attribute.",
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/DayEnumG"
          },
          "minItems": 0,
          "maxItems": 7
        },
        "applicableMonth": {
          "title": "applicableMonth",
          "description": "Applicable month of the year.  \"All months of the year\" is expressed by non-inclusion of this attribute.",
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/MonthOfYearEnumG"
          },
          "minItems": 0,
          "maxItems": 12
        },
        "comDayWeekMonthExtensionG": {
          "title": "comDayWeekMonthExtensionG",
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      }
    },
    "DayWeekMonthG": {
      "title": "DayWeekMonthG",
      "description": "Only one of the properties shall be used in an instance.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "comDayWeekMonth": {
          "$ref": "DATEXII_3_Common.json#/definitions/DayWeekMonth"
        },
        "comInstanceOfDayWithinMonth": {
          "$ref": "DATEXII_3_Common.json#/definitions/InstanceOfDayWithinMonth"
        },
        "comCalendarWeekWithinMonth": {
          "$ref": "DATEXII_3_Common.json#/definitions/CalendarWeekWithinMonth"
        }
      }
    },
    "Decimal": {
      "title": "Decimal",
      "description": "A decimal number whose value space is the set of numbers that can be obtained by multiplying an integer by a non-positive power of ten, i.e., expressible as i × 10^-n where i and n are integers and n >= 0.",
      "type": "number"
    },
    "ExtensionTypeG": {
      "title": "ExtensionTypeG",
      "type": "object",
      "additionalProperties": true
    },
    "Fault": {
      "title": "Fault",
      "description": "Information about a fault relating to a specific piece of equipment or process.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "faultIdentifier": {
          "title": "faultIdentifier",
          "description": "Unique identifier of the fault.",
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "faultDescription": {
          "title": "faultDescription",
          "description": "Textual description of the fault.",
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "faultCreationTime": {
          "title": "faultCreationTime",
          "description": "The date and time at which the fault was originally recorded/reported.",
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "faultLastUpdateTime": {
          "title": "faultLastUpdateTime",
          "description": "The date and time at which the fault information as specified in this instance was last updated.",
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "faultImpactSeverity": {
          "title": "faultImpactSeverity",
          "description": "The severity of the fault in terms of how it affects the usability of the equipment or the reliability of the data generated by the equipment.",
          "$ref": "DATEXII_3_Common.json#/definitions/FaultSeverityEnumG"
        },
        "faultUrgencyToRectify": {
          "title": "faultUrgencyToRectify",
          "description": "The urgency to rectify the fault.",
          "$ref": "DATEXII_3_Common.json#/definitions/FaultUrgencyEnumG"
        },
        "manufacturerFaultCode": {
          "title": "manufacturerFaultCode",
          "description": "A manufacturer specific code for the fault.",
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "comFaultExtensionG": {
          "title": "comFaultExtensionG",
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "faultLastUpdateTime"
      ]
    },
    "FaultSeverityEnum": {
      "title": "FaultSeverityEnum",
      "description": "Classification of the severity of faults.",
      "type": "string",
      "enum": [
        "low",
        "medium",
        "high",
        "unknown",
        "extendedG"
      ]
    },
    "FaultSeverityEnumG": {
      "title": "FaultSeverityEnumG",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_Common.json#/definitions/FaultSeverityEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "FaultUrgencyEnum": {
      "title": "FaultUrgencyEnum",
      "description": "Classification of the urgency to rectify a fault.",
      "type": "string",
      "enum": [
        "normal",
        "urgent",
        "extremelyUrgent",
        "unknown",
        "extendedG"
      ]
    },
    "FaultUrgencyEnumG": {
      "title": "FaultUrgencyEnumG",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_Common.json#/definitions/FaultUrgencyEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "Float": {
      "title": "Float",
      "description": "A floating point number whose value space consists of the values m × 2^e, where m is an integer whose absolute value is less than 2^24, and e is an integer between -149 and 104, inclusive.",
      "type": "number"
    },
    "HeaderInformation": {
      "title": "HeaderInformation",
      "description": "Management information relating to the data contained within a publication.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "confidentiality": {
          "title": "confidentiality",
          "description": "The extent to which the related information may be circulated, according to the recipient type.",
          "$ref": "DATEXII_3_Common.json#/definitions/ConfidentialityValueEnumG"
        },
        "informationStatus": {
          "title": "informationStatus",
          "description": "The status of the related information (real, test, exercise ....).",
          "$ref": "DATEXII_3_Common.json#/definitions/InformationStatusEnumG"
        },
        "comHeaderInformationExtensionG": {
          "title": "comHeaderInformationExtensionG",
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "informationStatus"
      ]
    },
    "InformationStatusEnum": {
      "title": "InformationStatusEnum",
      "description": "Status of the related information (i.e. real, test or exercise).",
      "type": "string",
      "enum": [
        "real",
        "test",
        "extendedG"
      ]
    },
    "InformationStatusEnumG": {
      "title": "InformationStatusEnumG",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_Common.json#/definitions/InformationStatusEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "InstanceOfDayEnum": {
      "title": "InstanceOfDayEnum",
      "description": "Instances of a day of the week in a month",
      "type": "string",
      "enum": [
        "firstInstance",
        "secondInstance",
        "thirdInstance",
        "fourthInstance",
        "fifthInstance",
        "lastInstance",
        "extendedG"
      ]
    },
    "InstanceOfDayEnumG": {
      "title": "InstanceOfDayEnumG",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_Common.json#/definitions/InstanceOfDayEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "InstanceOfDayWithinMonth": {
      "title": "InstanceOfDayWithinMonth",
      "description": "Specification of periods defined by the instance of a specific weekday within a month (e.g. 3rd Tuesday in May)",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "applicableDay": {
          "title": "applicableDay",
          "description": "Applicable day of the week. \"All days of the week\" is expressed by non-inclusion of this attribute.",
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/DayEnumG"
          },
          "minItems": 0,
          "maxItems": 7
        },
        "applicableMonth": {
          "title": "applicableMonth",
          "description": "Applicable month of the year.  \"All months of the year\" is expressed by non-inclusion of this attribute.",
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/MonthOfYearEnumG"
          },
          "minItems": 0,
          "maxItems": 12
        },
        "applicableInstanceOfDayWithinMonth": {
          "title": "applicableInstanceOfDayWithinMonth",
          "description": "The specified integer instance of the specified applicable day within a month.",
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/InstanceOfDayEnumG"
          },
          "minItems": 1,
          "maxItems": 5
        },
        "comDayWeekMonthExtensionG": {
          "title": "comDayWeekMonthExtensionG",
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "comInstanceOfDayWithinMonthExtensionG": {
          "title": "comInstanceOfDayWithinMonthExtensionG",
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "applicableInstanceOfDayWithinMonth"
      ]
    },
    "InternationalIdentifier": {
      "title": "InternationalIdentifier",
      "description": "An identifier/name whose range is specific to the particular country.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "country": {
          "title": "country",
          "description": "EN ISO 3166-1 two-character country code.",
          "$ref": "DATEXII_3_Common.json#/definitions/CountryCode"
        },
        "nationalIdentifier": {
          "title": "nationalIdentifier",
          "description": "Identifier or name unique within the specified country.",
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "comInternationalIdentifierExtensionG": {
          "title": "comInternationalIdentifierExtensionG",
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "country",
        "nationalIdentifier"
      ]
    },
    "Language": {
      "title": "Language",
      "description": "A language datatype, identifies a specified language by an ISO 639-1 2-alpha code.",
      "type": "string",
      "pattern": "^[a-z]{2}$"
    },
    "MonthOfYearEnum": {
      "title": "MonthOfYearEnum",
      "description": "A list of the months of the year.",
      "type": "string",
      "enum": [
        "january",
        "february",
        "march",
        "april",
        "may",
        "june",
        "july",
        "august",
        "september",
        "october",
        "november",
        "december",
        "extendedG"
      ]
    },
    "MonthOfYearEnumG": {
      "title": "MonthOfYearEnumG",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_Common.json#/definitions/MonthOfYearEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "MultilingualString": {
      "title": "MultilingualString",
      "description": "A multilingual string, whereby the same text may be expressed in more than one language.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "values": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/MultiLingualStringValue"
          }
        }
      }
    },
    "MultiLingualStringValue": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "lang": {
          "type": "string",
          "pattern": "^[a-z]{2}$"
        },
        "value": {
          "type": "string"
        }
      },
      "required": [
        "lang",
        "value"
      ]
    },
    "NamedAreaG": {
      "title": "NamedAreaG",
      "description": "Only one of the properties shall be used in an instance.",
      "type": "object",
      "additionalProperties": false
    },
    "NonNegativeInteger": {
      "title": "NonNegativeInteger",
      "description": "An integer number whose value space is the set {0, 1, 2, ..., 2147483645, 2147483646, 2147483647}.",
      "type": "integer",
      "minimum": 0.0
    },
    "OverallPeriod": {
      "title": "OverallPeriod",
      "description": "A continuous or discontinuous period of validity defined by overall bounding start and end times and the possible intersection of valid periods (potentially recurring) with the complement of exception periods (also potentially recurring).",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "overallStartTime": {
          "title": "overallStartTime",
          "description": "Start of bounding period of validity defined by date and time.",
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "overallEndTime": {
          "title": "overallEndTime",
          "description": "End of bounding period of validity defined by date and time.",
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "validPeriod": {
          "title": "validPeriod",
          "description": "A single time period, a recurring time period or a set of different recurring time periods during which validity is true.",
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/Period"
          },
          "minItems": 0
        },
        "exceptionPeriod": {
          "title": "exceptionPeriod",
          "description": "A single time period, a recurring time period or a set of different recurring time periods during which validity is false.",
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/Period"
          },
          "minItems": 0
        },
        "comOverallPeriodExtensionG": {
          "title": "comOverallPeriodExtensionG",
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "overallStartTime"
      ]
    },
    "PayloadPublicationG": {
      "title": "PayloadPublicationG",
      "description": "Only one of the properties shall be used in an instance.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "versionG": {
          "type": "string",
          "default": "3.5"
        },
        "modelBaseVersionG": {
          "type": "string",
          "default": "3"
        },
        "extensionNameG": {
          "type": "string"
        },
        "extensionVersionG": {
          "type": "string"
        },
        "profileNameG": {
          "type": "string",
          "default": "AFIR Energy InfrastructureG"
        },
        "profileVersionG": {
          "type": "string",
          "default": "01-00-00G"
        },
        "aegiEnergyInfrastructureStatusPublication": {
          "$ref": "DATEXII_3_AfirEnergyInfrastructure.json#/definitions/EnergyInfrastructureStatusPublication"
        }
      },
      "required": [
        "modelBaseVersionG"
      ]
    },
    "Percentage": {
      "title": "Percentage",
      "description": "A ratio expressed as an amount per hundred, such that for example the value 100 represents the case where a quantity is equal to the reference value it is compared with, while the value 50 represents a ratio of one half.",
      "$ref": "DATEXII_3_Common.json#/definitions/Float"
    },
    "Period": {
      "title": "Period",
      "description": "A continuous time period or a set of discontinuous time periods defined by the intersection of a set of criteria all within an overall delimiting interval.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "startOfPeriod": {
          "title": "startOfPeriod",
          "description": "Start of period.",
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "endOfPeriod": {
          "title": "endOfPeriod",
          "description": "End of a period.",
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "periodName": {
          "title": "periodName",
          "description": "The name of the period.",
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "recurringTimePeriodOfDay": {
          "title": "recurringTimePeriodOfDay",
          "description": "A recurring period of a day.",
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/TimePeriodOfDay"
          },
          "minItems": 0
        },
        "recurringDayWeekMonthPeriod": {
          "title": "recurringDayWeekMonthPeriod",
          "description": "A recurring period defined in terms of days of the week, weeks of the month and months of the year. ",
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/DayWeekMonthG"
          },
          "minItems": 0
        },
        "recurringSpecialDay": {
          "title": "recurringSpecialDay",
          "description": "A recurring period in terms of special days.",
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/SpecialDayG"
          },
          "minItems": 0
        },
        "comPeriodExtensionG": {
          "title": "comPeriodExtensionG",
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      }
    },
    "PublicEventTypeEnum": {
      "title": "PublicEventTypeEnum",
      "description": "Types of public events.",
      "type": "string",
      "enum": [
        "agriculturalShow",
        "airShow",
        "artEvent",
        "athleticsMeeting",
        "commercialEvent",
        "culturalEvent",
        "ballGame",
        "baseballGame",
        "basketballGame",
        "beerFestival",
        "bicycleRace",
        "boatRace",
        "boatShow",
        "boxingTournament",
        "bullFight",
        "ceremonialEvent",
        "concert",
        "cricketMatch",
        "exhibition",
        "fair",
        "festival",
        "filmFestival",
        "filmTVMaking",
        "fireworkDisplay",
        "flowerEvent",
        "foodFestival",
        "footballMatch",
        "funfair",
        "gardeningOrFlowerShow",
        "golfTournament",
        "hockeyGame",
        "horseRaceMeeting",
        "internationalSportsMeeting",
        "majorEvent",
        "marathon",
        "market",
        "match",
        "motorShow",
        "motorSportRaceMeeting",
        "openAirConcert",
        "parade",
        "procession",
        "raceMeeting",
        "rugbyMatch",
        "severalMajorEvents",
        "show",
        "showJumping",
        "soundAndLightShow",
        "sportsMeeting",
        "stateOccasion",
        "streetFestival",
        "tennisTournament",
        "theatricalEvent",
        "tournament",
        "tradeFair",
        "waterSportsMeeting",
        "wineFestival",
        "winterSportsMeeting",
        "unknown",
        "other",
        "extendedG"
      ]
    },
    "PublicEventTypeEnumG": {
      "title": "PublicEventTypeEnumG",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_Common.json#/definitions/PublicEventTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "PublicHoliday": {
      "title": "PublicHoliday",
      "description": "Specification of a specific public holiday in case specialDayType is set to 'publicHoliday'.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "intersectWithApplicableDays": {
          "title": "intersectWithApplicableDays",
          "description": "When true, the period is the intersection of applicable days and this special day. When false, the period is the union of applicable days and this special day.",
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "specialDayType": {
          "title": "specialDayType",
          "description": "Specification of a special day, for example schoolDay, publicHoliday, ...",
          "$ref": "DATEXII_3_Common.json#/definitions/SpecialDayTypeEnumG"
        },
        "publicEvent": {
          "title": "publicEvent",
          "description": "Type of public event on this special day.",
          "$ref": "DATEXII_3_Common.json#/definitions/PublicEventTypeEnumG"
        },
        "publicHolidayName": {
          "title": "publicHolidayName",
          "description": "Specification of a specific public holiday by its name.",
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "namedArea": {
          "title": "namedArea",
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/NamedAreaG"
          },
          "minItems": 0
        },
        "comSpecialDayExtensionG": {
          "title": "comSpecialDayExtensionG",
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "comPublicHolidayExtensionG": {
          "title": "comPublicHolidayExtensionG",
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "intersectWithApplicableDays",
        "specialDayType",
        "publicHolidayName"
      ]
    },
    "Reference": {
      "title": "Reference",
      "description": "A reference to an identifiable managed object where the identifier is unique.  It comprises an identifier (e.g. UUID) and a string identifying the class of the referenced object.",
      "type": "object",
      "properties": {
        "idG": {
          "type": "string"
        }
      },
      "required": [
        "idG"
      ]
    },
    "Seconds": {
      "title": "Seconds",
      "description": "Seconds.",
      "$ref": "DATEXII_3_Common.json#/definitions/Float"
    },
    "SpecialDay": {
      "title": "SpecialDay",
      "description": "Specification of a special type of day, possibly also a public holiday. Can be country or region specific.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "intersectWithApplicableDays": {
          "title": "intersectWithApplicableDays",
          "description": "When true, the period is the intersection of applicable days and this special day. When false, the period is the union of applicable days and this special day.",
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "specialDayType": {
          "title": "specialDayType",
          "description": "Specification of a special day, for example schoolDay, publicHoliday, ...",
          "$ref": "DATEXII_3_Common.json#/definitions/SpecialDayTypeEnumG"
        },
        "publicEvent": {
          "title": "publicEvent",
          "description": "Type of public event on this special day.",
          "$ref": "DATEXII_3_Common.json#/definitions/PublicEventTypeEnumG"
        },
        "namedArea": {
          "title": "namedArea",
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/NamedAreaG"
          },
          "minItems": 0
        },
        "comSpecialDayExtensionG": {
          "title": "comSpecialDayExtensionG",
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "intersectWithApplicableDays",
        "specialDayType"
      ]
    },
    "SpecialDayG": {
      "title": "SpecialDayG",
      "description": "Only one of the properties shall be used in an instance.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "comSpecialDay": {
          "$ref": "DATEXII_3_Common.json#/definitions/SpecialDay"
        },
        "comPublicHoliday": {
          "$ref": "DATEXII_3_Common.json#/definitions/PublicHoliday"
        }
      }
    },
    "SpecialDayTypeEnum": {
      "title": "SpecialDayTypeEnum",
      "description": "Collection of special types of days.",
      "type": "string",
      "enum": [
        "dayBeforePublicHoliday",
        "publicHoliday",
        "dayFollowingPublicHoliday",
        "longWeekendDay",
        "inLieuOfPublicHoliday",
        "schoolDay",
        "schoolHolidays",
        "publicEventDay",
        "other",
        "extendedG"
      ]
    },
    "SpecialDayTypeEnumG": {
      "title": "SpecialDayTypeEnumG",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_Common.json#/definitions/SpecialDayTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "String": {
      "title": "String",
      "description": "A character string whose value space is the set of finite-length sequences of characters. Every character has a corresponding Universal Character Set code point (as defined in ISO/IEC 10646), which is an integer.",
      "type": "string",
      "maxLength": 1024
    },
    "Time": {
      "title": "Time",
      "description": "An instant of time that recurs every day. The value space of time is the space of time of day values as defined in § 5.3 of [ISO 8601]. Specifically, it is a set of zero-duration daily time instances.",
      "type": "string",
      "format": "time"
    },
    "TimePeriodOfDay": {
      "title": "TimePeriodOfDay",
      "description": "Specification of a continuous period of time within a 24 hour period.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "startTimeOfPeriod": {
          "title": "startTimeOfPeriod",
          "description": "Start of time period.",
          "$ref": "DATEXII_3_Common.json#/definitions/Time"
        },
        "endTimeOfPeriod": {
          "title": "endTimeOfPeriod",
          "description": "End of time period.",
          "$ref": "DATEXII_3_Common.json#/definitions/Time"
        },
        "comTimePeriodOfDayExtensionG": {
          "title": "comTimePeriodOfDayExtensionG",
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "startTimeOfPeriod",
        "endTimeOfPeriod"
      ]
    },
    "Url": {
      "title": "Url",
      "description": "A Uniform Resource Locator (URL) address comprising a compact string of characters for a resource available on the Internet.",
      "type": "string"
    },
    "VersionedReference": {
      "title": "VersionedReference",
      "description": "A reference to an identifiable version managed object where the combination of the identifier and version is unique. It comprises an identifier (e.g. UUID), a version and a string identifying the class of the referenced object.",
      "type": "object",
      "properties": {
        "idG": {
          "type": "string"
        },
        "versionG": {
          "type": "string"
        }
      },
      "required": [
        "idG"
      ]
    }
  }
}