04 Jak rozpoznać Gml2015 i Gml2021?

AcadGEO / Blog Gml / 04 Jak rozpoznać Gml2015 i Gml2021?

04 Jak rozpoznać Gml2015 i Gml2021

Przepisy regulujące schemat geodezyjnych baz danych, a co za tym idzie również strukturę pliku Gml na przestrzeni ostatnich lat uległy zmianie. Spowodowane było to zmianą rozporządzeń wykonawczych do Ustawy Prawo Geodezyjne i Kartograficzne.


W kolejnych latach były to następujące zmiany:


Rozporządzenia, które definiują Gml2013:

  • BDOT500 - Rozporządzenie Ministra Administracji i Cyfryzacji z dnia 12 lutego 2013r. w sprawie bazy danych geodezyjnej ewidencji sieci uzbrojenia terenu, bazy danych obiektów topograficznych oraz mapy zasadniczej,
  • EGiB - Rozporządzenie Ministra Administracji i Cyfryzacji z dnia 29 listopada 2013r. zmieniające rozporządzenie w sprawie ewidencji gruntów i budynków,
  • GESUT - Rozporządzenie Ministra Administracji i Cyfryzacji z dnia 12 lutego 2013r. w sprawie bazy danych geodezyjnej ewidencji sieci uzbrojenia terenu, bazy danych obiektów topograficznych oraz mapy zasadniczej.

Rozporządzenia, które definiują Gml2015:

  • BDOT500 - Rozporządzenie z dnia 2 listopada 2015r. w sprawie bazy danych obiektów topograficznych oraz mapy zasadniczej,
  • EGiB - Rozporządzenie Ministra Administracji i Cyfryzacji z dnia 6 listopada 2015r. zmieniające rozporządzenie w sprawie ewidencji gruntów i budynków - była to zmiana rozporządzenia z 2013r.,
  • GESUT - Rozporządzenie Ministra Administracji i Cyfryzacji z dnia 26 października 2015r. w sprawie powiatowej bazy GESUT i krajowej bazy GESUT.

Rozporządzenia, które definiują Gml2021:

  • BDOT500 - Rozporządzenie Ministra Rozwoju, Pracy i Technologii z dnia 23 lipca 2021r. w sprawie bazy danych obiektów topograficznych oraz mapy zasadniczej,
  • EGiB - Rozporządzenie Ministra Rozwoju, Pracy i Technologii z dnia 27 lipca 2021r. w sprawie ewidencji gruntów i budynków,
  • GESUT - Rozporządzenie Ministra Rozwoju, Pracy i Technologii z dnia 23 lipca 2021r. w sprawie geodezyjnej ewidencji sieci uzbrojenia terenu.

Gml2013 zanim zaczął funkcjonować na dobre to został zastąpiony przez młodszego brata Gml2015. Zmiana Gml2013 na Gml2015, można powiedzieć że była kosmetyczna, zmieniono między innymi strukturę związaną z szafami (dla sieci: e, g, t). Natomiast zmiany Gml2021 w stosunku do Gml2015 były już konkretne. Zupełnie przebudowano strukturę, w wyniku której mocno odchudzono ilość danych. Zmieniły się przestrzenie nazw, klasy, ilość atrybutów.


Jak rozpoznać w której wersji został wykonany plik Gml?

Rozszerzenie pliku jest takie samo *.Gml. Jedyny sposób to otwarcie pliku w edytorze tekstu (polecam Notepad++ z wtyczką XML Tools, która formatuje składnię) i rozpoznanie po zawartości w której wersji został wykonany plik Gml.


Po czym rozpoznać wersję Gml?


  1. Jeśli mamy wiedzę w jaki sposób zbudowana jest struktura Gml, do tego potrafimy odczytać zapis UML, który funkcjonuje w naszych rozporządzeniach to na tej podstawie możemy jednoznacznie stwierdzić z którą wersją mamy do czynienia. Na przykład poprzez rozpoznanie odpowiednich przestrzeni, klas, lub specyficznych atrybutów. Dodatkowo są dostępne schematy XSD (Xml Schema Definition), w których znajdziemy zdefiniowaną strukturę Gml.

  2. Kiedy nie mamy fachowej wiedzy...to co jest pierwszą informacją mówiącą o wersji? Tą informacją jest przestrzeń nazw. Zanim do tego przejdziemy - jakie występują w ogóle przedrostki?

    W wersji Gml2015 występują przedrostki: xmlns:bt, xmlns:bdz, xmlns:egb, xmlns:ges, xmlns:os.

    W wersji Gml2021 występują przedrostki: xmlns:egb, xmlns:ot, xmlns:ges.

    Ponieważ powtarzają się przedrostki egb, ges, więc nie można zawsze dokonać jednoznacznej identyfikacji.


    Prefiksy w Gml2015 i Gml2021

    Jeśli chodzi o przestrzenie nazw to już nie ma żadnych wątpliwości.

    Przestrzenie nazw dla Gml2015:

    • xmlns:bt="urn:gugik:specyfikacje:Gmlas:modelPodstawowy:1.0"
    • xmlns:bdz="urn:gugik:specyfikacje:Gmlas:bazaDanychObiektowTopograficznych500:1.0"
    • xmlns:ges="urn:gugik:specyfikacje:Gmlas:geodezyjnaEwidencjaSieciUzbrojeniaTerenu:1.0"
    • xmlns:egb="urn:gugik:specyfikacje:Gmlas:ewidencjaGruntowBudynkow:1.0"

    Przestrzenie nazw dla Gml2021:

    • xmlns:egb="ewidencjaGruntowIBudynkow:1.0"
    • xmlns:ges="geodezyjnaEwidencjaSieciUzbrojeniaTerenu:1.0"
    • xmlns:ot="bazaDanychObiektowTopograficznych500:1.0"

    Przestrzeń nazw w Gml2015 i Gml2021

    Poprzez odnalezienie w pliku danej przestrzeni możemy stwierdzić w której wersji został on wykonany. Zapamiętanie, która przestrzeń odpowiada danej wersji nie jest super proste. Dlatego moją ulubioną metodą jest kolejna - w następnym punkcie.


  3. Najprościej rozpoznać wersję Gml poprzez zawartość obiektu idIIP (z prefiksem danej bazy, np. egb:idIIP).


    Identyfikatory w Gml2015:

    • Wszystkie bazy mają taki sam identyfikator: bt:BT_Identyfikator. Jeśli taki element znajdziesz w pliku to masz pewność, że jest on w wersji Gml2015 lub Gml2013. W ten sposób możemy wykluczyć wersję Gml2021.

    Identyfikator w Gml2015

    Identyfikatory w Gml2021:

    • BDOT: ot:OT_IdentyfikatorIIP,
    • EGiB: egb:EGB_IdentyfikatorIIP,
    • GESUT: ges:GES_IdentyfikatorIIP,

    Odnalezienie jednego z powyższych identyfikatorów mówi nam o tym, że plik został wykonany w wersji Gml2021 oraz to, z której bazy dany obiekt pochodzi.


    Identyfikator w Gml2021