Changelog¶
Op deze pagina is een overzicht te vinden van verschillen t.o.v. het actuele verkeersgegevens gedeelte van het Nederlands Profiel DATEX II 2015-2a (versie 2.3, 14 januari 2016).
Nieuw Exchange protocols¶
- Vanaf DATEXII versie 3 wordt er gewerkt met het exchange 2020 protocol WSDL
- Hierdoor gaan voortaan zowel de MSTP als de MDP over dezelfde verbinding
- Met dit protocol worden ook Informatiemanagement berichten geintroduceerd.
- no data
KeepAlivewas elke 20 seconden, is nu elke minuut. - snapshot op connectie,
- wijziging
OnOccurencevoor nieuw, wijziging of verwijdering
- wijziging
- via informatiemanagement kan zowel een
MeasurementSiteTableals eenMeasurementSitenu expliciet worden afgemeld.- Uiteraard geldt de afmelding van een table ook voor de onderliggende sites.
MSTP¶
- wordt middels
allElementUpdateactueel gehouden- Dit maakt het ontvangen van (meet)data bij eerstvolgende levering mogelijk (i.p.v. na 24 - 48 uur)
- Versienummer MSTP vervalt; altijd Latest
- let op:
MeasurementSiteversienummer wordt hiermee belangrijker!
- let op:
MeasurementSiteRecordis hernoemd naarMeasurementSiteMeasurementSiteIdmag geen betekenisvolle waarden bevatten, hiervoor isMeasurementSiteIdentificationbeschikbaar om een voor de leverancier herkenbare identificatie toe te kunnen voegenmeasurementSiteLocationis nu gebaseerd op een generiek locatieprofiel wat nu gelijk is voor alle profielen (niet elk profiel gebruikt elk type locatie).- VILD wordt niet meer gebruikt voor AVG
- OpenLrBinary vervangt OpenLr
specificVehicleTypeis verplicht gemaakt omdat ofvehicletypeoflengthCharacteristicmoet worden gevuldvehicleTypemag maximaal 1 keer voorkomen
computationMethodis verplaatst naarmeasurementSpecificCharacteristicsen is verplicht- period is verplicht
Accuracykomt te vervallen in de MST, wel wordt deze gevuld in de MDPMeasurementSidewordt vervangen doorbearinginpointByCoordinatesspecificLanekomt onderMeasurementSpecificCharacteristicste hangen en krijgt de attributen:laneNumbermet enumlaneUsagemet enum
- Vanaf versie 3 is IVP ook onderdeel van het AVG profiel, zodoende is er een nieuwe waarde voor
specificMeasurementValueTypebijgekomen:individualVehicleDataValues
MDP¶
MeasuredValuewordtPhysicalQuantitySinglePhysicalQuantitykomt daar als extra laag onder voor TrafficFlow, TraffficSpeed en TraveltimeDataTimeProfiledPhysicalQuantitykomt daar als extra laag onder voor individualVehicleDataValues (tbv IVP)MeasurementOrCalculationTimekomt alsmeasurementTimeDefaultaanSiteMeasurementste hangen (de tijdsindicatie is dus geen onderdeel meer vanBasicData)measurementEquipmentTypeUsedis een attribuut vanPhysicalQuantity
timeValueis verplichtTraveltimekent nu ooknormallyExpectedTravelTimehierdoor is de extensie niet meer nodig- IVP heeft met versie 3 een plek gekregen in het avg profiel, zodoende zijn sommige waarden op een andere plek terecht gekomen:
exitTimewordtMeasuredValues>IndividualVehicleDataValue>timespeedwordtMeasuredValues>IndividualVehicleDataValue>speedvehicleLengthwordtMeasuredValues>IndividualVehicleDataValue>lengthOfVehicle- bij Geen of onbetrouwbare data komt dataError te vervallen; zowel speed als lenght krijgen de waarde "-1"
- Voorheen werd
supplierCalculatedDataQualitygebruikt om deAccuracywaarde van de MST te overschrijven, maar MST kent nu geenaccuracymeer. Het MDP veldaccuracywordt nu gebruikt.
Conversietabel v2 -> v3¶
De voor avg relevante delen van de conversietabel zoals beschikbaar op NDW docs zijn hieronder voor de volledigheid toegevoegd.
Enkele opmerkingen vooraf¶
Onderliggend aan deze mapping beschreven in dit document is voor versie 2.3 de NDW DATEX II v2.3 XSD. Voor versie 3 is gebruik gemaakt van een Europees XSD, dus zonder aangepaste enumeraties e.t.c., aangevuld met Nederlandse extensies. Waar in dit document 'versie 2.3' (of 'V2.3') wordt genoemd, wordt het Nederlands Profiel DATEX II bedoeld zoals beschreven in het Nederlands Profiel DATEX II 2015-2a (14 januari 2016).
Niet alle elementen uit het gebruikte versie 2.3 XSD worden naar versie 3 gemapt. De scope van de conversie zijn de elementen zoals beschreven in het document Nederlands Profiel DATEX II 2015-2a (14 januari 2016). Deze scope bevat minder elementen dan in het versie 2.3 XSD zijn opgenomen.
Op sommige plekken in dit document wordt daarom voor enumeraties de volledige lijst van literals uit de XSD's opgenomen en met een 'X' aangegeven welke er in het Nederlands Profiel versie 2.3 zijn opgenomen.
In DATEX II versie 3 wordt in tegenstelling tot DATEX II versie 2.3, gebruik gemaakt van meerdere namespaces. In deze documentatie zijn namespaces niet expliciet benoemd, omdat dit ten koste van de leesbaarheid van de tekst. Mocht bij de toepassing van deze documentatie in de praktijk blijken dat dit niet vermelden van namespaces een groot gemis is, dan zal uiteraard gekeken worden een praktische manier om deze informatie op te nemen.
Functionele eisen¶
- Het geconverteerde resultaat dient geen selfclosing tags te bevatten op plaatsen waar deze in de input niet aanwezig zijn.
- Als een xml-node meerdere keren voorkomt in de input, worden alle overeenkomstige xml-nodes in de output gegenereerd (itereren).
Generieke elementen¶
VehicleCharacteristics mapt naar VehicleCharacteristics¶
In versie 3 van het Europees DATEX II Model is het verplichte element typeOfWeight toegevoegd. Een mapper moet, als het verplichte element typeOfWeight in het versie 3 doelprofiel aanwezig is, dit vullen met 'actual'.
| In NL Profiel v2.3? | Was VehicleCharacteristics (V2.3) |
Wordt VehicleCharacteristics (V3) |
Opmerking |
|---|---|---|---|
| X | fuelType | fuelType | |
| X | loadType | loadType | |
| X | vehicleType | vehicleType | |
| X | vehicleUsage | vehicleUsage | |
| X | grossWeightCharacteristic | grossWeightCharacteristic | |
| X | grossWeightCharacteristic.comparisonOperator | grossWeightCharacteristic.comparisonOperator | |
| X | grossWeightCharacteristic.grossVehicleWeight | grossWeightCharacteristic.grossVehicleWeight | |
| grossWeightCharacteristic.typeOfWeight | In versie 3 is het verplichte element typeOfWeight toegevoegd. | ||
| X | heightCharacteristic | heightCharacteristic | |
| X | heightCharacteristic.comparisonOperator | heightCharacteristic.comparisonOperator | |
| X | heightCharacteristic.vehicleHeight | heightCharacteristic.vehicleHeight | |
| X | lengthCharacteristic | lengthCharacteristic | |
| X | lengthCharacteristic.comparisonOperator | lengthCharacteristic.comparisonOperator | |
| X | lengthCharacteristic.vehicleLength | lengthCharacteristic.vehicleLength | |
| X | widthCharacteristic | widthCharacteristic | |
| X | widthCharacteristic.comparisonOperator | widthCharacteristic.comparisonOperator | |
| X | widthCharacteristic.vehicleWidth | widthCharacteristic.vehicleWidth |
MeasurementSiteTablePublication mapt naar MeasurementSiteTablePublication¶
N.B. Nederlands Profiel versie 2.3 is het element measurementSiteRecordExtended beschreven, gebruik hiervan op, dit moment, in de Nederlandse data is niet geconstateerd. Mede hierom is de mapping van measurementSiteRecordExtended tot op heden nog niet uitgewerkt.
| In NL Profiel v2.3? | Was payloadPublication xsi:type="MeasurementSiteTablePublication" (V2.3) |
Wordt payload xsi:type="roa:MeasurementSiteTablePublication" (V3) |
Opmerking |
|---|---|---|---|
| X | lang | lang | |
| modelBaseVersion | Dit verplichte element voor versie 3 vullen met de waarde 3 | ||
| X | publicationTime | publicationTime | |
| X | publicationCreator | publicationCreator | |
| X | publicationCreator.country | publicationCreator.country | |
| X | publicationCreator.nationalIdentifier | publicationCreator.nationalIdentifier | |
| X | headerInformation.confidentiality | headerInformation.confidentiality | |
| X | headerInformation.informationStatus | headerInformation.informationStatus | |
| X | MeasurementSiteTable.id | MeasurementSiteTable.id | |
| X | MeasurementSiteTable.version | MeasurementSiteTable.version | |
| X | ---.MeasurementSiteRecord.id | ---.MeasurementSite.id | MeasurementSiteRecord is in versie 3 gerenamed naar MeasurementSite |
| X | ---.MeasurementSiteRecord.version | ---.MeasurementSite.version | |
| X | ---.MeasurementSiteRecord.measurementSiteRecordVersionTime | ---.MeasurementSite.MeasurementSiteVersionTime | |
| X | ---.MeasurementSiteRecord.computationMethod | ---.MeasurementSite.measurementSpecificCharacteristics.computationMethod | Element verplaatst in versie 3 |
| X | ---.MeasurementSiteRecord.measurementEquipmentReference | ---.MeasurementSite.measurementEquipmentReference | |
| X | ---.MeasurementSiteRecord.measurementEquipmentTypeUsed | ---.MeasurementSite.measurementEquipmentTypeUsed | |
| X | ---.MeasurementSiteRecord.measurementSiteName | ---.MeasurementSite.measurementSiteName | |
| X | ---.MeasurementSiteRecord.measurementSiteNumberOfLanes | ---.MeasurementSite.measurementSiteNumberOfLanes | |
| X | ---.MeasurementSiteRecord.measurementSide | ---.MeasurementSite.measurementSpecificCharacteristics.measurementSide | Element verplaatst in versie 3 |
| X | ---.---.measurementSpecificCharacteristics.index | ---.---.measurementSpecificCharacteristics.index | |
| X | ---.---.measurementSpecificCharacteristics.accuracy | ---.---.measurementSpecificCharacteristics.accuracy | |
| X | ---.---.measurementSpecificCharacteristics.period | ---.---.measurementSpecificCharacteristics.period | |
| ---.---.measurementSpecificCharacteristics.smoothingFactor | ---.---.measurementSpecificCharacteristics.smoothingFactor | ||
| X | ---.---.measurementSpecificCharacteristics.specificLane | ---.---.measurementSpecificCharacteristics.specificLane.laneNumber | Met behulp van enumeratie mapping |
| X | ---.---.measurementSpecificCharacteristics.specificLane | ---.---.measurementSpecificCharacteristics.specificLane.laneUsage | Met behulp van enumeratie mapping |
| X | ---.---.measurementSpecificCharacteristics.specificMeasurementValueType | ---.---.measurementSpecificCharacteristics.specificMeasurementValueType | |
| X | ---.---.---.specificVehicleCharacteristics.vehicleType | ---.---.---.specificVehicleCharacteristics.vehicleType | |
| X | ---.---.---.---.lengthCharacteristic.comparisonOperator | ---.---.---.---.lengthCharacteristic.comparisonOperator | |
| X | ---.---.---.---.lengthCharacteristic.vehicleLength | ---.---.---.---.lengthCharacteristic.vehicleLength | |
| X | ---.---.measurementSiteLocation xsi:type="ItineraryByIndexedLocations" | ---.---.measurementSiteLocation xsi:type="ItineraryByIndexedLocations" | Conform hier beschreven mapping |
| X | ---.---.measurementSiteLocation xsi:type="Point" | ---.---.measurementSiteLocation xsi:type="PointLocation" | Conform hier beschreven mapping |
MeasuredDataPublication mapt naar MeasuredDataPublication¶
| In NL Profiel v2.3? | Was payloadPublication xsi:type="MeasuredDataPublication" (V2.3) |
Wordt payload xsi:type="roa:MeasuredDataPublication" (V3) |
Opmerking |
|---|---|---|---|
| X | lang | lang | |
| modelBaseVersion | Dit verplichte element voor versie 3 vullen met de waarde 3 | ||
| X | publicationTime | publicationTime | |
| X | publicationCreator | publicationCreator | |
| X | publicationCreator.country | publicationCreator.country | |
| X | publicationCreator.nationalIdentifier | publicationCreator.nationalIdentifier | |
| X | measurementSiteTableReference.id | measurementSiteTableReference.id | |
| X | measurementSiteTableReference.version | measurementSiteTableReference.version | |
| X | measurementSiteTableReference.targetClass | measurementSiteTableReference.targetClass | De targetclass in versie 3 moet worden voorzien zijn van de juiste namespace prefix. Als "roa" de prefix van de MeasuredDataPublication namespace van versie 3 is, moet er "roa:" worden ingevoegd voor de waarde van de targetClass zoals deze is opgenomen in versie 2.3. Voorbeeld: roa:MeasurementSiteTable |
| X | headerInformation | headerInformation | |
| X | headerInformation.confidentiality | headerInformation.confidentiality | |
| X | headerInformation.informationStatus | headerInformation.informationStatus | |
| X | SiteMeasurements | SiteMeasurements | |
| X | ---.measurementSiteReference.id | ---.measurementSiteReference.id | |
| X | ---.measurementSiteReference.version | ---.measurementSiteReference.version | |
| X | ---.measurementSiteReference.targetClass | ---.measurementSiteReference.targetClass | De targetclass in versie 3 moet worden voorzien zijn van de juiste namespace prefix. Als "roa" de prefix van de MeasuredDataPublication namespace van versie 3 is, moet er "roa:" worden ingevoegd voor de waarde van de targetClass zoals deze is opgenomen in versie 2.3. In dit geval moet, ook het versie 2.3 achtervoegsel "-Record" worden verwijderd Voorbeeld: roa:MeasurementSite |
| X | ---.measurementTimeDefault | measurementTimeDefault.timeValue |
measuredValue mapt naar physicalQuantity¶
| In NL Profiel v2.3? | Was measuredValue (V2.3) |
Wordt physicalQuantity (V3) |
|---|---|---|
| X | measuredValue.index | physicalQuantity.index |
| X | measuredValue.measuredValue | physicalQuantity xsi:type="SinglePhysicalQuantity" |
| X | ---.---.measurementEquipmentTypeUsed | ---.measurementEquipmentTypeUsed |
basicData mapt naar basicData¶
TODO: review van deze van onderstaande redeneerlijn.
Het is verplicht om het niet-verplichte element BasicData.measurementOrCalculationPeriod te gebruiken als er een afwijking is voor de duur van de meetperiode zoals in element measurementSpecificCharacteristics.period van de MeasurementSiteTable is opgenomen.
Het is verplicht om het niet-verplichte element BasicData.measurementOrCalculationTime te gebruiken als er een afwijking is met hetgeen als tijdstip in element SiteMeasurements.measurementTimeDefault van de MeasuredDataPublication is opgenomen.
In een snapshot van trafficspeed.xml van NDW OpenData zijn zowel measurementOrCalculationPeriod als measurementOrCalculationTime niet aangetroffen.
In een snapshot van traveltime.xml van NDW OpenData is measurementOrCalculationPeriod voor één dataleverancier aangetroffen. Echter, dit element is gevuld met de waarde 60, dezelfde waarde als in measurementSpecificCharacteristics.period van de MeasurementSiteTable is opgenomen. Kortom, deze 'override' van deze dataleverancier heeft geen toevoegde waarde.
Mede vanwege bovenstaande informatie is mapping van de versie 2.3 elementen measurementOrCalculationPeriod en measurementOrCalculationTime op dit moment nog niet uitgewerkt. Dit kan later altijd nog, mocht dit toch noodzakelijk blijken te zijn.
basicData type TrafficFlow mapt naar basicData type TrafficFlow¶
| In NL Profiel v2.3? | Was basicData xsi:type ="TrafficFlow" (V2.3) |
Wordt basicData xsi:type="TrafficFlow" (V3) |
Opmerking |
|---|---|---|---|
| X | measurementOrCalculationPeriod | (Nog) niet nodig | Zie hier |
| X | measurementOrCalculationTime | (Nog) niet nodig | Zie hier |
| X | vehicleFlow | vehicleFlow | |
| X | vehicleFlow.accuracy | vehicleFlow.accuracy | |
| X | vehicleFlow.computationalMethod | vehicleFlow.computationalMethod | |
| X | vehicleFlow.numberOfIncompleteInputs | vehicleFlow.numberOfIncompleteInputs | |
| X | vehicleFlow.numberOfInputValuesUsed | vehicleFlow.numberOfInputValuesUsed | |
| X | vehicleFlow.smoothingFactor | vehicleFlow.smoothingFactor | |
| X | vehicleFlow.standardDeviation | vehicleFlow.standardDeviation | |
| X | vehicleFlow.supplierCalculatedDataQuality | vehicleFlow.supplierCalculatedDataQuality | |
| X | vehicleFlow.dataError | vehicleFlow.dataError | |
| X | vehicleFlow.reasonForDataError | vehicleFlow.reasonForDataError | |
| X | vehicleFlow.vehicleFlowRate | vehicleFlow.vehicleFlowRate |
basicData type TrafficSpeed mapt naar basicData type TrafficSpeed¶
| In NL Profiel v2.3? | Was basicData xsi:type ="TrafficSpeed" (V2.3) |
Wordt basicData xsi:type="TrafficSpeed" (V3) |
Opmerking |
|---|---|---|---|
| X | measurementOrCalculationPeriod | (Nog) niet nodig | Zie hier |
| X | measurementOrCalculationTime | (Nog) niet nodig | Zie hier |
| X | averageVehicleSpeed | averageVehicleSpeed | |
| X | averageVehicleSpeed.accuracy | averageVehicleSpeed.accuracy | |
| X | averageVehicleSpeed.computationalMethod | averageVehicleSpeed.computationalMethod | |
| X | averageVehicleSpeed.numberOfIncompleteInputs | averageVehicleSpeed.numberOfIncompleteInputs | |
| X | averageVehicleSpeed.numberOfInputValuesUsed | averageVehicleSpeed.numberOfInputValuesUsed | |
| X | averageVehicleSpeed.smoothingFactor | averageVehicleSpeed.smoothingFactor | |
| X | averageVehicleSpeed.standardDeviation | averageVehicleSpeed.standardDeviation | |
| X | averageVehicleSpeed.supplierCalculatedDataQuality | averageVehicleSpeed.supplierCalculatedDataQuality | |
| X | averageVehicleSpeed.dataError | averageVehicleSpeed.dataError | |
| X | averageVehicleSpeed.reasonForDataError | averageVehicleSpeed.reasonForDataError | |
| X | averageVehicleSpeed.speed | averageVehicleSpeed.speed |
basicData type TravelTimeData mapt naar basicData type TravelTimeData¶
De inhoud van versie 2.3 measuredValueExtended mapt naar versie 3 normallyExpectedTravelTime.
| In NL Profiel v2.3? | Was basicData xsi:type ="TravelTimeData" (V2.3) |
Wordt basicData xsi:type="TravelTimeData" (V3) |
Opmerking |
|---|---|---|---|
| X | measurementOrCalculationPeriod | (Nog) niet nodig | Zie hier |
| X | measurementOrCalculationTime | (Nog) niet nodig | Zie hier |
| X | travelTimeType | travelTimeType | |
| X | travelTime | travelTime | |
| X | travelTime.accuracy | travelTime.accuracy | |
| X | travelTime.computationalMethod | travelTime.computationalMethod | |
| X | travelTime.numberOfIncompleteInputs | travelTime.numberOfIncompleteInputs | |
| X | travelTime.numberOfInputValuesUsed | travelTime.numberOfInputValuesUsed | |
| X | travelTime.smoothingFactor | travelTime.smoothingFactor | |
| X | travelTime.standardDeviation | travelTime.standardDeviation | |
| X | travelTime.supplierCalculatedDataQuality | travelTime.supplierCalculatedDataQuality | |
| X | travelTime.dataError | travelTime.dataError | |
| X | travelTime.reasonForDataError | travelTime.reasonForDataError | |
| X | travelTime.duration | travelTime.duration | |
| X | measuredValueExtended | Niet nodig om te mappen, boomstructuur verandert in versie 3 | |
| X | ---.BasicDataReferenceValue | Niet nodig om te mappen, boomstructuur verandert in versie 3 | |
| X | ---.---.referenceValueType | Niet nodig om te mappen, boomstructuur verandert in versie 3 | |
| X | ---.---.travelTimeData | Niet nodig om te mappen, boomstructuur verandert in versie 3 | |
| X | ---.---.---.travelTimeType | Niet nodig om te mappen, boomstructuur verandert in versie 3 | |
| X | ---.---.---.travelTime | normallyExpectedTravelTime | |
| X | ---.---.---.travelTime.accuracy | normallyExpectedTravelTime.accuracy | |
| X | ---.---.---.travelTime.computationalMethod | normallyExpectedTravelTime.computationalMethod | |
| X | ---.---.---.travelTime.numberOfIncompleteInputs | normallyExpectedTravelTime.numberOfIncompleteInputs | |
| X | ---.---.---.travelTime.numberOfInputValuesUsed | normallyExpectedTravelTime.numberOfInputValuesUsed | |
| X | ---.---.---.travelTime.smoothingFactor | normallyExpectedTravelTime.smoothingFactor | |
| X | ---.---.---.travelTime.standardDeviation | normallyExpectedTravelTime.standardDeviation | |
| X | ---.---.---.travelTime.supplierCalculatedDataQuality | normallyExpectedTravelTime.supplierCalculatedDataQuality | |
| X | ---.---.---.travelTime.dataError | normallyExpectedTravelTime.dataError | |
| X | ---.---.---.travelTime.reasonForDataError | normallyExpectedTravelTime.reasonForDataError | |
| X | ---.---.---.travelTime.duration | normallyExpectedTravelTime.duration |