Környezet / Environment
[x] https://api-test.onlineszamla.nav.gov.hu
Hívott API operáció / called API operation
[] /manageAnnulment
[x] /manageInvoice
[] /queryInvoiceChainDigest
[] /queryInvoiceCheck
[] /queryInvoiceData
[] /queryInvoiceDigest
[] /queryTransactionList
[x] /queryTransactionStatus
[] /tokenExchange
A kérés verziója / version of the request
[] 1.1
[] 2.0
[x] 3.0
A requestId értéke / requestId value
2020E000000126030447
```
A probléma rövid és tömör leírása / Clear and concise description of the problem
Az alábbi "SCHEMA_VIOLATION" üzenetet kapom azokban a sorokban, ahol adómentesség miatt használom
a "vatExemption" szegmenscsoportot:
"_XML contains on line: [93] and column: [29] error: [cvc-complex-type.2.4.d:
Invalid content was found starting with element 'vatExemption'. No child element is expected at this point.]_"
Egyéb tartalom / Additional content
Az eredetileg beküldött szegmensek így néznek ki a sorokban, én nem találok bennük hibát.
<lineAmountsNormal>
<lineNetAmountData>
<lineNetAmount>220.96</lineNetAmount>
<lineNetAmountHUF>73226.14</lineNetAmountHUF>
</lineNetAmountData>
<lineVatRate>
<vatPercentage>0.00</vatPercentage>
<vatExemption>
<case>KBAET</case>
<reason>adómentes Közösségen belüli termékértékesítés</reason>
</vatExemption>
</lineVatRate>
<lineVatData>
<lineVatAmount>0.00</lineVatAmount>
<lineVatAmountHUF>0.00</lineVatAmountHUF>
</lineVatData>
<lineGrossAmountData>
<lineGrossAmountNormal>220.96</lineGrossAmountNormal>
<lineGrossAmountNormalHUF>73226.14</lineGrossAmountNormalHUF>
</lineGrossAmountData>
</lineAmountsNormal>
Kedves @EnokhSys a lineVatRate egy choice vagyis csak egy elem szereplhet benne a 8 választhatóból.
vatPercentage és vatExemption egyszerre nem lehet mind kettő.
A példád esetében a vatPercentage nem kell.
Kedves @renced42 és @KMGY100, köszi szépen. Az a helyzet, hogy benne volt a programomban ez a feltétel, hogy 0% esetén ne adja át a "vatPercentage"-t de tegnap marha mód kiszedtem(!), mert azt hittem, hogy nincs jelentősége, csak véletlenül tettem be néhány hónapja, amikor írtam a v2.0-t. Tegnap, a v3-as dokumentációját olvasva nem esett le, hogy az úgy volt jó, és nem kellene kiszednem, egyszerűen átsiklottam felette. Ezért most megnéztem a v2-es dokumentációját is, íme a két doksi összehasonlítva:

@renced42, a régi doksiban benne volt aláhúzva és kiemelve, hogy "az alábbi hat elem közül pontosan az egyiket tartalmazhatják", de ezt a v3-asból kiszedtétek. Javaslom, tegyétek vissza légyszi, mert ez fontos info, akár egy új fejlesztőnek, akár az ilyen véletlenek elkerülése végett.
@renced42 Jut eszembe, még valami: ez a hibaüzenet amit kaptam, teljesen megtévesztő. Ha a "vatPercentage"-nek nem lehet 0 az értéke, akkor ez legyen az üzenet, és ne keverje bele a "vatExemption"-t, mert ahhoz nincs köze.
@renced42 Jut eszembe, még valami: ez a hibaüzenet amit kaptam, teljesen megtévesztő. Ha a "vatPercentage"-nek nem lehet 0 az értéke, akkor ez legyen az üzenet, és ne keverje bele a "vatExemption"-t, mert ahhoz nincs köze.
Kedves @EnokhSys A hibaüzenetet a standard XSD ellenőrző adja vissza. Azért megtévesztő mert nem jól ételmezed a hibaüzenetet.
Invalid content was found starting with element 'vatExemption'.
Ez azt jelenti, hogy ez a sor hibás.
No child element is expected at this point.]_"
Ez pedig az, hogy, miért hibás az a sor, jelen esetben nem várható itt több gyermek elem.
Én nem láttam, a vatPercentage utaló hibaüzenetet, de lehet, hogy elkerülte a figyelmem
@renced42 Jut eszembe, még valami: ez a hibaüzenet amit kaptam, teljesen megtévesztő. Ha a "vatPercentage"-nek nem lehet 0 az értéke, akkor ez legyen az üzenet, és ne keverje bele a "vatExemption"-t, mert ahhoz nincs köze.
Kedves @EnokhSys A hibaüzenetet a standard XSD ellenőrző adja vissza. Azért megtévesztő mert nem jól ételmezed a hibaüzenetet.
Kedves @renced42 , imádlak, de Te nem érted a problémámat! :-)) Az elsődleges hibát nem a "vatExemption" okozza, hanem az előtt levő sor, azaz, ha a "vatPercentage"-nak 0 az értéke, és emellett átadom a "vatExemption" szegmenscsoportot is. Ugyanis, most visszatettem a "vatPercentage"-re azt a feltételt, hogy ne adja át, ha 0 az értéke, és az export számlát simán befogadta a tesztrendszer.
Invalid content was found starting with element 'vatExemption'.
Ez azt jelenti, hogy ez a sor hibás.
No child element is expected at this point.]_"
Ez pedig az, hogy, miért hibás az a sor, jelen esetben nem várható itt több gyermek elem.Én nem láttam, a vatPercentage utaló hibaüzenetet, de lehet, hogy elkerülte a figyelmem
Hát ez az!! Ez a probléma, hogy miért nem kaptam erre is hibaüzenetet, hiszen, ha megnézed a topikindító hozzászólásomat, a "vatPercentage"-t 0 értékkel adtam át.
Érted már, hogy itt véletlenül dupla megtévesztés történik, amit orvosolnotok kellene:
@EnokhSys
"nem kapok hibaüzenetet arra, hogy "vatPercentage"-nek 0 az értéke"
Nem fogsz mert ez XSD szerint valid értéket tartalmaz.
Az egy másik dolog, hogy ennek a tagnak üzletileg lehet-e 0.00 az értéke.
"viszont kapok hibaüzenetet a következő sorban található "vatExemption"-re, amely még csak nem is értelmes. (Mi a frászt jelent az, hogy "No child element is expected at this point.", amikor az lenne az értelmes üzenet angolul, hogy a vatRate csoporton belül csak egy element adható át.)"
Ez egy XSD validátor hibaüzenet, automatikusan generálódik nem az alkalmazásban programozzuk. Ha validálod az XML-ed bármilyen XSD validátorral akkor te is ilyen hibát fogsz kapni, Tehát eljesen jó a hibaüzenet :)
"a v3-as dokumentációból kiszedtetek egy fontos, aláhúzott figyelmeztetést, amely benne volt a v2-ben és amely segített volna a tájékozódásban"
Megerősítésként vissza fogjuk tenni a doksiba.
Kérlek zárd az Issuet. Köszi!
Plusz infoként, hogy azért nem kapsz a 0 értékre hibaüzenetet, mert az xml nem sémavalid.
Csak akkor futnak meg az üzleti validációk, ha séma szinten rendben van minden.
Illetve azért kapsz a vatExemtion-ra üzenetet, mert a choice-on belül megadod a vatPercentage tag-et, ez oké, és innentől kezdve mást nem adhatsz meg, így nyilván az lesz a hibás, amit pluszban nem vártként megadsz.
Üdv
@renced42 Oké, köszi zárom a topikot.
Plusz infoként, hogy azért nem kapsz a 0 értékre hibaüzenetet, mert az xml nem sémavalid.
Csak akkor futnak meg az üzleti validációk, ha séma szinten rendben van minden.
Illetve azért kapsz a vatExemtion-ra üzenetet, mert a choice-on belül megadod a vatPercentage tag-et, ez oké, és innentől kezdve mást nem adhatsz meg, így nyilván az lesz a hibás, amit pluszban nem vártként megadsz.
Üdv
Kedves @NTCA-supporter, köszi a választ, ez így világos. Amint ebből az esetből is kiderült, az a fontos, hogy a dokumentációból minden részlet-információ kiderüljön, amely segíti az interfész fejlesztését. Abból kell kiindulni, hogy a fejlesztők nagyobb része nem olyan profi az XML/XSD területen, mint ti.