Loading 103280/TS_103_280.schema.json +398 −394 Original line number Original line Diff line number Diff line Loading @@ -196,6 +196,10 @@ "minimum": 0, "minimum": 0, "maximum": 4095 "maximum": 4095 }, }, "VIN": { "type": "string", "pattern": "^[A-HJ-NPR-Z0-9]{17}$" }, "IPAddress": { "IPAddress": { "oneOf": [ "oneOf": [ { { Loading 103280/TS_103_280.xsd +5 −0 Original line number Original line Diff line number Diff line Loading @@ -278,4 +278,9 @@ <xs:maxInclusive value="4095"/> <xs:maxInclusive value="4095"/> </xs:restriction> </xs:restriction> </xs:simpleType> </xs:simpleType> <xs:simpleType name="VIN"> <xs:restriction base="xs:string"> <xs:pattern value="[A-HJ-NPR-Z0-9]{17}"/> </xs:restriction> </xs:simpleType> </xs:schema> </xs:schema> 103976/examples/example.json 0 → 100644 +24 −0 Original line number Original line Diff line number Diff line { "VINtoLocationRecords" : [ { "Location" : { "WGS84CoordinateDecimal" : { "etsi280:latitude" : "N54.123456", "etsi280:longitude" : "W001.123456" } }, "TimeOfLocation" : { "PointInTime" : "2022-01-16T15:57:00Z" }, "CommunicationsIdentifier" : { "IMSI" : "0123456" }, "AssociationTime" : { "PeriodInTime" : { "StartTime" : "2022-01-16T15:57:00Z", "EndTime" : "2022-01-16T15:57:00Z" } } } ] } No newline at end of file 103976/ts_103976.schema.json 0 → 100644 +146 −0 Original line number Original line Diff line number Diff line { "$id": "ts_103976_core", "$defs": { "AssociationPeriod" : { "type" : "object", "properties" : { "StartTime" : { "$ref": "ts_103280_2017_07#/$defs/QualifiedDateTime" }, "EndTime" : { "$ref": "ts_103280_2017_07#/$defs/QualifiedDateTime" } }, "required" : ["StartTime"] }, "AssociationTime" : { "oneOf" : [ { "type" : "object", "properties" : { "PointInTime" : { "$ref": "ts_103280_2017_07#/$defs/QualifiedDateTime" } }, "required" : ["PointInTime"] }, { "type" : "object", "properties" : { "PeriodInTime" : { "$ref": "#/$defs/AssociationPeriod" } }, "required" : ["PeriodInTime"] } ] }, "CommsID" : { "oneOf" : [ { "type" : "object", "properties" : { "IMEI" : { "$ref" : "ts_103280_2017_07#/$defs/IMEI"} }, "required" : ["IMEI"] }, { "type" : "object", "properties" : { "IMSI" : { "$ref" : "ts_103280_2017_07#/$defs/IMSI"} }, "required" : ["IMSI"] }, { "type" : "object", "properties" : { "IMSI" : { "$ref" : "ts_103280_2017_07#/$defs/ICCID"} }, "required" : ["ICCID"] }, { "type" : "object", "properties" : { "IMSI" : { "$ref" : "ts_103280_2017_07#/$defs/PEIIMEI"} }, "required" : ["PEIIMEI"] }, { "type" : "object", "properties" : { "IMSI" : { "$ref" : "ts_103280_2017_07#/$defs/SUPIIMSI"} }, "required" : ["SUPIIMSI"] }, { "type" : "object", "properties" : { "IMSI" : { "$ref" : "ts_103280_2017_07#/$defs/SUPINAI"} }, "required" : ["SUPINAI"] }, { "type" : "object", "properties" : { "IMSI" : { "$ref" : "ts_103280_2017_07#/$defs/InternationalE164"} }, "required" : ["MSISDN"] }, { "type" : "object", "properties" : { "IMSI" : { "$ref" : "ts_103280_2017_07#/$defs/GPSIMSISDN"} }, "required" : ["GPSIMSISDN"] }, { "type" : "object", "properties" : { "IMSI" : { "$ref" : "ts_103280_2017_07#/$defs/GPSINAI"} }, "required" : ["GPSINAI"] }, { "type" : "object", "properties" : { "IMSI" : { "$ref" : "ts_103280_2017_07#/$defs/MACAddress"} }, "required" : ["MACAddress"] }, { "type" : "object", "properties" : { "IMSI" : { "$ref" : "ts_103280_2017_07#/$defs/EUI64"} }, "required" : ["EUI164"] } ] }, "Location" : { "oneOf" : [ { "type" : "object", "properties" : { "WGS84CoordinateDecimal" : { "$ref" : "ts_103280_2017_07#/$defs/WGS84CoordinateDecimal"} } } ] }, "SourceOfLocation" : { "enum" : ["GNSS"] }, "VINtoCommsIDRecord" : { "type" : "object", "properties" : { "CommsID" : { "$ref" : "#/$defs/CommsID" }, "AssociationTime" : { "$ref" : "#/$defs/AssociationTime"} }, "required" : ["CommsID"] }, "CommsIDToVINRecord" : { "type" : "object", "properties" : { "VIN" : { "$ref" : "ts_103280_2017_07#/$defs/VIN" } }, "required" : ["VIN"] }, "VINtoLocationRecord" : { "type" : "object", "properties" : { "Location" : { "$ref" : "#/$defs/Location" }, "TimeOfLocation" : { "$ref" : "#/$defs/AssociationTime" }, "SourceOfLocation" : { "$ref" : "#/$defs/SourceOfLocation" }, "LocationRecordReason" : { "$ref" : "ts_103280_2017_07#/$defs/LongString" } }, "required" : ["Location", "TimeOfLocation"] }, "ResultRecords" : { "type" : "object", "properties" : { "VINtoCommsIDRecords" : { "type" : "array", "items" : { "$ref" : "#/$defs/VINtoCommsIDRecord"} }, "CommsIDToVINRecords" : { "type" : "array", "items" : { "$ref" : "#/$defs/CommsIDToVINRecord"} }, "VINtoLocationRecords" : { "type" : "array", "items" : { "$ref" : "#/$defs/VINtoLocationRecord"} } } } }, "$ref": "#/$defs/ResultRecords" } No newline at end of file utils/json_validator.py +1 −0 Original line number Original line Diff line number Diff line Loading @@ -151,6 +151,7 @@ if __name__ == "__main__": logging.info(f"{len(errors)} errors detected") logging.info(f"{len(errors)} errors detected") if len(errors) > 0: if len(errors) > 0: logging.info(errors) exit(-1) exit(-1) else: else: exit(0) exit(0) Loading
103280/TS_103_280.schema.json +398 −394 Original line number Original line Diff line number Diff line Loading @@ -196,6 +196,10 @@ "minimum": 0, "minimum": 0, "maximum": 4095 "maximum": 4095 }, }, "VIN": { "type": "string", "pattern": "^[A-HJ-NPR-Z0-9]{17}$" }, "IPAddress": { "IPAddress": { "oneOf": [ "oneOf": [ { { Loading
103280/TS_103_280.xsd +5 −0 Original line number Original line Diff line number Diff line Loading @@ -278,4 +278,9 @@ <xs:maxInclusive value="4095"/> <xs:maxInclusive value="4095"/> </xs:restriction> </xs:restriction> </xs:simpleType> </xs:simpleType> <xs:simpleType name="VIN"> <xs:restriction base="xs:string"> <xs:pattern value="[A-HJ-NPR-Z0-9]{17}"/> </xs:restriction> </xs:simpleType> </xs:schema> </xs:schema>
103976/examples/example.json 0 → 100644 +24 −0 Original line number Original line Diff line number Diff line { "VINtoLocationRecords" : [ { "Location" : { "WGS84CoordinateDecimal" : { "etsi280:latitude" : "N54.123456", "etsi280:longitude" : "W001.123456" } }, "TimeOfLocation" : { "PointInTime" : "2022-01-16T15:57:00Z" }, "CommunicationsIdentifier" : { "IMSI" : "0123456" }, "AssociationTime" : { "PeriodInTime" : { "StartTime" : "2022-01-16T15:57:00Z", "EndTime" : "2022-01-16T15:57:00Z" } } } ] } No newline at end of file
103976/ts_103976.schema.json 0 → 100644 +146 −0 Original line number Original line Diff line number Diff line { "$id": "ts_103976_core", "$defs": { "AssociationPeriod" : { "type" : "object", "properties" : { "StartTime" : { "$ref": "ts_103280_2017_07#/$defs/QualifiedDateTime" }, "EndTime" : { "$ref": "ts_103280_2017_07#/$defs/QualifiedDateTime" } }, "required" : ["StartTime"] }, "AssociationTime" : { "oneOf" : [ { "type" : "object", "properties" : { "PointInTime" : { "$ref": "ts_103280_2017_07#/$defs/QualifiedDateTime" } }, "required" : ["PointInTime"] }, { "type" : "object", "properties" : { "PeriodInTime" : { "$ref": "#/$defs/AssociationPeriod" } }, "required" : ["PeriodInTime"] } ] }, "CommsID" : { "oneOf" : [ { "type" : "object", "properties" : { "IMEI" : { "$ref" : "ts_103280_2017_07#/$defs/IMEI"} }, "required" : ["IMEI"] }, { "type" : "object", "properties" : { "IMSI" : { "$ref" : "ts_103280_2017_07#/$defs/IMSI"} }, "required" : ["IMSI"] }, { "type" : "object", "properties" : { "IMSI" : { "$ref" : "ts_103280_2017_07#/$defs/ICCID"} }, "required" : ["ICCID"] }, { "type" : "object", "properties" : { "IMSI" : { "$ref" : "ts_103280_2017_07#/$defs/PEIIMEI"} }, "required" : ["PEIIMEI"] }, { "type" : "object", "properties" : { "IMSI" : { "$ref" : "ts_103280_2017_07#/$defs/SUPIIMSI"} }, "required" : ["SUPIIMSI"] }, { "type" : "object", "properties" : { "IMSI" : { "$ref" : "ts_103280_2017_07#/$defs/SUPINAI"} }, "required" : ["SUPINAI"] }, { "type" : "object", "properties" : { "IMSI" : { "$ref" : "ts_103280_2017_07#/$defs/InternationalE164"} }, "required" : ["MSISDN"] }, { "type" : "object", "properties" : { "IMSI" : { "$ref" : "ts_103280_2017_07#/$defs/GPSIMSISDN"} }, "required" : ["GPSIMSISDN"] }, { "type" : "object", "properties" : { "IMSI" : { "$ref" : "ts_103280_2017_07#/$defs/GPSINAI"} }, "required" : ["GPSINAI"] }, { "type" : "object", "properties" : { "IMSI" : { "$ref" : "ts_103280_2017_07#/$defs/MACAddress"} }, "required" : ["MACAddress"] }, { "type" : "object", "properties" : { "IMSI" : { "$ref" : "ts_103280_2017_07#/$defs/EUI64"} }, "required" : ["EUI164"] } ] }, "Location" : { "oneOf" : [ { "type" : "object", "properties" : { "WGS84CoordinateDecimal" : { "$ref" : "ts_103280_2017_07#/$defs/WGS84CoordinateDecimal"} } } ] }, "SourceOfLocation" : { "enum" : ["GNSS"] }, "VINtoCommsIDRecord" : { "type" : "object", "properties" : { "CommsID" : { "$ref" : "#/$defs/CommsID" }, "AssociationTime" : { "$ref" : "#/$defs/AssociationTime"} }, "required" : ["CommsID"] }, "CommsIDToVINRecord" : { "type" : "object", "properties" : { "VIN" : { "$ref" : "ts_103280_2017_07#/$defs/VIN" } }, "required" : ["VIN"] }, "VINtoLocationRecord" : { "type" : "object", "properties" : { "Location" : { "$ref" : "#/$defs/Location" }, "TimeOfLocation" : { "$ref" : "#/$defs/AssociationTime" }, "SourceOfLocation" : { "$ref" : "#/$defs/SourceOfLocation" }, "LocationRecordReason" : { "$ref" : "ts_103280_2017_07#/$defs/LongString" } }, "required" : ["Location", "TimeOfLocation"] }, "ResultRecords" : { "type" : "object", "properties" : { "VINtoCommsIDRecords" : { "type" : "array", "items" : { "$ref" : "#/$defs/VINtoCommsIDRecord"} }, "CommsIDToVINRecords" : { "type" : "array", "items" : { "$ref" : "#/$defs/CommsIDToVINRecord"} }, "VINtoLocationRecords" : { "type" : "array", "items" : { "$ref" : "#/$defs/VINtoLocationRecord"} } } } }, "$ref": "#/$defs/ResultRecords" } No newline at end of file
utils/json_validator.py +1 −0 Original line number Original line Diff line number Diff line Loading @@ -151,6 +151,7 @@ if __name__ == "__main__": logging.info(f"{len(errors)} errors detected") logging.info(f"{len(errors)} errors detected") if len(errors) > 0: if len(errors) > 0: logging.info(errors) exit(-1) exit(-1) else: else: exit(0) exit(0)