A DCC API egy többmodulos Maven projekt, amely a NAV DAC (Directive on Administrative Cooperation) M2M interfész sémadefinícióit tartalmazza. A projekt három fő réteget definiál:
-
Séma réteg (
schema) - XSD sémadefiníciók -
DTO réteg (
dto) - Jakarta EE Data Transfer Object-ek, az XSD sémákból generálva -
BOM réteg (
bom) - Bill of Materials a függőségek központi verziókezeléséhez
1. Projekt struktúra
DCC-API
├── bom/
│ ├── bom-all/ # Teljes BOM (projekt + külső függőségek)
│ └── bom-project/ # Csak projekt modulok BOM-ja
├── schema/
│ ├── schema-auth/ # M2M Token API séma
│ ├── schema-dac9/ # DAC9 Global Tax API séma
│ └── schema-oecd-globe/ # OECD GLOBE Pillar Two harmadik féltől származó sémák
├── dto/
│ ├── dto-auth/
│ │ └── dto-auth-jakarta/ # Generált Jakarta EE DTO-k schema-auth sémából
│ ├── dto-dac9/
│ │ └── dto-dac9-jakarta/ # Generált Jakarta EE DTO-k schema-dac9 sémából
│ └── dto-oecd-globe/
│ └── dto-oecd-globe-jakarta/ # Generált Jakarta EE DTO-k OECD GLOBE sémából
└── docs/ # Dokumentáció
2. Modul hierarchia
2.1. Séma modulok
2.1.1. schema-auth
Az M2M autentikációs token API XSD sémáját tartalmazza.
2.1.2. schema-dac9
A DAC-9 szolgáltatások API XSD sémáját tartalmazza.
2.1.3. schema-oecd-globe
Az OECD GLOBE (Global Anti-Base Erosion) Pillar Two Information Return XML sémáit tartalmazza. Ezek harmadik féltől származó, az OECD által publikált XSD definíciók, amelyek a DAC9 globális minimumadó jelentés tartalmi validációjának alapjául szolgálnak.
2.2. DTO modulok
2.2.1. dto-auth-jakarta
Jakarta EE DTO osztályok, amelyek az schema-auth XSD sémáiból generálódnak JAXB segítségével.
-
Függőségek:
-
hu.gov.nav.schemas.common2:dto-jakarta- Közös NTCA 2.0 DTO-k -
hu.gov.nav.dcc.api:schema-auth- Auth séma definíciók
-
2.2.2. dto-dac9-jakarta
Jakarta EE DTO osztályok, amelyek az schema-dac9 XSD sémáiból generálódnak JAXB segítségével.
-
Függőségek:
-
hu.gov.nav.schemas.common2:dto-jakarta- Közös NTCA 2.0 DTO-k -
hu.gov.nav.dcc.api:schema-dac9- DAC9 séma definíciók
-
2.2.3. dto-oecd-globe-jakarta
Jakarta EE DTO osztályok, amelyek az schema-oecd-globe OECD GLOBE XSD sémáiból generálódnak JAXB segítségével.
Ez a modul önálló, nem használ Episode mechanizmust, mivel az OECD típusok teljesen függetlenek az NTCA Common típusoktól.
-
Függőségek:
-
hu.gov.nav.schemas.common2:core-jakarta- Közös NTCA 2.0 core modul -
hu.gov.nav.dcc.api:schema-oecd-globe- OECD GLOBE séma definíciók
-
3. Függőségi diagram
4. Névtér stratégia
A projekt az alábbi névtér hierarchiát alkalmazza:
| Névtér minta | Leírás |
|---|---|
|
NTCA 2.0 közös sémák (Common projekt) |
|
DCC M2M autentikációs sémák |
|
DCC M2M DAC9 sémák |
|
OECD GLOBE Information Return fő séma |
|
OECD ISO ország-, pénznem- és nyelvkód típusok |
|
OECD újrafelhasználható típusok |
A névterek a schemas.nav.gov.hu alatt szerveződnek, a DCC/1.0 verziónévvel, az m2m prefix pedig
a gépi kommunikáció jellegét jelöli.
5. Technológiai stack
| Technológia | Verzió / Leírás |
|---|---|
Java |
17 |
Jakarta EE |
JAXB 3.0 (Jakarta XML Binding) |
Maven |
Multi-module POM struktúra |
JAXB plugin |
|
JAXB kiegészítők |
Fluent API ( |
XSD Catalog |
OASIS XML Catalog alapú névtér feloldás |
Közös sémák |
|