Próbuję testować interfejs do przesyłania plików JPK i już na początku wychodzą ładne kwiatki.
Aktualna wersja interfejsu do przesyłania JPK 1.6 zawiera m.in. następujące błędy
1. Schemat XSD dla pliku initupload.xml
a) przy wielu elementach zawiera zbędną (bo to są wartości domyślne)
specyfikację liczby wystąpień elementów
minOccurs="1" maxOccurs="1"
To jest niepotrzebne ale od biedy mogłoby być, gorzej jest, że
b) ograniczenia na element Document powodują, że w danej sesji można
przesłać tylko jeden plik JPK (ewentualnie jeżeli jest duży to
podzielony na kilka części), ale tylko jeden.
Z kontekstu wynika, że nie tak ma być ponieważ element ten jest
zawarty w elemencie DocumentList co w oczywisty sposób sugeruje, że
elementów Document może być wiele (gdyby było inaczej byłoby bez sensu
również dlatego, że dla każdego pliku JPK trzeba by otwierać nową sesję
generować initupload.xml i podpisywać go podpisem kwalifikowanym).
Ograniczenia postawione na element Document
<xs:element name="Document" minOccurs="1">
powodują, że na liście może wystąpić tylko jeden element Document,
ponieważ brak maxOccurs oznacza, że przyjmowane jest 1 jako górne
ograniczenie. Zamiast zbędnego minOccurs="1", powinno być
maxOccurs="unbouded".
2. Niepoprawne jest również ostatnie zdanie na stronie 5 specyfikacji, które mówi
"Dla każdego z plików JPK zostaną wykonane następujące operacje:"
po czym w diagramie jest pierwszy krok "Klient generuje jednorazowy klucz
szyfrujący 256-bitowy", itd.
To sugeruje, że klucz jest generowany dla każdego pliku osobno (co w pewnym sensie byłoby
zgodne z powyższym błędnym ograniczeniem na elementy Document), ale to nie jest prawdą
chociażby z powodu tego, że na końcu diagramu jest warunek tworzący pętlę (kierujący
przetwarzanie do kolejnego pliku JPK poniżej kroku generowania klucza).
Ostatnie zdanie na stronie 5 powinno brzmieć jakoś tak
"Przygotowanie plików JPK do wysłania odbywa się zgodnie z następującym schematem:"
WF