Ga naar inhoud

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 KeepAlive was elke 20 seconden, is nu elke minuut.
  • snapshot op connectie,
    • wijziging OnOccurence voor nieuw, wijziging of verwijdering
  • via informatiemanagement kan zowel een MeasurementSiteTable als een MeasurementSite nu expliciet worden afgemeld.
    • Uiteraard geldt de afmelding van een table ook voor de onderliggende sites.

MSTP

  • wordt middels allElementUpdate actueel 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: MeasurementSite versienummer wordt hiermee belangrijker!​
  • MeasurementSiteRecord is hernoemd naar MeasurementSite
  • MeasurementSiteId mag geen betekenisvolle waarden bevatten, hiervoor is MeasurementSiteIdentification beschikbaar om een voor de leverancier herkenbare identificatie toe te kunnen voegen
  • measurementSiteLocation is 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
  • specificVehicleType is verplicht gemaakt omdat of vehicletype of lengthCharacteristic moet worden gevuld
    • vehicleType mag maximaal 1 keer voorkomen
  • computationMethod is verplaatst naar measurementSpecificCharacteristics en is verplicht
  • period is verplicht
  • Accuracy komt te vervallen in de MST, wel wordt deze gevuld in de MDP
  • MeasurementSide wordt vervangen door bearing in pointByCoordinates
  • specificLane komt onder MeasurementSpecificCharacteristics te hangen en krijgt de attributen:
    • laneNumber met enum
    • laneUsage met enum
  • Vanaf versie 3 is IVP ook onderdeel van het AVG profiel, zodoende is er een nieuwe waarde voor specificMeasurementValueType bijgekomen: individualVehicleDataValues

MDP

  • MeasuredValue wordt PhysicalQuantity
    • SinglePhysicalQuantity komt daar als extra laag onder voor TrafficFlow, TraffficSpeed en TraveltimeData
    • TimeProfiledPhysicalQuantity komt daar als extra laag onder voor individualVehicleDataValues (tbv IVP)
    • MeasurementOrCalculationTime komt als measurementTimeDefault aan SiteMeasurements te hangen (de tijdsindicatie is dus geen onderdeel meer van BasicData)
    • measurementEquipmentTypeUsed is een attribuut van PhysicalQuantity
  • timeValue is verplicht
  • Traveltime kent nu ook normallyExpectedTravelTime hierdoor 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:
    • exitTime wordt MeasuredValues>IndividualVehicleDataValue>time
    • speed wordt MeasuredValues>IndividualVehicleDataValue>speed
    • vehicleLength wordt MeasuredValues>IndividualVehicleDataValue>lengthOfVehicle
    • bij Geen of onbetrouwbare data komt dataError te vervallen; zowel speed als lenght krijgen de waarde "-1"
  • Voorheen werd supplierCalculatedDataQuality gebruikt om de Accuracy waarde van de MST te overschrijven, maar MST kent nu geen accuracy meer. Het MDP veld accuracy wordt 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