The DCC API is a multi-module Maven project containing the schema definitions for the NAV DAC (Directive on Administrative Cooperation) M2M interface. The project defines three main layers:

  1. Schema layer (schema) - XSD schema definitions

  2. DTO layer (dto) - Jakarta EE Data Transfer Objects, generated from XSD schemas

  3. BOM layer (bom) - Bill of Materials for centralized dependency version management

1. Project structure

DCC-API
├── bom/
│   ├── bom-all/               # Full BOM (project + external dependencies)
│   └── bom-project/           # Project modules only BOM
├── schema/
│   ├── schema-auth/           # M2M Token API schema
│   ├── schema-dac9/           # DAC9 Global Tax API schema
│   └── schema-oecd-globe/     # OECD GLOBE Pillar Two third-party schemas
├── dto/
│   ├── dto-auth/
│   │   └── dto-auth-jakarta/  # Generated Jakarta EE DTOs from schema-auth
│   ├── dto-dac9/
│   │   └── dto-dac9-jakarta/  # Generated Jakarta EE DTOs from schema-dac9
│   └── dto-oecd-globe/
│       └── dto-oecd-globe-jakarta/  # Generated Jakarta EE DTOs from OECD GLOBE schema
└── docs/                      # Documentation

2. Module hierarchy

2.1. Schema modules

2.1.1. schema-auth

Contains the XSD schema for the M2M authentication token API.

2.1.2. schema-dac9

Contains the API XSD schema for DAC-9 services.

2.1.3. schema-oecd-globe

Contains the OECD GLOBE (Global Anti-Base Erosion) Pillar Two Information Return XML schemas. These are third-party XSD definitions published by the OECD, serving as the basis for content validation of DAC9 global minimum tax reports.

2.2. DTO modules

2.2.1. dto-auth-jakarta

Jakarta EE DTO classes generated from schema-auth XSD schemas using JAXB.

  • Dependencies:

    • hu.gov.nav.schemas.common2:dto-jakarta - Common NTCA 2.0 DTOs

    • hu.gov.nav.dcc.api:schema-auth - Auth schema definitions

2.2.2. dto-dac9-jakarta

Jakarta EE DTO classes generated from schema-dac9 XSD schemas using JAXB.

  • Dependencies:

    • hu.gov.nav.schemas.common2:dto-jakarta - Common NTCA 2.0 DTOs

    • hu.gov.nav.dcc.api:schema-dac9 - DAC9 schema definitions

2.2.3. dto-oecd-globe-jakarta

Jakarta EE DTO classes generated from schema-oecd-globe OECD GLOBE XSD schemas using JAXB. This module is standalone and does not use the Episode mechanism, as the OECD types are completely independent of the NTCA Common types.

  • Dependencies:

    • hu.gov.nav.schemas.common2:core-jakarta - Common NTCA 2.0 core module

    • hu.gov.nav.dcc.api:schema-oecd-globe - OECD GLOBE schema definitions

3. Dependency diagram

DCC API module dependency diagram

4. Namespace strategy

The project uses the following namespace hierarchy:

Namespace pattern Description

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

NTCA 2.0 common schemas (Common project)

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

DCC M2M authentication schemas

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

DCC M2M DAC9 schemas

urn:oecd:ties:globe:v2

OECD GLOBE Information Return main schema

urn:oecd:ties:isoglobetypes:v1

OECD ISO country, currency, and language code types

urn:oecd:ties:globestf:v5

OECD reusable types

The namespaces are organized under schemas.nav.gov.hu, with the DCC/1.0 version identifier, and the m2m prefix indicates the machine-to-machine communication nature.

5. Technology stack

Technology Version / Description

Java

17

Jakarta EE

JAXB 3.0 (Jakarta XML Binding)

Maven

Multi-module POM structure

JAXB plugin

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

JAXB extensions

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

XSD Catalog

OASIS XML Catalog-based namespace resolution

Common schemas

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