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:

  1. Séma réteg (schema) - XSD sémadefiníciók

  2. DTO réteg (dto) - Jakarta EE Data Transfer Object-ek, az XSD sémákból generálva

  3. 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

DCC API modul 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

http://schemas.nav.gov.hu/NTCA/2.0/common/*

NTCA 2.0 közös sémák (Common projekt)

http://schemas.nav.gov.hu/DCC/1.0/m2m/token/*

DCC M2M autentikációs sémák

http://schemas.nav.gov.hu/DCC/1.0/m2m/dac9/*

DCC M2M DAC9 sémák

urn:oecd:ties:globe:v2

OECD GLOBE Information Return fő séma

urn:oecd:ties:isoglobetypes:v1

OECD ISO ország-, pénznem- és nyelvkód típusok

urn:oecd:ties:globestf:v5

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

org.jvnet.jaxb:jaxb-maven-plugin:4.0.9

JAXB kiegészítők

Fluent API (jaxb2-fluent-api:3.0), Annotate (jaxb-plugin-annotate:4.0.8)

XSD Catalog

OASIS XML Catalog alapú névtér feloldás

Közös sémák

hu.gov.nav.schemas.common2:2.0.0-rc.1 (NTCA Common)