Zmiany w walidatorze off-line
Zmianie uległ walidator udostępniany off-line.
Zmiana znaczenia komendy validate
Komenda validate wykonuje teraz sprawdzenie zgodności ze schemą,
a następnie sprawdzenie zgodności z regułami.
Zmiana nazwy komendy validate na rule-validate.
Stara komenda validate wykonująca wyłącznie sprawdzenie zgodności z regułami
występuje pod nazwą rule-validate
Poprawka do lokalizacji błędu schemy
Walidator poda element nadrzędny do miejsca wystąpienia błędu, oraz poprzednio przetwarzany (właśnie zamknięty) element.
Walidacja formatu numeru IBANu.
Dotychczas walidator, sprawdzał poprawnośc numeru IBAN wyłącznie na podstawie weryfikacji sumy kontrolnej. Umożliwiało to przesyłanie jako numerów IBAN numerów rachunków, które na na trzeciej lub czwartej pozycji zawierały litery. Aktualnie sprawdzena będzie poprawnośc numeru (wg. wzorca [A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}) i suma kontrolna.
Poprawka dla walidacji numeru PESEL.
Element PESEL, jeżeli jest użyty nie może być pusty.
Poprawki w walidacji kodów pocztowych
W adresach, wewnątrz elementu KodPocztowy wymagany jest niepusty element Kod lub KodPL.
Najczęściej występujące błędy w walidacji XSD
Włączenie walidacji XSD, może spowodować pojawienie się nowych błędów, najczęstsze z nich to:
cvc-pattern-valid
Znak końca linii w polu tekstowym
Objawia się parą błędów:
1 | cvc-pattern-valid: Value 'KILKA LINIJEK TEKSTU' is not facet-valid with respect to pattern '.*' for type 'TUwagi'. |
Może dotyczyć pola TytulTr i Uwagi na kartach transakcji, jak również pola Nazwa dla osoby prawnej i danych uproszczonych
beneficjenta, DaneAdresowe w danych uproszczonych beneficjenta.
W polach tekstowych, dla których schema narzuca wzorzec wyrażenia regularnego .*, nie mogą występować znaki nowej linii.
Polecam wykonanie normalizacji białych znaków, tj. zastąpienie tabulatorów i znaków końca linii spacjami,
a następnie zastąpienie powtórzonych spacji, pojedynczą spacją.
Niezgodność treści ze wzorcem.
Objawia się parą błędów:
1 | cvc-pattern-valid: Value '' is not facet-valid with respect to pattern '\d{11}' for type 'TPESEL'. |
Należy dostosować pisownię treści do wzorca.
Warto zwrócić uwagę, że podanie pustego elementu, nie jest równoważne pominięciu elementu.
Element, który ma w schemie atrybut minOccurs="0" ale ma ustawiony wzorzec dla typu,
musi być pominięty lub mieć wartość zgodną ze wzorcem.
cvc-complex-type.2.4.a
Niewłaściwa kolejność elementów
Objawia się parą błędów, na przykład:
1 | cvc-complex-type.2.4.d: Invalid content was found starting with element 't:KodPocztowy'. No child element is expected at this point. |
W schemie używane jest grupowanie elementów przy użyciu typu xsd:sequence, nakłada to na implementację obowiązek zachowania tej samej kolejności elementów co w schemie.
Należy sprawdzić w schemie w jakim typie elementu występuje element, który spowodował błąd, i dostosować kolejność elementów do schemy.
Niewłaściwy namespace elementu
Objawia się poniższym błędem, proszę zwrócić uwagę na brak prefixu w elemencie AdresZamieszkania:
1 | cvc-complex-type.2.4.a: Invalid content was found starting with element 'AdresZamieszkania'. One of '{""http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2018/10/10/giif/typy/"":AdresZamieszkania, ""http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2018/10/10/giif/typy/"":DzialalnoscGosp, ""http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2018/10/10/giif/typy/"":KrajUrodzeniaOsoby}' is expected. |
Należy uzupełnić element o prefix lub deklaracje namespace.
Niewłaściwy element
Objawia się takim samym komunikatem jak błąd powyżej.
Może oznaczać:
- literówkę w nazwie elementu, warto zwrócić uwagę na
OsFizycznaOsobaUpowanionaw karcie transferu iOsFizycznaOsobaUpowa**z**nionana innych kartach, - umieszczenie elementu na niewłaściwym poziomie struktury, np. osoby upoważnionej wewnątrz danych osoby fizycznej, a nie obok.
Należy poprawić pisownię lub przenieść elementy na właściwy poziom struktury.
cvc-complex-type.2.4.b
Objawia się błędem podobnym do:
1 | cvc-complex-type.2.4.b: The content of element 't:KodPocztowy' is not complete. One of '{""http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2018/10/10/giif/typy/"":KodPL, ""http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2018/10/10/giif/typy/"":Kod}' is expected. |
Brakuje zawartości w miejscu gdzie jest ona wymagana, należy uzupełnić zawartość,
lub jeśli element jest opcjonalny (ma minOccur="0" w schemie) zupełnie go pominąć.
cvc-complex-type.3.2.2
Objawia się błędem podobnym do:
1 | cvc-complex-type.3.2.2: Attribute 'Korekta' is not allowed to appear in element 'Karta'. |
Może być spowodowany błędną pisownią nazwy atrybutu, nazwy atrybutów są wrażliwe na wielkość znaków!!!
cvc-datatype-valid.1.2.1
Objawia się błędem:
1 | cvc-datatype-valid.1.2.1: '1970-01-01T00:00:00' is not a valid value for 'date'. |
W polach typu xsd:date, można umieszczać wyłącznie datę, nie może być ona uzupełniona o czas,
czyli nie wolno dodawać tam T00:00:00.
Zmiany w systemie testowym
W systemie testowym została uruchomiona taka sama walidacja plików jak w walidatorze off-line.