Geonovum / MIM-Werkomgeving

Werkomgeving van MIM. Bevat werk en alle pre-publicatieversies.
https://geonovum.github.io/MIM-Werkomgeving/
8 stars 15 forks source link

MIM serialisatie: MIM versie als enum #251

Closed ArjanLoeffen closed 1 year ago

ArjanLoeffen commented 2 years ago

Moeten we MIM versie als enum opnemen?

Zie ook #197

lennartvanbergen commented 2 years ago

Met waardes 1.1 en 1.1.1. en later andere.

We kunnen het open laten maar dan zijn alle waardes ineens mogelijk. Het lijkt zinvol om dit vaster te pinnen, omdat software die de MIM export verwerkt afhankelijk is van deze waarde en dan is vastpinnen eerder fijn dan niet fijn.

Er valt zelfs na te denken om per MIM versie een aparte XSD te maken en de MIM versie per XSD te fixeren.

Ik laat graag aan de ontwikkelaar minded mensen over wat hier handig is - voor gebruikers van deze MIM export.

Minimale wens vanuit het onderzoek van Kadaster over de gebruiksvriendelijkheid van de huidige MIM export XML is dat er een enumeratie komt. Ik vermoed dat een XSD per MIM versie handig is (tenzij backwards compatible, dan kan de XSD meerdere MIM versies in de enumeratie krijgen).

lennartvanbergen commented 2 years ago

Navragen bij ontwikkelaars.

In dit specifieke geval nu gaat het om MIM versie 1.1.0 ondersteunen voor versie 1.0.0 van de XSD.

Je kan ook zeggen, elke nieuwe MIM versie heeft een nieuwe XSD versie.

MIM verandering die leidt tot een XSD verandering leidt altijd tot een nieuwe XSD versie.

MIM veranderingen die niet leiden tot een XSD verandering maar waarbij door de modelleur van het IM wel in de MIM versie veld zelf de MIM versie ophoging wordt ingevuld.

Bv. MIM versie 1.2.0 naar 1.2.1. kan zijn: de tekst van de toelichting van MIM taal is aangepast. MIM versie 1.2.1. kan dan prima door de software verwerkt worden. De XSD versie passen we dus niet aan.

Enum --> XSD wijziging en die willen we juist niet. Reguliere expressie 1.2. en de werkafspraak en controle dat elke MIM 1.2. versie in deze XSD past. Als MIM 1.3.* er ook in past dan komt die ook in de regex erbij.

De MIM beheerder zorgt ervoor dat de meerdere MIM versies die met dezelfde XSD versie kunnen in de reguliere expressie terecht komen en als er wel een XSD wijziging nodig is dat alleen die nieuwe MIM versie dan een plek krijgt in de nieuwe XSD versie.

lennartvanbergen commented 2 years ago

Voorstel: enum waar alleen 1.1.0 in staat.

Want voor de XSD bij MIM 1.1.0 weten we al dat deze alleen voor 1.1.0 zal zijn en latere versies zullen een andere XSD nodig hebben.

Voor toekomstige XSD's waarin meerdere MIM versies kunnen zitten weer opnieuw kijken of er een elegante oplossing is, waarbij semantic versioning van de MIM versie en de XSD beter op elkaar zijn afgestemd.

lennartvanbergen commented 2 years ago

Besluit genomen door wekgroep. Voorstel ok.

ArjanLoeffen commented 2 years ago

Dat is mogelijk. Waarom wordt eigenlijk niet voor fixed gekozen?

Besluit is:

<xs:element name="MIMVersie">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value = "1.1.0"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>

versus

  <xs:element name="MIMVersie" type="xs:string" fixed="1.1.0"/>
ArjanLoeffen commented 1 year ago

Is nu accoord. (@lennartvanbergen okay)