{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "definitions": {
    "AccessCondition": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "negate": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "active": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "accessConditionType": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/AccessConditionTypeEnumG"
          },
          "minItems": 1
        },
        "otherAccessRestriction": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "legalBasis": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LegalBasis"
        },
        "applicableLocation": {
          "$ref": "DATEXII_3_LocationReferencing.json#/definitions/LocationReferenceG"
        },
        "troConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troAccessConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "accessConditionType"
      ]
    },
    "AccessConditionTypeEnum": {
      "type": "string",
      "enum": [
        "accessOnly",
        "destinationTraffic",
        "loadingAndUnloading",
        "necessaryHospitalAndDoctorConsultations",
        "passengerLoadingAndUnloading",
        "snowChainsCompulsory",
        "socialAndCareSupportServices",
        "sourceAndDestinationTraffic",
        "sourceTraffic",
        "throughTraffic",
        "extendedG"
      ]
    },
    "AccessConditionTypeEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/AccessConditionTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "AccessRestriction": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "accessRestrictionType": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/AccessRestrictionTypeEnumG"
        },
        "troTypeOfRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troAccessRestrictionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "accessRestrictionType"
      ]
    },
    "AccessRestrictionTypeEnum": {
      "type": "string",
      "enum": [
        "laneUsageProhibited",
        "noEntry",
        "noPassingWithoutStopping",
        "restrictedAccess",
        "useOfAudibleWarningDevicesProhibited",
        "extendedG"
      ]
    },
    "AccessRestrictionTypeEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/AccessRestrictionTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "ActivatedRegulation": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "actor": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "issuingAuthority": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "regulationId": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "trafficRegulation": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TrafficRegulationG"
          },
          "minItems": 1
        },
        "troActivatedRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "actor",
        "issuingAuthority",
        "trafficRegulation"
      ]
    },
    "ActivationStatusEnum": {
      "type": "string",
      "enum": [
        "active",
        "beingSetUp",
        "beingShutDown",
        "inactive",
        "scheduled",
        "extendedG"
      ]
    },
    "ActivationStatusEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/ActivationStatusEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "AdHocTrafficRegulation": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "installer": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TrafficRegulationInstallerTypeEnumG"
        },
        "trafficRegulation": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TrafficRegulationG"
          },
          "minItems": 1
        },
        "troAdHocTrafficRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "installer",
        "trafficRegulation"
      ]
    },
    "AdHocTrafficRegulations": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "adHocTrafficRegulation": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/AdHocTrafficRegulation"
          },
          "minItems": 1
        },
        "troAdHocTrafficRegulationsExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "adHocTrafficRegulation"
      ]
    },
    "ADRTunnelCategoryTypeEnum": {
      "type": "string",
      "enum": [
        "categoryA",
        "categoryB",
        "categoryC",
        "categoryD",
        "categoryE",
        "extendedG"
      ]
    },
    "ADRTunnelCategoryTypeEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/ADRTunnelCategoryTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "AdvisorySpeed": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "numericalValue": {
          "$ref": "DATEXII_3_Common.json#/definitions/NonNegativeInteger"
        },
        "unitOfMeasure": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/UnitOfSpeedEnumG"
        },
        "troTypeOfRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troSpeedLimitExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troNumercialSpeedValueExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troAdvisorySpeedExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "numericalValue",
        "unitOfMeasure"
      ]
    },
    "AlternateRoadOrCarriagewayOrLaneLayout": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "roadOrCarriagewayOrLaneLayoutType": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/RoadOrCarriagewayOrLaneLayoutTypeG"
        },
        "roadOrCarriagewayOrLaneStatus": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/RoadOrCarriagewayOrLaneStatusG"
        },
        "temporaryMarkings": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "newLayout": {
          "$ref": "DATEXII_3_LocationReferencing.json#/definitions/NetworkLocationG"
        },
        "speedLimit": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/SpeedLimitG"
        },
        "troTypeOfRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troAlternateRoadOrCarriagewayOrLaneLayoutExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "roadOrCarriagewayOrLaneStatus"
      ]
    },
    "AmbientWarning": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "ambientWarningType": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/AmbientWarningTypeEnumG"
        },
        "troTypeOfRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troWarningExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troAmbientWarningExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "ambientWarningType"
      ]
    },
    "AmbientWarningTypeEnum": {
      "type": "string",
      "enum": [
        "accompaniedHorsesCrossing",
        "airfield",
        "cattle",
        "fallingRocks",
        "insufficientStructureGauge",
        "looseGravel",
        "migratoryToadCrossing",
        "otherDanger",
        "pedestrianCrossing",
        "poorVisibility",
        "quaysideOrRiverBank",
        "riskOfIce",
        "sideWindsLeft",
        "sideWindsRight",
        "wildAnimalsCrossing",
        "extendedG"
      ]
    },
    "AmbientWarningTypeEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/AmbientWarningTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "AmountOfMoney": {
      "$ref": "DATEXII_3_Common.json#/definitions/Decimal"
    },
    "CompulsoryMinSpeed": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "numericalValue": {
          "$ref": "DATEXII_3_Common.json#/definitions/NonNegativeInteger"
        },
        "unitOfMeasure": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/UnitOfSpeedEnumG"
        },
        "troTypeOfRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troSpeedLimitExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troNumercialSpeedValueExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troCompulsoryMinSpeedExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "numericalValue",
        "unitOfMeasure"
      ]
    },
    "ConditionG": {
      "description": "Only one of the properties shall be used in an instance.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "troConditionSet": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/ConditionSet"
        },
        "czPeriodCondition": {
          "$ref": "DATEXII_3_ControlledZone.json#/definitions/PeriodCondition"
        },
        "troVehicleCondition": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/VehicleCondition"
        },
        "czTariffCondition": {
          "$ref": "DATEXII_3_ControlledZone.json#/definitions/TariffCondition"
        },
        "troOccupantCondition": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/OccupantCondition"
        },
        "troNonVehicularRoadUserCondition": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/NonVehicularRoadUserCondition"
        },
        "troAccessCondition": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/AccessCondition"
        },
        "czNonCodableCondition": {
          "$ref": "DATEXII_3_ControlledZone.json#/definitions/NonCodableCondition"
        },
        "troDriverCondition": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/DriverCondition"
        },
        "troWeatherCondition": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/WeatherCondition"
        },
        "troStandingOrParkingCondition": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/StandingOrParkingCondition"
        },
        "troConditionReference": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/ConditionReference"
        },
        "troTimeValidityCondition": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TimeValidityCondition"
        },
        "troLocationCondition": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LocationCondition"
        },
        "czRetrofittingCondition": {
          "$ref": "DATEXII_3_ControlledZone.json#/definitions/RetrofittingCondition"
        },
        "troTunnelCategoryCondition": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TunnelCategoryCondition"
        },
        "troRoadCondition": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/RoadCondition"
        },
        "troRequiredPermitCondition": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/RequiredPermitCondition"
        }
      }
    },
    "ConditionOperator": {
      "type": "string",
      "enum": [
        "and",
        "or",
        "xor",
        "extendedG"
      ]
    },
    "ConditionOperatorG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/ConditionOperator"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "ConditionReference": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "negate": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "active": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "reference": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/PredefinedConditionVersionedReferenceG"
        },
        "legalBasis": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LegalBasis"
        },
        "troConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troConditionReferenceExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "reference"
      ]
    },
    "ConditionSet": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "negate": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "active": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "operator": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/ConditionOperatorG"
        },
        "legalBasis": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LegalBasis"
        },
        "conditions": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/ConditionG"
          },
          "minItems": 1
        },
        "troConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troConditionSetExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "operator",
        "conditions"
      ]
    },
    "DirectionRestriction": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "directionToBeFollowed": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/DirectionRestrictionTypeEnumG"
        },
        "respectBicycle": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "respectPedestrian": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "respectMotorisedPersonalTransportDevices": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "troTypeOfRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troDirectionRestrictionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "directionToBeFollowed"
      ]
    },
    "DirectionRestrictionTypeEnum": {
      "type": "string",
      "enum": [
        "aheadOnly",
        "keepLeft",
        "keepRight",
        "noLeftTurn",
        "noReversing",
        "noRightTurn",
        "noThroughRoad",
        "noUTurn",
        "oneWayTraffic",
        "passEitherSide",
        "roundabout",
        "straightAheadOrTurnLeft",
        "straightAheadOrTurnRight",
        "turnLeft",
        "turnLeftAhead",
        "turnLeftOrTurnRight",
        "turnRight",
        "turnRightAhead",
        "extendedG"
      ]
    },
    "DirectionRestrictionTypeEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/DirectionRestrictionTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "DriverCharacteristicsTypeEnum": {
      "type": "string",
      "enum": [
        "disabledWithPermit",
        "hotelGuest",
        "learnerDriver",
        "localResident",
        "extendedG"
      ]
    },
    "DriverCharacteristicsTypeEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/DriverCharacteristicsTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "DriverCondition": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "negate": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "active": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "driverCharacteristicsType": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/DriverCharacteristicsTypeEnumG"
        },
        "licenceCharacteristics": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LicenceCharacteristicsEnumG"
        },
        "legalBasis": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LegalBasis"
        },
        "ageOfDriver": {
          "$ref": "DATEXII_3_CommonExtension.json#/definitions/NonNegativeIntegerComparison"
        },
        "timeDriversLicenceHeld": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TimeDriversLicenceHeld"
        },
        "troConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troDriverConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      }
    },
    "Duration": {
      "type": "string",
      "format": "duration"
    },
    "DynamicTrafficManagement": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "issuingAuthority": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "trafficRegulation": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TrafficRegulationG"
          },
          "minItems": 0
        },
        "troDynamicTrafficRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troDynamicTrafficManagementExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      }
    },
    "DynamicTrafficRegulationG": {
      "description": "Only one of the properties shall be used in an instance.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "troDynamicTrafficManagement": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/DynamicTrafficManagement"
        }
      }
    },
    "DynamicTrafficRegulations": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "dynamicTrafficRegulation": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/DynamicTrafficRegulationG"
          },
          "minItems": 1
        },
        "troDynamicTrafficRegulationsExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "dynamicTrafficRegulation"
      ]
    },
    "GddPictogramCategoryCode": {
      "type": "integer",
      "exclusiveMinimum": 0.0
    },
    "GddPictogramIdentification": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "country": {
          "$ref": "DATEXII_3_Common.json#/definitions/CountryCode"
        },
        "serviceCategory": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/GddServiceCategoryEnumG"
        },
        "pictogramCategoryCode": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/GddPictogramCategoryCode"
        },
        "troGddPictogramIdentificationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "country",
        "pictogramCategoryCode",
        "serviceCategory"
      ]
    },
    "GddServiceCategoryEnum": {
      "type": "string",
      "enum": [
        "ambientConditions",
        "dangerWarning",
        "informative",
        "publicFacilities",
        "regulatory",
        "roadConditions",
        "extendedG"
      ]
    },
    "GddServiceCategoryEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/GddServiceCategoryEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "HardShoulderRunningRestriction": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "clearHardShoulder": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "hardShoulderRunningActive": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "troTypeOfRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troHardShoulderRunningRestrictionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      }
    },
    "LegalBasis": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "name": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "version": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "date": {
          "$ref": "DATEXII_3_Common.json#/definitions/Date"
        },
        "troLegalBasisExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "name"
      ]
    },
    "LicenceCharacteristicsEnum": {
      "type": "string",
      "enum": [
        "permanent",
        "provisional",
        "extendedG"
      ]
    },
    "LicenceCharacteristicsEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LicenceCharacteristicsEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "LocationCondition": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "negate": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "active": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "legalBasis": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LegalBasis"
        },
        "implementedLocation": {
          "$ref": "DATEXII_3_LocationReferencing.json#/definitions/LocationReferenceG"
        },
        "locationByOrder": {
          "$ref": "DATEXII_3_LocationReferencing.json#/definitions/LocationReferenceG"
        },
        "trafficImpactLocation": {
          "$ref": "DATEXII_3_LocationReferencing.json#/definitions/LocationReferenceG"
        },
        "troConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troLocationConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      }
    },
    "MainSign": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "pictureOfRoadSign": {
          "$ref": "DATEXII_3_Common.json#/definitions/Base64Binary"
        },
        "urlToRoadSign": {
          "$ref": "DATEXII_3_Common.json#/definitions/Url"
        },
        "nationalSignID": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "description": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "gddPictogramIdentification": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/GddPictogramIdentification"
        },
        "locationOfSign": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_LocationReferencing.json#/definitions/PointLocationG"
          },
          "minItems": 0
        },
        "troRoadSignExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troMainSignExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      }
    },
    "MandatoryRoadOrCarriagewayOrLaneUsage": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "exclusive": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "respectMandatoryTraffic": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "segregatedLanes": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "contraflowLane": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "otherObligation": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "troTypeOfRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troMandatoryRoadOrCarriagewayOrLaneUsageExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      }
    },
    "MaxSpeedLimit": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "numericalValue": {
          "$ref": "DATEXII_3_Common.json#/definitions/NonNegativeInteger"
        },
        "unitOfMeasure": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/UnitOfSpeedEnumG"
        },
        "troTypeOfRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troSpeedLimitExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troNumercialSpeedValueExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troMaxSpeedLimitExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "numericalValue",
        "unitOfMeasure"
      ]
    },
    "MinimumDistanceRestriction": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_Common.json#/definitions/MetresAsFloat"
        },
        "troTypeOfRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troMinimumDistanceRestrictionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "value"
      ]
    },
    "NonVehicularRoadUserCondition": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "negate": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "active": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "nonVehicularRoadUser": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/NonVehicularRoadUserTypeEnumG"
        },
        "legalBasis": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LegalBasis"
        },
        "troConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troNonVehicularRoadUserConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "nonVehicularRoadUser"
      ]
    },
    "NonVehicularRoadUserTypeEnum": {
      "type": "string",
      "enum": [
        "cattle",
        "cattleDrive",
        "equestrian",
        "pedestrians",
        "riddenOrAccompaniedHorses",
        "extendedG"
      ]
    },
    "NonVehicularRoadUserTypeEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/NonVehicularRoadUserTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "NumercialSpeedValueG": {
      "description": "Only one of the properties shall be used in an instance.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "troMaxSpeedLimit": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/MaxSpeedLimit"
        },
        "troAdvisorySpeed": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/AdvisorySpeed"
        },
        "troCompulsoryMinSpeed": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/CompulsoryMinSpeed"
        }
      }
    },
    "OccupantCondition": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "negate": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "active": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "legalBasis": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LegalBasis"
        },
        "numberOfOccupants": {
          "$ref": "DATEXII_3_CommonExtension.json#/definitions/NonNegativeIntegerComparison"
        },
        "troConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troOccupantConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "numberOfOccupants"
      ]
    },
    "PermitInformation": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "idG": {
          "type": "string"
        },
        "versionG": {
          "type": "string"
        },
        "applicationRequired": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "description": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "locationRelatedPermit": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "maxDurationOfPermit": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/Duration"
        },
        "whereToApplyForPermit": {
          "$ref": "DATEXII_3_Common.json#/definitions/Url"
        },
        "whereToCallForPermit": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "permitOwnerType": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/PermitOwnerTypeEnumG"
        },
        "urlForFurtherInformation": {
          "$ref": "DATEXII_3_Common.json#/definitions/Url"
        },
        "howToObtainPermit": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "permitType": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/PermitTypeEnumG"
        },
        "disabledParkingPermit": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "minimumTimeToNextEntry": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/Duration"
        },
        "permitSubjectToFee": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/PermitSubjectToFee"
        },
        "locationOfRegistrationMachine": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_LocationReferencing.json#/definitions/PointLocationG"
          },
          "minItems": 0
        },
        "troPermitInformationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "idG",
        "versionG",
        "permitType"
      ]
    },
    "PermitInformationVersionedReferenceG": {
      "type": "object",
      "properties": {
        "targetClass": {
          "type": "string",
          "default": "PermitInformation"
        },
        "idG": {
          "type": "string"
        },
        "versionG": {
          "type": "string"
        }
      },
      "required": [
        "targetClass",
        "idG"
      ]
    },
    "PermitOwnerTypeEnum": {
      "type": "string",
      "enum": [
        "vehicle",
        "vehicleOccupant",
        "vehicleOwner",
        "extendedG"
      ]
    },
    "PermitOwnerTypeEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/PermitOwnerTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "PermitSubjectToFee": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "amountDue": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/AmountOfMoney"
        },
        "maximumAccessDuration": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/Duration"
        },
        "paymentInformation": {
          "$ref": "DATEXII_3_Common.json#/definitions/Url"
        },
        "troPermitSubjectToFeeExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      }
    },
    "PermitTypeEnum": {
      "type": "string",
      "enum": [
        "electronic",
        "other",
        "paper",
        "sticker",
        "extendedG"
      ]
    },
    "PermitTypeEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/PermitTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "PredefinedCondition": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "idG": {
          "type": "string"
        },
        "versionG": {
          "type": "string"
        },
        "condition": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/ConditionG"
        },
        "troPredefinedConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "idG",
        "versionG",
        "condition"
      ]
    },
    "PredefinedConditionPublication": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "idG": {
          "type": "string"
        },
        "lang": {
          "$ref": "DATEXII_3_Common.json#/definitions/Language"
        },
        "feedDescription": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "feedType": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "publicationTime": {
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "publicationCreator": {
          "$ref": "DATEXII_3_Common.json#/definitions/InternationalIdentifier"
        },
        "predefinedCondition": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/PredefinedCondition"
          },
          "minItems": 1
        },
        "comPayloadPublicationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troPredefinedConditionPublicationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "idG",
        "lang",
        "publicationTime",
        "publicationCreator",
        "predefinedCondition"
      ]
    },
    "PredefinedConditionPublicationVersionedReferenceG": {
      "type": "object",
      "properties": {
        "targetClass": {
          "type": "string",
          "default": "PredefinedConditionPublication"
        },
        "idG": {
          "type": "string"
        },
        "versionG": {
          "type": "string"
        }
      },
      "required": [
        "targetClass",
        "idG"
      ]
    },
    "PredefinedConditionVersionedReferenceG": {
      "type": "object",
      "properties": {
        "targetClass": {
          "type": "string",
          "default": "PredefinedCondition"
        },
        "idG": {
          "type": "string"
        },
        "versionG": {
          "type": "string"
        }
      },
      "required": [
        "targetClass",
        "idG"
      ]
    },
    "PriorityRule": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "priorityRuleType": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/PriorityRuleTypeEnumG"
          },
          "minItems": 1
        },
        "respectBicycle": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "giveWayTo": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/VehicleCharacteristics"
          },
          "minItems": 0
        },
        "troTypeOfRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troPriorityRuleExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "priorityRuleType"
      ]
    },
    "PriorityRuleTypeEnum": {
      "type": "string",
      "enum": [
        "giveWay",
        "giveWayToOncomingVehicles",
        "giveWayToRail",
        "giveWayToSchoolCrossingPatrol",
        "giveWayToTram",
        "priorityAtNextJunction",
        "priorityOverOncomingVehicles",
        "priorityRoad",
        "stop",
        "extendedG"
      ]
    },
    "PriorityRuleTypeEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/PriorityRuleTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "ProhibitionOfOvertaking": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "doNotOvertake": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/VehicleCharacteristics"
          },
          "minItems": 0
        },
        "permissionToOvertake": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_Common.json#/definitions/VehicleCharacteristics"
          },
          "minItems": 0
        },
        "troTypeOfRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troProhibitionOfOvertakingExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      }
    },
    "ReasonForRegulationEnum": {
      "type": "string",
      "enum": [
        "other",
        "protectionOfNoiseAndEmissions",
        "protectionOfRoad",
        "protectionOfWaters",
        "publicSafety",
        "researchAndTest",
        "roadworks",
        "trafficOrder",
        "trafficSafety",
        "extendedG"
      ]
    },
    "ReasonForRegulationEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/ReasonForRegulationEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "RequiredPermitCondition": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "negate": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "active": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "identifier": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "issuingAuthority": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "permitCharacteristics": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/PermitInformationVersionedReferenceG"
        },
        "permitType": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/PermitTypeEnumG"
          },
          "minItems": 1
        },
        "legalBasis": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LegalBasis"
        },
        "troConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troRequiredPermitConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "permitType"
      ]
    },
    "Rerouting": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "troTypeOfRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troReroutingExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      }
    },
    "RoadCondition": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "negate": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "active": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "roadType": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/RoadTypeEnumG"
        },
        "legalBasis": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LegalBasis"
        },
        "troConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troRoadConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "roadType"
      ]
    },
    "RoadOrCarriagewayOrLaneLayoutType": {
      "type": "string",
      "enum": [
        "carriageway",
        "lane",
        "road",
        "extendedG"
      ]
    },
    "RoadOrCarriagewayOrLaneLayoutTypeG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/RoadOrCarriagewayOrLaneLayoutType"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "RoadOrCarriagewayOrLaneStatus": {
      "type": "string",
      "enum": [
        "closed",
        "deviatedToHardShoulder",
        "deviatedToLeft",
        "deviatedToOtherCarriageway",
        "deviatedToRight",
        "mergedToLeft",
        "mergedToRight",
        "open",
        "extendedG"
      ]
    },
    "RoadOrCarriagewayOrLaneStatusG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/RoadOrCarriagewayOrLaneStatus"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "RoadSignG": {
      "description": "Only one of the properties shall be used in an instance.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "troSupplementaryPanel": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/SupplementaryPanel"
        },
        "troMainSign": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/MainSign"
        }
      }
    },
    "RoadTypeEnum": {
      "type": "string",
      "enum": [
        "expressRoad",
        "insideBuiltUpAreas",
        "motorway",
        "outsideBuiltUpAreas",
        "extendedG"
      ]
    },
    "RoadTypeEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/RoadTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "RoadWarning": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "roadWarningType": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/RoadWarningTypeEnumG"
        },
        "troTypeOfRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troWarningExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troRoadWarningExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "roadWarningType"
      ]
    },
    "RoadWarningTypeEnum": {
      "type": "string",
      "enum": [
        "accident",
        "bendToLeft",
        "bendToRight",
        "crossroadsWithPriorityFromRight",
        "doubleBendFirstToLeft",
        "doubleBendFirstToRight",
        "lateralStep",
        "lightSignals",
        "obstacleOnTheRoad",
        "roadDip",
        "roadHump",
        "roadNarrowsBothSides",
        "roadNarrowsLeft",
        "roadNarrowsRight",
        "roadWorks",
        "roundaboutAntiClockwise",
        "roundaboutClockwise",
        "slipperyRoad",
        "swingBridge",
        "unevenRoad",
        "extendedG"
      ]
    },
    "RoadWarningTypeEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/RoadWarningTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "RushHourLaneRestriction": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "clearRushHourLane": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "rushHourLaneOpen": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "troTypeOfRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troRushHourLaneRestrictionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      }
    },
    "SpeedLimitG": {
      "description": "Only one of the properties shall be used in an instance.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "troWalkingSpeed": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/WalkingSpeed"
        },
        "troMaxSpeedLimit": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/MaxSpeedLimit"
        },
        "troAdvisorySpeed": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/AdvisorySpeed"
        },
        "troCompulsoryMinSpeed": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/CompulsoryMinSpeed"
        }
      }
    },
    "StandingOrParkingCondition": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "negate": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "active": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "standingOrParkingConditionType": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/StandingOrParkingConditionTypeEnumG"
        },
        "legalBasis": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LegalBasis"
        },
        "troConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troStandingOrParkingConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "standingOrParkingConditionType"
      ]
    },
    "StandingOrParkingConditionTypeEnum": {
      "type": "string",
      "enum": [
        "electricVehicleDuringCharging",
        "footwayAlso",
        "footwayOnly",
        "gettingInAndOutOfAVehicle",
        "kerbsideAlso",
        "kerbsideOnly",
        "loadingAndUnloading",
        "vergeAlso",
        "vergeOnly",
        "extendedG"
      ]
    },
    "StandingOrParkingConditionTypeEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/StandingOrParkingConditionTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "StandingOrParkingControl": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "standingOrParkingControlType": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/StandingOrParkingControlTypeEnumG"
        },
        "permittedStandingTime": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/Duration"
        },
        "permittedParkingTime": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/Duration"
        },
        "paidParking": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "troTypeOfRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troStandingOrParkingControlExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "standingOrParkingControlType"
      ]
    },
    "StandingOrParkingControlTypeEnum": {
      "type": "string",
      "enum": [
        "parkingOutsideDesignatedParkingSpacesProhibited",
        "parkingPermitted",
        "parkingProhibited",
        "standingAndParkingProhibited",
        "extendedG"
      ]
    },
    "StandingOrParkingControlTypeEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/StandingOrParkingControlTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "SteepHill": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "roadGradientValue": {
          "$ref": "DATEXII_3_Common.json#/definitions/Percentage"
        },
        "steepHillDirectionType": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/SteepHillDirectionTypeEnumG"
        },
        "troTypeOfRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troWarningExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troSteepHillExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "roadGradientValue",
        "steepHillDirectionType"
      ]
    },
    "SteepHillDirectionTypeEnum": {
      "type": "string",
      "enum": [
        "downwards",
        "upwards",
        "extendedG"
      ]
    },
    "SteepHillDirectionTypeEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/SteepHillDirectionTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "SupplementaryPanel": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "pictureOfRoadSign": {
          "$ref": "DATEXII_3_Common.json#/definitions/Base64Binary"
        },
        "urlToRoadSign": {
          "$ref": "DATEXII_3_Common.json#/definitions/Url"
        },
        "nationalSignID": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "description": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "gddPictogramIdentification": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/GddPictogramIdentification"
        },
        "locationOfSign": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_LocationReferencing.json#/definitions/PointLocationG"
          },
          "minItems": 0
        },
        "troRoadSignExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troSupplementaryPanelExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      }
    },
    "TemporaryTrafficRegulationOrder": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "idG": {
          "type": "string"
        },
        "versionG": {
          "type": "string"
        },
        "description": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "issuingAuthority": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "reason": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/ReasonForRegulationEnumG"
          },
          "minItems": 0
        },
        "regulationId": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "status": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TrafficRegulationOrderStatusEnumG"
        },
        "overruledTrafficRegulationOrder": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TrafficRegulationOrderVersionedReferenceG"
          },
          "minItems": 0
        },
        "implementedValidity": {
          "$ref": "DATEXII_3_Common.json#/definitions/Validity"
        },
        "validityByOrder": {
          "$ref": "DATEXII_3_Common.json#/definitions/Validity"
        },
        "implementedLocation": {
          "$ref": "DATEXII_3_LocationReferencing.json#/definitions/LocationReferenceG"
        },
        "locationByOrder": {
          "$ref": "DATEXII_3_LocationReferencing.json#/definitions/LocationReferenceG"
        },
        "trafficRegulation": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TrafficRegulationG"
          },
          "minItems": 1
        },
        "legalBasis": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LegalBasis"
        },
        "troTrafficRegulationOrderExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troTemporaryTrafficRegulationOrderExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "idG",
        "versionG",
        "issuingAuthority",
        "regulationId",
        "status",
        "trafficRegulation"
      ]
    },
    "TimeDriversLicenceHeld": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/Duration"
        },
        "comparisonOperator": {
          "$ref": "DATEXII_3_Common.json#/definitions/ComparisonOperatorEnumG"
        },
        "troTimeDriversLicenceHeldExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "comparisonOperator",
        "value"
      ]
    },
    "TimeValidityCondition": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "negate": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "active": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "legalBasis": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LegalBasis"
        },
        "implementedValidity": {
          "$ref": "DATEXII_3_Common.json#/definitions/Validity"
        },
        "validityByOrder": {
          "$ref": "DATEXII_3_Common.json#/definitions/Validity"
        },
        "troConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troTimeValidityConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      }
    },
    "TrafficAhead": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "trafficAheadType": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TrafficAheadTypeEnumG"
        },
        "troTypeOfRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troWarningExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troTrafficAheadExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "trafficAheadType"
      ]
    },
    "TrafficAheadTypeEnum": {
      "type": "string",
      "enum": [
        "busCrossing",
        "children",
        "cycleRoute",
        "levelCrossing",
        "levelCrossingWithGate",
        "pedestrianCrossing",
        "ridingPath",
        "trafficQueues",
        "tramsCrossingAhead",
        "twoWayTraffic",
        "extendedG"
      ]
    },
    "TrafficAheadTypeEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TrafficAheadTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "TrafficRegulation": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "idG": {
          "type": "string"
        },
        "versionG": {
          "type": "string"
        },
        "status": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/ActivationStatusEnumG"
        },
        "roadSign": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/RoadSignG"
          },
          "minItems": 0
        },
        "typeOfRegulation": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TypeOfRegulationG"
          },
          "minItems": 0
        },
        "condition": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/ConditionG"
        },
        "permitInformation": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/PermitInformation"
          },
          "minItems": 0
        },
        "troTrafficRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "idG",
        "versionG"
      ]
    },
    "TrafficRegulationG": {
      "description": "Only one of the properties shall be used in an instance.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "troTrafficRegulation": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TrafficRegulation"
        },
        "czControlledZoneRegulation": {
          "$ref": "DATEXII_3_ControlledZone.json#/definitions/ControlledZoneRegulation"
        }
      }
    },
    "TrafficRegulationInstallerTypeEnum": {
      "type": "string",
      "enum": [
        "fireBrigade",
        "police",
        "publicWorkOrUtilityCompanies",
        "roadOperator",
        "extendedG"
      ]
    },
    "TrafficRegulationInstallerTypeEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TrafficRegulationInstallerTypeEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "TrafficRegulationOrder": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "idG": {
          "type": "string"
        },
        "versionG": {
          "type": "string"
        },
        "description": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "issuingAuthority": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "reason": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/ReasonForRegulationEnumG"
          },
          "minItems": 0
        },
        "regulationId": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "status": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TrafficRegulationOrderStatusEnumG"
        },
        "implementedValidity": {
          "$ref": "DATEXII_3_Common.json#/definitions/Validity"
        },
        "validityByOrder": {
          "$ref": "DATEXII_3_Common.json#/definitions/Validity"
        },
        "implementedLocation": {
          "$ref": "DATEXII_3_LocationReferencing.json#/definitions/LocationReferenceG"
        },
        "locationByOrder": {
          "$ref": "DATEXII_3_LocationReferencing.json#/definitions/LocationReferenceG"
        },
        "trafficRegulation": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TrafficRegulationG"
          },
          "minItems": 1
        },
        "legalBasis": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LegalBasis"
        },
        "troTrafficRegulationOrderExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "idG",
        "versionG",
        "issuingAuthority",
        "regulationId",
        "status",
        "trafficRegulation"
      ]
    },
    "TrafficRegulationOrderG": {
      "description": "Only one of the properties shall be used in an instance.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "troTrafficRegulationOrder": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TrafficRegulationOrder"
        },
        "troTemporaryTrafficRegulationOrder": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TemporaryTrafficRegulationOrder"
        }
      }
    },
    "TrafficRegulationOrderStatusEnum": {
      "type": "string",
      "enum": [
        "madeAndImplemented",
        "madeAndPartiallyImplemented",
        "madeButNotImplemented",
        "partiallyWithdrawn",
        "planned",
        "withdrawn",
        "extendedG"
      ]
    },
    "TrafficRegulationOrderStatusEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TrafficRegulationOrderStatusEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "TrafficRegulationOrderVersionedReferenceG": {
      "type": "object",
      "properties": {
        "targetClass": {
          "type": "string",
          "default": "TrafficRegulationOrder"
        },
        "idG": {
          "type": "string"
        },
        "versionG": {
          "type": "string"
        }
      },
      "required": [
        "targetClass",
        "idG"
      ]
    },
    "TrafficRegulationPublication": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "idG": {
          "type": "string"
        },
        "lang": {
          "$ref": "DATEXII_3_Common.json#/definitions/Language"
        },
        "feedDescription": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "feedType": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "publicationTime": {
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "predefinedConditionPublicationReference": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/PredefinedConditionPublicationVersionedReferenceG"
          },
          "minItems": 0
        },
        "publicationCreator": {
          "$ref": "DATEXII_3_Common.json#/definitions/InternationalIdentifier"
        },
        "trafficRegulationsFromCompetentAuthorities": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TrafficRegulationsFromCompetentAuthorities"
        },
        "trafficRegulationsByAuthorisedActors": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TrafficRegulationsByAuthorisedActors"
        },
        "adHocTrafficRegulations": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/AdHocTrafficRegulations"
        },
        "dynamicTrafficRegulations": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/DynamicTrafficRegulations"
        },
        "trafficRegulationsWithoutTrafficRegulationOrder": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TrafficRegulationsWithoutTrafficRegulationOrder"
        },
        "comPayloadPublicationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troTrafficRegulationPublicationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "idG",
        "lang",
        "publicationTime",
        "publicationCreator"
      ]
    },
    "TrafficRegulationsByAuthorisedActors": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "activatedRegulation": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/ActivatedRegulation"
          },
          "minItems": 1
        },
        "troTrafficRegulationsByAuthorisedActorsExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "activatedRegulation"
      ]
    },
    "TrafficRegulationsFromCompetentAuthorities": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "trafficRegulationOrder": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TrafficRegulationOrderG"
          },
          "minItems": 1
        },
        "troTrafficRegulationsFromCompetentAuthoritiesExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "trafficRegulationOrder"
      ]
    },
    "TrafficRegulationsWithoutTrafficRegulationOrder": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "trafficRegulation": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TrafficRegulationG"
          },
          "minItems": 1
        },
        "troTrafficRegulationsWithoutTrafficRegulationOrderExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "trafficRegulation"
      ]
    },
    "TunnelCategoryCondition": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "negate": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "active": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "tunnelCategoryType": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/ADRTunnelCategoryTypeEnumG"
        },
        "legalBasis": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LegalBasis"
        },
        "troConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troTunnelCategoryConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "tunnelCategoryType"
      ]
    },
    "TypeOfRegulationG": {
      "description": "Only one of the properties shall be used in an instance.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "troProhibitionOfOvertaking": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/ProhibitionOfOvertaking"
        },
        "troAlternateRoadOrCarriagewayOrLaneLayout": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/AlternateRoadOrCarriagewayOrLaneLayout"
        },
        "troMinimumDistanceRestriction": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/MinimumDistanceRestriction"
        },
        "troAccessRestriction": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/AccessRestriction"
        },
        "troStandingOrParkingControl": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/StandingOrParkingControl"
        },
        "troDirectionRestriction": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/DirectionRestriction"
        },
        "troWalkingSpeed": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/WalkingSpeed"
        },
        "troMaxSpeedLimit": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/MaxSpeedLimit"
        },
        "troAdvisorySpeed": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/AdvisorySpeed"
        },
        "troCompulsoryMinSpeed": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/CompulsoryMinSpeed"
        },
        "troMandatoryRoadOrCarriagewayOrLaneUsage": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/MandatoryRoadOrCarriagewayOrLaneUsage"
        },
        "troRerouting": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/Rerouting"
        },
        "troRoadWarning": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/RoadWarning"
        },
        "troSteepHill": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/SteepHill"
        },
        "troAmbientWarning": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/AmbientWarning"
        },
        "troTrafficAhead": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TrafficAhead"
        },
        "troPriorityRule": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/PriorityRule"
        },
        "troHardShoulderRunningRestriction": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/HardShoulderRunningRestriction"
        },
        "troRushHourLaneRestriction": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/RushHourLaneRestriction"
        }
      }
    },
    "UnitOfSpeedEnum": {
      "type": "string",
      "enum": [
        "kilometresPerHour",
        "milesPerHour",
        "extendedG"
      ]
    },
    "UnitOfSpeedEnumG": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "value": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/UnitOfSpeedEnum"
        },
        "extendedValueG": {
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "VehicleCondition": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "negate": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "active": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "legalBasis": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LegalBasis"
        },
        "vehicleCharacteristics": {
          "$ref": "DATEXII_3_Common.json#/definitions/VehicleCharacteristics"
        },
        "troConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troVehicleConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "vehicleCharacteristics"
      ]
    },
    "WalkingSpeed": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "troTypeOfRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troSpeedLimitExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troWalkingSpeedExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      }
    },
    "WarningG": {
      "description": "Only one of the properties shall be used in an instance.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "troRoadWarning": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/RoadWarning"
        },
        "troSteepHill": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/SteepHill"
        },
        "troAmbientWarning": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/AmbientWarning"
        },
        "troTrafficAhead": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/TrafficAhead"
        }
      }
    },
    "WarningPublication": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "idG": {
          "type": "string"
        },
        "lang": {
          "$ref": "DATEXII_3_Common.json#/definitions/Language"
        },
        "feedDescription": {
          "$ref": "DATEXII_3_Common.json#/definitions/MultilingualString"
        },
        "feedType": {
          "$ref": "DATEXII_3_Common.json#/definitions/String"
        },
        "publicationTime": {
          "$ref": "DATEXII_3_Common.json#/definitions/DateTime"
        },
        "publicationCreator": {
          "$ref": "DATEXII_3_Common.json#/definitions/InternationalIdentifier"
        },
        "warningWithoutRegulation": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/WarningWithoutRegulation"
          },
          "minItems": 1
        },
        "comPayloadPublicationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troWarningPublicationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "idG",
        "lang",
        "publicationTime",
        "publicationCreator",
        "warningWithoutRegulation"
      ]
    },
    "WarningWithoutRegulation": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "typeOfWarningWithoutRegulation": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/WarningG"
          },
          "minItems": 1
        },
        "condition": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/ConditionG"
        },
        "roadSign": {
          "type": "array",
          "items": {
            "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/RoadSignG"
          },
          "minItems": 0
        },
        "troWarningWithoutRegulationExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "typeOfWarningWithoutRegulation"
      ]
    },
    "WeatherCondition": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "negate": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "active": {
          "$ref": "DATEXII_3_Common.json#/definitions/Boolean"
        },
        "weatherConditionType": {
          "$ref": "DATEXII_3_Common.json#/definitions/WeatherRelatedRoadConditionTypeEnumG"
        },
        "legalBasis": {
          "$ref": "DATEXII_3_TrafficRegulation.json#/definitions/LegalBasis"
        },
        "troConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        },
        "troWeatherConditionExtensionG": {
          "$ref": "DATEXII_3_Common.json#/definitions/ExtensionTypeG"
        }
      },
      "required": [
        "weatherConditionType"
      ]
    }
  }
}