projekt w portugalskim stylu
Przed świętami dostałem do napisania kolejny projekt z Publikacji Cyfrowych. Wraz z kolegą mieliśmy napisać skrypt do zamiany danych z bazy księgowości do postaci XML jaką życzy sobie otrzymać tamtejsze ministerstwo finansów (albo też urząd skarbowy, pewien nie jestem). W końcu projekt z prawdziwego zdarzenia, klient, założenia, a co najważniejsze, ktoś kiedyś będzie teog używał. Podobnie było poniekąd z poprzednim projektem z tego przedmiotu dla miejscowego szpitala, ale jakoś tam nie znając języka i nie uczestnicząc w spotkaniach jakoś nie widziałem jak to się w końcu skończyło.
No to zabraliśmy się do roboty, dane otrzymywane w CSV (oczywiście zbastardyzowanym, bo rozdzielanym średnikami), prosty programik do zamiany na XML jest, jakoś to wszystko obudować i zwalidować czy dane są dobrej postaci, czy nie wkradł się błąd. I pierwszy psikus, ów napisany w C csv2xml wysypuje się na plikach utf-16. Nie zmniejszyło to jednak mojego zapału i popełniłem krótki skrypt w Rubym, czyniący mniej więcej to samo, tyle że dla odmiany skutecznie.
Czas na chochlika numer dwa - stworzony plik xml (o płaskiej
strukturze, bo przecież stworzony z csv) nie ma żadnej z właściwości bogato rozbudowanej, drzewiastej struktury prezentowanej w załączonej schemie. Ba, nie ma nawet części z wymaganych pól. Można to nawet ustalić jednym rzutem oka, bez pomocy walidatora obsługującego xsd, napisanego w Javie, którego wynalazł mój kolega. No to w takiej sytuacji nie pozostaje nic innego jak wizyta u "klienta". Tam wykładowca mówi to co my obaj myślimy, że generowanie tego xmla z pdoanego csv nie ma najmniejszego sensu.
Efektem jest zmiana profilu naszych działań. CSVem się już zajmować nie będziemy, jedynie pozostaje napisać validator dla już jakoś tam wygenerowanych xmli względem podanego xsd. Po bliższym przyjrzeniu się jednak przykładowym danym (autentyczne dane osobowe pracowników uniwersytetu) i plikowi xsd dochdozimy do wniosku, że to chyba jakiś żart, bo nie ma między nimi żadnego podobieństwa. Pomijając już fakt, że według xsd dokument nie powinien posiadać znacznika korzennego (ang. root tag), co oile dobrze pamiętam, stoi w konflikcie ze specyfikacją xml. Ale to detal.
Istnieje możliwość, że to po prostu nowy format rządowych danych, a nie jakaś głupia pomyłka i będziemy wtedy zajmować się przerabianiem istniejących prowizorycznych skryptów, aby mieli w księgowości co w marcu wysłać. Ale w głębi serca mam nadzieję, że nikt nie będzie widział co, jak i dlaczego i stwierdzą, że nie mają pojęcia jak ten projekt by miał się dalej toczyć, więc go zakończą. Co by mnie specjalnie nie zdziwiło. I ucieszyło, bo niedobitki entuzjazmu też już uleciały.
Ale nie jest tak źle, skrypt csv2xml.rb się pewnie kiedyś przyda, a i walidator z użyciem xsd również. Bo te ostatnie trudno jakoś znaleźć w satysfakcjonującej postaci (czyt. offline).
O wpisie
- Dodano:
- 21 stycznia 2006, 12:51
- Kategorie:
- Portugalia programowanie prywata
Dodaj komentarz
przeskocz do formularza