XML, XSD, GML – jak się w tym wszystkim odnaleźć ? – część IV Schemat BDOT 500 i GESUT

Na stronie GUGiK znajdują się schematy XSD do Rozporządzenia Ministra Administracji i Cyfryzacji z dnia 12 lutego 2013 w sprawie bazy danych geodezyjnej ewidencji sieci uzbrojenia terenu, bazy danych obiektów topograficznych oraz mapy zasadniczej.

Ściągamy wszystkie schematy XSD z tego rozporządzenia do oddzielnego katalogu na komputerze.widok schematów bdot500 w plikach XSD

Wczytujemy schemat BDZ_BDOT500.xsd do programu XSD Diagram. Po wczytaniu schematu zaglądamy do folderu do którego ściągnęliśmy poprzednio schematy. Pojawiła się w nim  grupa  dodatkowych plików XSD ściągniętych automatycznie przez program z Internetu.

widok pobranych schematów zależnych w plikach XSD

Spróbujmy przeanalizować co się stało. W tym celu otwieramy notepadem++ schemat BDZ_BDOT500.xsd.

nagłówek schematu dla bdot 500 w pliku XSD

Przede wszystkim widać, że plik XSD to również XML ze znacznikiem <schema> na początku. Atrybuty xmlns, import i include oznaczają, że do poprawnej walidacji tych schematem potrzebne są zewnętrzne pliki schematów, które dostępne są w Internecie lub lokalnie. Również każdy z tych plików może się odwoływać do następnych schematów zdefiniowanych w jego nagłówku.

Program XSD Diagram pobrał wszystkie niezbędne schematy XSD do katalogu lokalnego. Nazwy w poszczególnych schematach  do których schemat się odwołuje mogą się powtarzać, dlatego dla każdego schematu występuje przedrostek zwany przestrzenią nazw. Wskazuje on na schemat z którego pochodzą. I tak np. przedrostek GML wskazuje na odwołanie się do specyfikacji gml w wersji 3.2 (patrz obrazek wyżej xmlns:gml).
W programie XSD Diagram wybierzmy element FeatureCollection z pola po prawej stronie i przeciągnijmy do okna głównego.

widok elementów xml - wybrany feature collection

 

Zobaczymy znany już z poprzednich części diagram schematu danych, na podstawie którego można stworzyć XML. Rozwijając go zobaczymy, że zawiera całą paletę elementów z których część zaczyna się od przedrostków MZ_ BT_ BDZ_ , klikając na element w polu typu wskazany jest schemat z którego dany obiekt pochodzi – przedrostki te widoczne są również w nazwach plików XSD, które ściągnęliśmy z GUGiK. Tworzenie struktury XML zostało opisane w poprzednim poście więc je tym razem pominę.

Typ geometrii jaki jest przypisany do poszczególnych obiektów można ustalić klikając na obiekt geometria (rysunek poniżej). W typie zakładki element pojawi się rodzaj geometrii do jakiej się odwołuje dany element ze schematu GML. Opis typów w języku polskim dostępny jest na stronie http://e-przewodnik.gugik.gov.pl/norma_19107.html

typy geometrii w programie xsd diagram

Skąd wziąć wartości atrybutów słowników do obiektów które się np. w budowli inżynierskiej znajdują np. BDZ_RodzajBudInzType ?

Klikając rodzajBudInz w polu type widać BDZ_RodzajBudInzType – patrząc na ten obiekt zobaczymy że jest to Union czyli złączenie. Niestety XSD Diagram nie obsługuje wyświetlania złączeń więc wygenerowałem zestawienie możliwych wartości ze schematu słownika dla BDOT500.

Załączam wygenerowany gml dla budowli inżynierskiej do analizy. Na koniec otwórzcie go za pomocą programu QGiS 2.0 wczytując go tak jak każdą inną warstwę wektorową z rozszerzeniem gml.  Tak, da się to zrobić.

Zadanie dla Was – spróbujcie otworzyć plik MZ_MapaZasadnicza.xsd za pomocą programu XSD Diagram. Pamiętając o tym, że XSD odwołują się do zewnętrznych schematów pomyślcie co się stało. Przyjrzyjcie się z czego będzie się składać w przyszłości mapa zasadnicza.

Jeśli chcecie wiedzieć więcej o przetwarzaniu danych xml, schematach danych, sposobami użycia danych GML w GIS i Qgis zapraszam do zapoznania się z ofertą szkoleń.

Zobacz także:

Część I – pliki XML

Część II – schematy XSD

Część III – walidacja XML

Część IV – BDOT500 i GML