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.
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.
Spróbujmy przeanalizować co się stało. W tym celu otwieramy notepadem++ schemat BDZ_BDOT500.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.
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
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ęść IV – BDOT500 i GML