Kolejne zmiany w walidatorze

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
2
cvc-pattern-valid: Value 'KILKA LINIJEK TEKSTU' is not facet-valid with respect to pattern '.*' for type 'TUwagi'.
cvc-type.3.1.3: The value 'Te same KILKA LINIEJEK TEKSTU' of element 'Uwagi' is not valid.

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
2
cvc-pattern-valid: Value '' is not facet-valid with respect to pattern '\d{11}' for type 'TPESEL'.
cvc-type.3.1.3: The value '' of element 't:PESEL' is not valid.

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
2
cvc-complex-type.2.4.d: Invalid content was found starting with element 't:KodPocztowy'. No child element is expected at this point.
cvc-complex-type.2.4.a: Invalid content was found starting with element 't:Ulica'. One of '{""http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2018/10/10/giif/typy/"":KodPocztowy}' is expected.

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 OsFizycznaOsobaUpowaniona w karcie transferu i OsFizycznaOsobaUpowa**z**niona na 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.