Környezet / Environment
[x] https://api-test.onlineszamla.nav.gov.hu
HĂvott API operáciĂł / called API operation
[x] /manageInvoice
A kérés verziója / version of the request
[x] 3.0
A problĂ©ma rövid Ă©s tömör leĂrása / Clear and concise description of the problem
Küldeném be az első teszt számlát a 3.0-val, de sajnos feldolgozási hibára fut az XML és ABORTED lesz a beküldést követően.
XML hiba:
XML contains on line: [18] and column: [26] error: [cvc-complex-type.2.4.a: Invalid content was found starting with element '{"http://schemas.nav.gov.hu/OSA/3.0/data":simpleAddress}'. One of '{"http://schemas.nav.gov.hu/OSA/3.0/base":simpleAddress, "http://schemas.nav.gov.hu/OSA/3.0/base":detailedAddress}' is expected.]
HibakĂłd: SCHEMA_VIOLATION
A ToDo alapján minden lépést megcsináltam már.
Az InvoiceData fejlĂ©ce Ăgy nĂ©z ki:
<InvoiceData xmlns="http://schemas.nav.gov.hu/OSA/3.0/data" xmlns:base="http://schemas.nav.gov.hu/OSA/3.0/base" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.nav.gov.hu/OSA/3.0/data invoiceData.xsd">
A cĂm meg ebben a struktĂşrában van megadva:
<simpleAddress>
<base:countryCode>HU</base:countryCode>
<base:postalCode>1111</base:postalCode>
<base:city>Budapest</base:city>
<base:additionalAddressDetail>Pelda utca 1.</base:additionalAddressDetail>
</simpleAddress>
Próbáltam base nélkül is, de akkor sem megy. A fejléc a rossz vagy a simpleAddress-nél a namespace használat?
Kérnék egy konkrét mező felsorolást, hogy az eddig tagokat hol kell megelőzze base: name space.
Pl. countryCode, postalCode, city, additionalAddressDetail
Közben megfejtettem, hogy a simpleAddress elĂ© is kell, de jĂł lenne, ha ezt nem egyesĂ©vel kellene kitalálni, mert nem Ă©rtem a logikáját, Ăgy jĂłl jönne egy komplex mezĹ‘felsorolás. Az áfakulcsnál is belefutottam ebbe.
Az alapján már vĂ©gkĂ©pp teljesen zavaros az egĂ©sz, mert ott Ăgy nĂ©z ki:
<supplierTaxNumber>
<base:taxpayerId></base:taxpayerId>
<base:vatCode></base:vatCode>
<base:countyCode></base:countyCode>
</supplierTaxNumber>
Tehát itt meg nem kell base-t alkalmazni az eggyel magasabb szinten (supplierTaxnumber), mĂg a simpleAddress-nĂ©l meg kell.
A vevőnél szintén elakadok. Ott hol kell a base és hol nem?
A vevőnél ezt a megadási módot nem fogadja el, pedig a supplierTaxNumber-nél és e logika szerint van megadva:
<customerVatData>
<customerTaxnumber>
<base:taxpayerId></base:taxpayerId>
<base:vatCode></base:vatCode>
<base:countyCode></base:countyCode>
</customerTaxnumber>
</customerVatData>
@nbeeps2 a Changelog-ot egyébként olvastad?
Abban a 3.2.1 fejezet pont ezekről értekezik.
A vevőnél ezt a megadási módot nem fogadja el, pedig a supplierTaxNumber-nél és e logika szerint van megadva:
<customerVatData> <customerTaxnumber> <base:taxpayerId></base:taxpayerId> <base:vatCode></base:vatCode> <base:countyCode></base:countyCode> </customerTaxnumber> </customerVatData>
@nbeeps2 A tag-ok elĹ‘tti nĂ©vtĂ©r megjelenĂtĂ©s az XML elejĂ©n törtĂ©nĹ‘ nĂ©vtĂ©r besorolástĂłl fĂĽgg.
Ha a data XML amit előállĂtasz az XSD valid akkor a bekĂĽldĂ©snĂ©l is validnak kell lennie. Validáld le ha nem valid akkor az XML nem jĂł Ă©s a validáciĂł ki fogja Ărni, hogy hol a hiba.
@lvitya586 Igen olvastam, ahogyan Ărtam is már minden lĂ©pĂ©st megcsináltam. Viszont pont ez a rĂ©sz rĂ©buszokban fogalmazott, ugyan volt forrás pĂ©lda is, de pont nem volt a customer ág rĂ©szletezve. Mivel nem következetes a kitöltĂ©s (lásd 2. bejegyzĂ©s), Ăgy nagyon nehĂ©zkes Ăgy átĂrni az XML-t, hogy találgatni kell, hogy hova kell a base: Ă©s hova nem.
"Három komplex adattĂpus esetĂ©n át kell vezetne a Base XSD namespace Ă©rtĂ©kĂ©t a gyermek tagekben: TaxNumberType, SimpleAddressType, DetailedAddressType"
Nekem ez a megfogalmazás túl általános. Így kellene fogalmazni (ha a base az alap kiinduló pont):
A countryCode, postalCode, city, additionalAddressDetail, simpleAddress mezőket nevezd át erre: base:countryCode, base:postalCode, base:city, base:additionalAddressDetail, base:simpleAddress
Ehhez kellene nekem egy komplett mezĹ‘felsorolás. Rákeresek ezekre a tagokra Ă©s beteszem elĂ© a base: rĂ©szletet. Ha már Ăşgy hĂvjuk átállási mutatĂł lĂ©pĂ©srĹ‘l-lĂ©pĂ©sre, akkor ez Ă©rthetĹ‘bb lenne Ă©s kevesebb helyet is foglalna, mint a nem teljesĂ©rtĂ©kű pĂ©lda forráskĂłd, amit mellĂ©keltek.
@renced42: az a baj, hogy hĂĽlyesĂ©get Ăr ki, lásd nyitĂł hozzászĂłlásom. Ott pĂ©ldául azt Ărta, hogy a detailedAddress lenne az elvárt Ă©rtĂ©k, miközben nem az volt a gond, hanem az, hogy a simpleaddress elĂ© be kellett tenni a base: szĂłrĂ©szletet.
A vevőnél ez volt a gond, csak annyira a namespace-re koncentráltam, hogy nem vettem észre az elgépelést: customerTaxnumber helyett customerTaxNumber
@renced42 nyissak Ăşj issue-t vagy javĂtjátok a dokumentáciĂłban? Mert onnan szedtem a customerTaxnumber rĂ©szt. 82-83. oldalon (eredeti oldalszámozás a pdf alján) Ăgy szerepel mindenhol.
@renced42 nyissak Ăşj issue-t vagy javĂtjátok a dokumentáciĂłban? Mert onnan szedtem a customerTaxnumber rĂ©szt. 82-83. oldalon (eredeti oldalszámozás a pdf alján) Ăgy szerepel mindenhol.
@nbeeps2 KĂ©rlek, nyiss egy DokumentáciĂłs hiba issue-t, Azt figyeli @NTCA-supporter is :) Ă©s javĂtják.
Ăšgy látom, hogy a 43. ábra A CustomerVatDataType felĂ©pĂtĂ©sĂ©t követĹ‘ táblázatban mindenhol kis "n" betűs a customerTaxNumber szöveg.
@nbeeps2 nem kell Ăşj issue, felĂrtam ezt is.
Köszi
@NTCA-supporter ooh, sorry közben pont leadtam.
Kedves @nbeeps2 kérlek zárd az issuet, ha megoldódott a problémád, köszi!
Most helpful comment
A vevőnél ez volt a gond, csak annyira a namespace-re koncentráltam, hogy nem vettem észre az elgépelést: customerTaxnumber helyett customerTaxNumber