Udostępniliśmy do pobrania off-line’owy walidator plików.
Jest to aplikacja uruchamiana z linii poleceń, do jej uruchomienia wymagana jest Java w wersji 1.8 lub wyższej.
Pod Windows można ją uruchomić jako:
1
giif-xml2018-cli.exe --help
Pod Linuksem i OS-X jako:
1
java -jar giif-xml2018-cli.exe --help
W rezultacie otrzymujemy wynik podobny do tego:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Apr 02, 2019 10:21:44 AM org.jboss.weld.bootstrap.WeldStartup <clinit> INFO: WELD-000900: 2.4.8 (Final) Apr 02, 2019 10:21:44 AM org.jboss.weld.environment.deployment.discovery.ReflectionDiscoveryStrategy processAnnotatedDiscovery INFO: WELD-ENV-000014: Falling back to Java Reflection for bean-discovery-mode="annotated" discovery. Add org.jboss:jandex to the classpath to speed-up startup. Apr 02, 2019 10:21:44 AM org.jboss.weld.bootstrap.WeldStartup startContainer INFO: WELD-000101: Transactional services not available. Injection of @Inject UserTransaction not available. Transactional observers will be invoked synchronously. Apr 02, 2019 10:21:45 AM org.jboss.weld.environment.se.WeldContainer fireContainerInitializedEvent INFO: WELD-ENV-002003: Weld SE container STATIC_INSTANCE initialized Usage: <main class> [-hV] [COMMAND] Prosta apka do walidacji plików. -h, --help Show this help message and exit. -V, --version Print version information and exit. Commands: validate Walidacja zgodności z regułami. xsd-validate Waliduj zgodność z XSD. Weld SE container STATIC_INSTANCE shut down by shutdown hook
Linie od 1 do 8 to log uruchamiania programu, jest on wypisywany na STDERR więc można go przekierować do /dev/null.
Logi są wypisywane przez java.utils.logging, więc można je skonfigurować jak w każdym innym programie javowym przez,
przez dodanie -Djava.util.logging.config.file=logging.properties przed -jar
Usage: <main class> xsd-validate [-hqV] [-f=<outputFormat>] [-o=<outputFile>] plik... Waliduj zgodność z XSD. plik... Pliki do walidacji. -f, --format=<outputFormat> Format wyniku walidacji: TEXT, JSON, CSV, domyślnie TEXT. -h, --help Show this help message and exit. -o, --output=<outputFile> Plik wynikowy, domyślnie STDOUT. -q, --quiet Nie wypisuj komunikatu błędu na STDOUT. -V, --version Print version information and exit. Weld SE container STATIC_INSTANCE shut down by shutdown hook
Jeżeli żaden plik nie zawierał błędu aplikacja zwróci status 0.
Jeżeli co najmniej jeden z przetwarzanych plików zawierał błędy aplikacja zwróci 1.
Przykład
1 2 3
$ java -jar xml2018-cli-1.0.1.jar xsd-validate ~/Downloads/wymiana_export_0000000000_Transakcja_testowa\(1\).xml 2> /dev/null Plik poprawny: /home/ksm/Downloads/wymiana_export_0000000000_Transakcja_testowa(1).xml Weld SE container STATIC_INSTANCE shut down by shutdown hook
Przykład z błędem
1 2 3
$ java -jar giif-xml2018-cli.exe xsd-validate -f CSV -o wymiana.csv ~/Downloads/wymiana_export_0000000000_Transakcja_testowa\(1\).xml 2> /dev/null Plik niepoprawny: /home/ksm/Downloads/wymiana_export_0000000000_Transakcja_testowa(1).xml Weld SE container STATIC_INSTANCE shut down by shutdown hook
Powyższe polecenie sprawdza plik i zapisuje napotkane błędy do pliku wymiana.csv w formacie CSV. Utworzony plik wymiana CSV
1 2
Plik,Typ,Położenie karty,Karta po tagu,Identyfikator karty,Poprzedni identyfikator,Położenie błędu,Błąd po tagu,Komunikat,Dotyczy tagów,Wartość,Wyjątek wymiana_export_0000000000_Transakcja_testowa(1).xml,BŁĄD,,/Dokument,Rekord Transakcja testowa,Przed pierwszym rekordem.,,,,,,"cvc-complex-type.2.4.a: Invalid content was found starting with element 't:DokumentTozsamosci'. One of '{""http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2018/10/10/giif/typy/"":PESEL, ""http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2018/10/10/giif/typy/"":DataUrodzenia}' is expected."
Usage: <main class> validate [-hqV] [-f=<outputFormat>] [-o=<outputFile>] plik... Walidacja zgodności z regułami. plik... Pliki do walidacji. -f, --format=<outputFormat> Format wyniku walidacji: TEXT, JSON, CSV, domyślnie TEXT. -h, --help Show this help message and exit. -o, --output=<outputFile> Plik wynikowy, domyślnie STDOUT. -q, --quiet Nie wypisuj komunikatu błędu na STDOUT. -V, --version Print version information and exit. Weld SE container STATIC_INSTANCE shut down by shutdown hook
Jeżeli żaden plik nie zawierał błędu aplikacja zwróci status 0.
Jeżeli co najmniej jeden z przetwarzanych plików zawierał błędy aplikacja zwróci 1.