From 087ca3d6d906d7e8edef01b6ef1d5149cefd5791 Mon Sep 17 00:00:00 2001
From: eLBati <elbaddy@gmail.com>
Date: Fri, 17 Jan 2025 15:12:03 +0100
Subject: [PATCH] [MIG] l10n_it_account: Migration to 18.0

---
 l10n_it_account/__init__.py                   |   45 +-
 l10n_it_account/__manifest__.py               |   10 +-
 .../16.0.1.0.0/post-migrate_balance_sign.py   |   24 -
 l10n_it_account/models/__init__.py            |    3 -
 l10n_it_account/models/account_account.py     |   94 --
 l10n_it_account/models/account_group.py       |   88 -
 l10n_it_account/models/res_lang.py            |   35 -
 .../reports/account_reports_view.xml          |   46 +-
 l10n_it_account/tests/test_l10n_it_account.py |   56 -
 l10n_it_account/tools/__init__.py             |    1 -
 l10n_it_account/tools/account_tools.py        |  116 --
 l10n_it_account/tools/xsd/Schema_VFSM10.xsd   |  553 -------
 .../Schema_del_file_xml_FatturaPA_v1.2.2.xsd  | 1454 -----------------
 .../tools/xsd/xmldsig-core-schema.xsd         |  318 ----
 l10n_it_account/views/account_menuitem.xml    |    1 +
 l10n_it_account/views/account_view.xml        |   39 -
 l10n_it_account/views/product_view.xml        |   16 -
 .../views/res_config_settings_views.xml       |    4 +-
 l10n_it_account/wizards/__init__.py           |    3 -
 .../wizards/base_language_install.py          |   18 -
 20 files changed, 66 insertions(+), 2858 deletions(-)
 delete mode 100644 l10n_it_account/migrations/16.0.1.0.0/post-migrate_balance_sign.py
 delete mode 100644 l10n_it_account/models/account_account.py
 delete mode 100644 l10n_it_account/models/account_group.py
 delete mode 100644 l10n_it_account/models/res_lang.py
 delete mode 100644 l10n_it_account/tools/__init__.py
 delete mode 100644 l10n_it_account/tools/account_tools.py
 delete mode 100644 l10n_it_account/tools/xsd/Schema_VFSM10.xsd
 delete mode 100644 l10n_it_account/tools/xsd/Schema_del_file_xml_FatturaPA_v1.2.2.xsd
 delete mode 100644 l10n_it_account/tools/xsd/xmldsig-core-schema.xsd
 delete mode 100644 l10n_it_account/views/account_view.xml
 delete mode 100644 l10n_it_account/views/product_view.xml
 delete mode 100644 l10n_it_account/wizards/__init__.py
 delete mode 100644 l10n_it_account/wizards/base_language_install.py

diff --git a/l10n_it_account/__init__.py b/l10n_it_account/__init__.py
index 0a0612ae8e4d..ac06c2c0cff8 100644
--- a/l10n_it_account/__init__.py
+++ b/l10n_it_account/__init__.py
@@ -1,15 +1,48 @@
 # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
 
 from . import models
-from . import wizards
-from . import tools
 from odoo import api, SUPERUSER_ID
 
+MODEL = "account.tax"
+OLD_MODEL = "account.tax.kind"
+RENAMED_FIELDS = [
+    (
+        "law_reference",
+        "l10n_it_law_reference",
+    ),
+]
+
 
 def _l10n_it_account_post_init(cr, registry):
     env = api.Environment(cr, SUPERUSER_ID, {})
-    env["account.account"].set_account_types_negative_sign()
 
-    lang = env["res.lang"]
-    if lang._lang_get("it_IT"):
-        lang.update_menu_finance_it_translation()
+    openupgrade.logged_query(
+        env.cr,
+        sql.SQL(f"""
+            UPDATE
+                {MODEL.replace(".", "_")}
+            SET
+                l10n_it_exempt_reason = kind_id.code
+            FROM
+                {OLD_MODEL.replace(".", "_")} AS kind
+            WHERE
+                {MODEL.replace(".", "_")}.kind_id = kind.id
+                AND {MODEL.replace(".", "_")}.kind_id IS NOT NULL
+        """),
+    )
+
+    field_spec = []
+    for renamed_field in RENAMED_FIELDS:
+        old_field, new_field = renamed_field
+        field_spec.append(
+            (
+                MODEL,
+                MODEL.replace(".", "_"),
+                old_field,
+                new_field,
+            )
+        )
+    openupgrade.rename_fields(
+        env,
+        field_spec,
+    )
diff --git a/l10n_it_account/__manifest__.py b/l10n_it_account/__manifest__.py
index f292e49f23ec..0e1815c20614 100644
--- a/l10n_it_account/__manifest__.py
+++ b/l10n_it_account/__manifest__.py
@@ -10,7 +10,7 @@
 {
     "name": "ITA - Contabilità base",
     "summary": "Modulo base usato come dipendenza di altri moduli contabili",
-    "version": "16.0.1.1.3",
+    "version": "18.0.1.0.0",
     "development_status": "Production/Stable",
     "category": "Hidden",
     "author": "Agile Business Group, Abstract, Odoo Community Association (OCA)",
@@ -21,25 +21,19 @@
         "account_tax_balance",
         "date_range",
         "web",
+        "l10n_it",
     ],
     "data": [
         "views/account_menuitem.xml",
         "views/partner_view.xml",
-        "views/product_view.xml",
         "views/res_config_settings_views.xml",
         "reports/account_reports_view.xml",
-        "views/account_view.xml",
     ],
     "assets": {
         "web.report_assets_common": [
             "l10n_it_account/static/src/css/*.css",
         ]
     },
-    "external_dependencies": {
-        "python": [
-            "xmlschema",
-        ],
-    },
     "installable": True,
     "post_init_hook": "_l10n_it_account_post_init",
 }
diff --git a/l10n_it_account/migrations/16.0.1.0.0/post-migrate_balance_sign.py b/l10n_it_account/migrations/16.0.1.0.0/post-migrate_balance_sign.py
deleted file mode 100644
index 280e54502c90..000000000000
--- a/l10n_it_account/migrations/16.0.1.0.0/post-migrate_balance_sign.py
+++ /dev/null
@@ -1,24 +0,0 @@
-#  Copyright 2022 Simone Rubino - TAKOBI
-#  License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
-
-from openupgradelib import openupgrade
-
-
-@openupgrade.migrate()
-def migrate(env, installed_version):
-    # Assign the sign of the account type to the account
-    if openupgrade.table_exists(env.cr, "account_account_type"):
-        openupgrade.logged_query(
-            env.cr,
-            """
-            UPDATE account_account
-            SET
-                account_balance_sign = aat.account_balance_sign
-            FROM
-                account_account_type aat
-            WHERE
-                aat.id = account_account.user_type_id
-            """,
-        )
-    else:
-        env["account.account"].set_account_types_negative_sign()
diff --git a/l10n_it_account/models/__init__.py b/l10n_it_account/models/__init__.py
index 46df1f7f948d..bf09a2c3496a 100644
--- a/l10n_it_account/models/__init__.py
+++ b/l10n_it_account/models/__init__.py
@@ -1,6 +1,3 @@
 # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
 
-from . import account_account
-from . import account_group
 from . import account_tax
-from . import res_lang
diff --git a/l10n_it_account/models/account_account.py b/l10n_it_account/models/account_account.py
deleted file mode 100644
index f299c91bcc89..000000000000
--- a/l10n_it_account/models/account_account.py
+++ /dev/null
@@ -1,94 +0,0 @@
-# Copyright 2022 Simone Rubino - TAKOBI
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-
-from odoo import _, api, fields, models
-from odoo.exceptions import ValidationError
-
-ACCOUNT_TYPES_NEGATIVE_SIGN = [
-    "equity_unaffected",
-    "equity",
-    "income",
-    "income_other",
-    "liability_payable",
-    "liability_credit_card",
-    "asset_prepayments",
-    "liability_current",
-    "liability_non_current",
-]
-
-
-class Account(models.Model):
-    _inherit = "account.account"
-
-    account_balance_sign = fields.Integer(
-        default=1,
-        string="Balance sign",
-    )
-
-    @api.model_create_multi
-    def create(self, vals_list):
-        for vals in vals_list:
-            if "account_balance_sign" not in vals and "account_type" in vals:
-                if vals["account_type"] in ACCOUNT_TYPES_NEGATIVE_SIGN:
-                    vals["account_balance_sign"] = -1
-        return super().create(vals_list)
-
-    @api.model
-    def set_account_types_negative_sign(self):
-        for account_type in ACCOUNT_TYPES_NEGATIVE_SIGN:
-            account_ids = self.env["account.account"].search(
-                [("account_type", "=", account_type)]
-            )
-            for account_id in account_ids:
-                account_id.with_context(
-                    skip_check_balance_sign_coherence=True
-                ).account_balance_sign = -1
-
-    def check_balance_sign_value(self):
-        """
-        Checks whether `account_balance_sign` gets a correct value of +1 or -1.
-        """
-        if any(t.account_balance_sign not in (-1, 1) for t in self):
-            raise ValidationError(_("Balance sign's value can only be 1 or -1."))
-
-    @api.constrains("account_balance_sign")
-    def check_balance_sign_coherence(self):
-        """
-        Checks whether changes upon `account_balance_sign` create incoherencies
-        in account groups' balance signs.
-        """
-        self.check_balance_sign_value()
-
-        acc_obj = self.env["account.account"]
-        key_val_dict = dict(self._fields["account_type"].selection)
-        for key in key_val_dict:
-            accounts = acc_obj.search(
-                [("account_type", "=", key)],
-            )
-            # Avoid check upon empty recordset to make it faster
-            if accounts:
-                accounts.check_balance_sign_coherence_group()
-
-    @api.constrains("group_id")
-    def check_balance_sign_coherence_group(self):
-        """
-        Checks whether adding an account to (or removing it from) a group
-        creates incoherencies in account groups' balance signs.
-        """
-        groups = self.mapped("group_id")
-        # Avoid check upon empty recordset to make it faster
-        if groups:
-            groups.check_balance_sign_coherence()
-
-    def have_same_sign(self):
-        """
-        Checks account' signs.
-        :return: True if there's nothing to check or there's only one account
-        to check; else, returns True or False according to whether every
-        account has the same value for `account_balance_sign` (if it's not 0).
-        """
-        to_check = self.filtered(lambda a: a.account_balance_sign)
-        if len(to_check) <= 1:
-            return True
-        benchmark = to_check[0].account_balance_sign
-        return all(a.account_balance_sign == benchmark for a in to_check)
diff --git a/l10n_it_account/models/account_group.py b/l10n_it_account/models/account_group.py
deleted file mode 100644
index 27d671b4503f..000000000000
--- a/l10n_it_account/models/account_group.py
+++ /dev/null
@@ -1,88 +0,0 @@
-# Copyright 2022 Simone Rubino - TAKOBI
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-
-from odoo import _, api, fields, models
-from odoo.exceptions import ValidationError
-
-
-class AccountGroup(models.Model):
-    _inherit = "account.group"
-
-    account_ids = fields.One2many(
-        comodel_name="account.account",
-        inverse_name="group_id",
-        string="Accounts",
-    )
-    account_balance_sign = fields.Integer(
-        compute="_compute_account_balance_sign",
-        string="Balance sign",
-    )
-
-    @api.constrains("account_ids", "parent_id")
-    def check_balance_sign_coherence(self):
-        """
-        Checks whether every group (plus parents and subgroups) have the same
-        balance sign. This is done by first retrieving every group's progenitor
-        and then checking, for each of them, the account types' for accounts
-        linked to such progenitor group and its subgroups.
-        """
-        if self.env.context.get("skip_check_balance_sign_coherence"):
-            return
-        done_group_ids, progenitor_ids = [], []
-        for group in self:
-            if group.id in done_group_ids:
-                continue
-            progenitor = group.get_group_progenitor()
-            progenitor_ids.extend(progenitor.ids)
-            done_group_ids.extend(progenitor.get_group_subgroups().ids)
-
-        progenitors = self.browse(tuple(set(progenitor_ids)))
-        for progenitor in progenitors:
-            accounts = progenitor.get_group_accounts()
-            if not accounts.have_same_sign():
-                raise ValidationError(
-                    _("Incoherent balance signs for '{}' and its subgroups.").format(
-                        progenitor.name_get()[0][-1]
-                    )
-                )
-
-    def _compute_account_balance_sign(self):
-        for group in self:
-            group.account_balance_sign = group.get_account_balance_sign()
-
-    def get_account_balance_sign(self):
-        self.ensure_one()
-        progenitor = self.get_group_progenitor()
-        accounts = progenitor.get_group_accounts()
-        if accounts:
-            return accounts[0].account_balance_sign
-        return 1
-
-    def get_group_accounts(self):
-        """Retrieves every account from `self` and `self`'s subgroups."""
-        return (self + self.get_group_subgroups()).mapped("account_ids")
-
-    def get_group_progenitor(self):
-        self.ensure_one()
-        if not self.parent_id:
-            return self
-        return self.get_group_parents().filtered(lambda g: not g.parent_id)
-
-    def get_group_parents(self):
-        """
-        Retrieves every parent for group `self`.
-        :return: group's parents as recordset, or empty recordset if `self`
-        has no parents. If a recursion is found, an error is raised.
-        """
-        self.ensure_one()
-        parent_ids = []
-        parent = self.parent_id
-        while parent:
-            parent_ids.append(parent.id)
-            parent = parent.parent_id
-        return self.browse(parent_ids)
-
-    def get_group_subgroups(self):
-        """Retrieves every subgroup for groups `self`."""
-        subgroups_ids = self.search([("id", "child_of", self.ids)])
-        return subgroups_ids
diff --git a/l10n_it_account/models/res_lang.py b/l10n_it_account/models/res_lang.py
deleted file mode 100644
index cce2e4a9f205..000000000000
--- a/l10n_it_account/models/res_lang.py
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 2024 Sergio Zanchetta (PNLUG APS - Gruppo Odoo)
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-
-from odoo import models
-
-
-class Lang(models.Model):
-    _inherit = "res.lang"
-
-    def toggle_active(self):
-        res = super().toggle_active()
-
-        if "it_IT" in [lang.code for lang in self.filtered(lambda L: L.active)]:
-            self.update_menu_finance_it_translation()
-
-        return res
-
-    def update_menu_finance_it_translation(self):
-        """In Odoo the inheritance mechanism is not yet implemented for menus.
-        Changing a menu item name doesn't create a new string to be translated
-        but overwrites the source string of the original module to which the menu
-        belongs to. This is a workaround that allows the translated string to be
-        modified in the same way.
-        """
-        menu_finance_id = self.env["ir.model.data"]._xmlid_to_res_id(
-            "account.menu_finance"
-        )
-        menu_finance = self.env["ir.ui.menu"].browse(menu_finance_id)
-
-        field_name = menu_finance._fields["name"]
-        translations = field_name._get_stored_translations(menu_finance)
-
-        translations["it_IT"] = "Contabilità"
-        self.env.cache.update_raw(menu_finance, field_name, [translations], dirty=True)
-        menu_finance.modified(["name"])
diff --git a/l10n_it_account/reports/account_reports_view.xml b/l10n_it_account/reports/account_reports_view.xml
index 8c4d27b4deb1..ff24ec4d5010 100644
--- a/l10n_it_account/reports/account_reports_view.xml
+++ b/l10n_it_account/reports/account_reports_view.xml
@@ -55,18 +55,16 @@
         <div class="header">
             <div class="row">
                 <div class="col-xs-4">
-                    <h3>
-                    <span t-esc="company.name" />
-                </h3>
+                    <h3><span t-esc="company.name" /></h3>
                     <span t-esc="company.street" class="" /><br />
-                    <span t-esc="company.zip" class="" /> - <span
-                    t-esc="company.city"
-                    class=""
-                /> - <span t-esc="company.state_id.code" class="" /><br />
-                    <span class="text-end">TIN: </span><span
-                    t-esc="company.partner_id.vat"
-                    class=""
-                /><br />
+                    <span t-esc="company.zip" class="" />
+                    - <span t-esc="company.city" class="" />
+                    - <span t-esc="company.state_id.code" class="" /><br />
+                    <span class="text-end">TIN: </span>
+                    <span
+                        t-esc="company.partner_id.vat"
+                        class=""
+                    /><br />
                 </div>
                 <div class="col-xs-4 col-xs-offset-4 text-end" style="margin-left:10px">
                     <h3 t-esc="title" />
@@ -83,21 +81,21 @@
             <div class="text-center">
                 <div class="text-muted">
                     <span
-                    style="display: none;"
-                    id="l10n_it_count_fiscal_page_base"
-                    t-esc="l10n_it_count_fiscal_page_base"
-                />
+                        style="display: none;"
+                        id="l10n_it_count_fiscal_page_base"
+                        t-esc="l10n_it_count_fiscal_page_base"
+                    />
                     Page:
                     <t t-if="l10n_it_count_fiscal_year">
-                    <span t-esc="l10n_it_count_fiscal_year" />
-                </t>
+                        <span t-esc="l10n_it_count_fiscal_year" />
+                    </t>
                     <t t-if="not l10n_it_count_fiscal_year">
-                    <li>
-                        <span
-                            t-esc="context_timestamp(datetime.datetime.now()).strftime('%Y')"
-                        />
-                    </li>
-                </t>
+                        <li>
+                            <span
+                                t-esc="context_timestamp(datetime.datetime.now()).strftime('%Y')"
+                            />
+                        </li>
+                    </t>
                     <span> / </span>
                     <span class="page" />
                 </div>
@@ -107,7 +105,7 @@
 
     <template id="minimal_layout" inherit_id="web.minimal_layout" priority="100">
         <xpath expr="//head/script" position="replace">
-            <script t-if="subst">
+            <script>
                 function subst() {
                     var vars = {};
                     var x = document.location.search.substring(1).split('&amp;');
diff --git a/l10n_it_account/tests/test_l10n_it_account.py b/l10n_it_account/tests/test_l10n_it_account.py
index f258d9650202..42acc1d984bd 100644
--- a/l10n_it_account/tests/test_l10n_it_account.py
+++ b/l10n_it_account/tests/test_l10n_it_account.py
@@ -3,29 +3,18 @@
 
 import datetime
 
-import xmlschema
-
 from odoo import fields
-from odoo.exceptions import UserError, ValidationError
 from odoo.tests import tagged
 from odoo.tests.common import Form
 
 from odoo.addons.account.tests.common import AccountTestInvoicingCommon
 
-from ..tools.account_tools import fpa_schema
-
 
 @tagged("post_install", "-at_install")
 class TestAccount(AccountTestInvoicingCommon):
     @classmethod
     def setUpClass(cls, chart_template_ref=None):
         super().setUpClass(chart_template_ref=chart_template_ref)
-        cls.group_1 = cls.env["account.group"].create(
-            {
-                "name": "1",
-                "code_prefix_start": "it.account.",
-            }
-        )
         cls.iva_22I5 = cls.env["account.tax"].create(
             {
                 "name": "IVA al 22% detraibile al 50%",
@@ -139,39 +128,6 @@ def setUpClass(cls, chart_template_ref=None):
             }
         )
 
-    def test_group_constraint(self):
-        self.env["account.account"].create(
-            {
-                "name": "it_account_1",
-                "code": "it.account.1",
-                "account_type": "asset_current",
-            }
-        )
-        with self.assertRaises(ValidationError):
-            self.env["account.account"].create(
-                {
-                    "name": "it_account_2",
-                    "code": "it.account.2",
-                    "account_type": "liability_current",
-                }
-            )
-
-    def test_group_recursion(self):
-        """
-        It is not possible to create recursive account groups.
-        """
-        child_group = self.env["account.group"].create(
-            {
-                "name": "child",
-                "code_prefix_start": "it.account.child",
-                "parent_id": self.group_1.id,
-            }
-        )
-        with self.assertRaises(UserError) as ue:
-            self.group_1.parent_id = child_group
-        exc_message = ue.exception.args[0]
-        self.assertEqual("Recursion Detected.", exc_message)
-
     def test_vat_22_50(self):
         today = fields.Date.today()
         move_form = Form(
@@ -244,15 +200,3 @@ def test_partially_deductible_balance_recomputation(self):
 
         # Check tomorrow's balance
         self.check_date_balance(self.iva_22I5, tomorrow, -22, -22)
-
-    def test_xmlschema_loading(self):
-        self.assertIsInstance(fpa_schema, xmlschema.XMLSchema)
-
-    def check_date_balance(self, tax, date, deductible, not_deductible):
-        """Compare expected balances with tax's balance in specified date."""
-        tax = tax.with_context(
-            from_date=date,
-            to_date=date,
-        )
-        self.assertEqual(tax.deductible_balance, deductible)
-        self.assertEqual(tax.undeductible_balance, not_deductible)
diff --git a/l10n_it_account/tools/__init__.py b/l10n_it_account/tools/__init__.py
deleted file mode 100644
index a954d99f2646..000000000000
--- a/l10n_it_account/tools/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from . import account_tools
diff --git a/l10n_it_account/tools/account_tools.py b/l10n_it_account/tools/account_tools.py
deleted file mode 100644
index c6b86c95de9e..000000000000
--- a/l10n_it_account/tools/account_tools.py
+++ /dev/null
@@ -1,116 +0,0 @@
-import logging
-import re
-
-import xmlschema
-from lxml import etree
-
-from odoo.modules.module import get_module_resource
-
-_logger = logging.getLogger(__name__)
-_logger.setLevel(logging.INFO)
-
-# compiled reg expression for whitespace characters substitution
-reg_whitespace = re.compile(r"\s+")
-
-
-def encode_for_export(string_to_encode, max_chars, encoding="latin"):
-    if not string_to_encode:
-        return ""
-    return (
-        reg_whitespace.sub(" ", string_to_encode)
-        .encode(encoding, errors="replace")
-        .decode(encoding)[:max_chars]
-    )
-
-
-# XMLSchema del SdI
-# Contiene un riferimento ad un'antica spec di xmldsig-core-schema.xsd, non presente
-# nei vari XML Catalog recenti, es. sulla mia Fedora 33
-# $ fgrep xmldsig-core-schema.xsd /etc/xml/catalog
-#   <system systemId="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"
-#    uri="file:///usr/share/xml/xmldsig-core-schema.xsd"/>
-#   <uri name="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"
-#    uri="file:///usr/share/xml/xmldsig-core-schema.xsd"/>
-# L'assenza dell'entry nel Catalog fa sì che il documento venga scaricato
-# ogni volta, e - a giudicare dalla lentezza nella risposta - qualcuno
-# al w3.org ha notato la cosa (la lentezza è relativa a quel solo URL).
-#
-# Noi interpretiamo lo Schema due volte, per lxml, per le correzioni
-# pre-verifica, e successivamente per xmlschema. Entrambe le librerie hanno
-# modalità di modificare il comportamento di download delle import esterne.
-# Il file xmldsig-core-schema.xsd locale è ottenuto dall'URL indicato dal SdI.
-# Per lxml.etree, va creata al classe Resover. Per xmlschema, si indicano
-# le locations aggiuntive.
-
-_old_xsd_specs = get_module_resource(
-    "l10n_it_account", "tools", "xsd", "xmldsig-core-schema.xsd"
-)
-
-_fpa_schema_file = get_module_resource(
-    "l10n_it_account",
-    "tools",
-    "xsd",
-    "Schema_del_file_xml_FatturaPA_v1.2.2.xsd",
-)
-
-_fpa_simple_schema_file = get_module_resource(
-    "l10n_it_account",
-    "tools",
-    "xsd",
-    "Schema_VFSM10.xsd",
-)
-
-fpa_schema = xmlschema.XMLSchema(
-    _fpa_schema_file,
-    locations={"http://www.w3.org/2000/09/xmldsig#": _old_xsd_specs},
-    validation="lax",
-    allow="local",
-    loglevel=20,
-)
-
-fpa_simple_schema = xmlschema.XMLSchema(
-    _fpa_simple_schema_file,
-    locations={"http://www.w3.org/2000/09/xmldsig#": _old_xsd_specs},
-    validation="lax",
-    allow="local",
-    loglevel=20,
-)
-
-
-# fix <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
-#      schemaLocation="http://www.w3.org/TR/2002/
-#      REC-xmldsig-core-20020212/xmldsig-core-schema.xsd" />
-class _VeryOldXSDSpecResolverTYVMSdI(etree.Resolver):
-    def resolve(self, system_url, public_id, context):
-        if (
-            system_url
-            == "http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"  # noqa: B950
-        ):
-            _logger.info(
-                "mapping URL for %r to local file %r",
-                system_url,
-                _old_xsd_specs,
-            )
-            return self.resolve_filename(self._old_xsd_specs, context)
-        else:
-            return super().resolve(system_url, public_id, context)
-
-
-def fpa_schema_etree():
-    parser = etree.XMLParser()
-    parser.resolvers.add(_VeryOldXSDSpecResolverTYVMSdI())
-    return etree.parse(_fpa_schema_file, parser)
-
-
-def fpa_simple_schema_etree():
-    parser = etree.XMLParser()
-    parser.resolvers.add(_VeryOldXSDSpecResolverTYVMSdI())
-    return etree.parse(_fpa_simple_schema_file, parser)
-
-
-# Funzione per leggere i possibili valori dei tipi enumeration
-def fpa_schema_get_enum(type_name):
-    enum = fpa_schema.types[type_name].get_facet(xmlschema.names.XSD_ENUMERATION)
-    return tuple(
-        (e.get("value"), enum.get_annotation(i) or "") for i, e in enumerate(enum)
-    )
diff --git a/l10n_it_account/tools/xsd/Schema_VFSM10.xsd b/l10n_it_account/tools/xsd/Schema_VFSM10.xsd
deleted file mode 100644
index 7d3565e9c8b3..000000000000
--- a/l10n_it_account/tools/xsd/Schema_VFSM10.xsd
+++ /dev/null
@@ -1,553 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<xs:schema
-	xmlns:xs="http://www.w3.org/2001/XMLSchema"
-	xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
-	xmlns="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.0"
-	targetNamespace="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.0"
-	version="1.0.1">
-
-  <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd" />
-
-  <xs:element name="FatturaElettronicaSemplificata" type="FatturaElettronicaType">
-    <xs:annotation>
-      <xs:documentation>
-				XML schema fatture destinate a privati in forma semplificata 1.0.1
-			</xs:documentation>
-    </xs:annotation>
-  </xs:element>
-  <xs:complexType name="FatturaElettronicaType">
-    <xs:sequence>
-      <xs:element name="FatturaElettronicaHeader" type="FatturaElettronicaHeaderType" />
-      <xs:element name="FatturaElettronicaBody" type="FatturaElettronicaBodyType" maxOccurs="unbounded" />
-      <xs:element ref="ds:Signature" minOccurs="0" />
-    </xs:sequence>
-    <xs:attribute name="versione" type="FormatoTrasmissioneType" use="required" />
-    <xs:attribute name="SistemaEmittente" type="String10Type" use="optional" />
-  </xs:complexType>
-  <xs:complexType name="FatturaElettronicaHeaderType">
-    <xs:sequence>
-      <xs:element name="DatiTrasmissione" type="DatiTrasmissioneType" />
-      <xs:element name="CedentePrestatore" type="CedentePrestatoreType" />
-      <xs:element name="CessionarioCommittente" type="CessionarioCommittenteType" />
-      <xs:element name="SoggettoEmittente" type="SoggettoEmittenteType" minOccurs="0" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="FatturaElettronicaBodyType">
-    <xs:sequence>
-      <xs:element name="DatiGenerali" type="DatiGeneraliType" />
-      <xs:element name="DatiBeniServizi" type="DatiBeniServiziType" maxOccurs="unbounded" />
-      <xs:element name="Allegati" type="AllegatiType" minOccurs="0" maxOccurs="unbounded" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="DatiTrasmissioneType">
-    <xs:annotation>
-      <xs:documentation>Blocco relativo ai dati di trasmissione della Fattura Elettronica</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-      <xs:element name="IdTrasmittente" type="IdFiscaleType" />
-      <xs:element name="ProgressivoInvio" type="String10Type" />
-      <xs:element name="FormatoTrasmissione" type="FormatoTrasmissioneType" />
-      <xs:element name="CodiceDestinatario" type="CodiceDestinatarioType" />
-      <xs:element name="PECDestinatario" type="EmailType" minOccurs="0" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="CodiceDestinatarioType">
-    <xs:restriction base="xs:string">
-      <xs:pattern value="[A-Z0-9]{7}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="IdFiscaleType">
-    <xs:sequence>
-      <xs:element name="IdPaese" type="NazioneType" />
-      <xs:element name="IdCodice" type="CodiceType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="CodiceType">
-    <xs:restriction base="xs:string">
-      <xs:minLength value="1" />
-      <xs:maxLength value="28" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="FormatoTrasmissioneType">
-    <xs:restriction base="xs:string">
-      <xs:length value="5" />
-	  <xs:enumeration value="FSM10">
-	    <xs:annotation>
-	      <xs:documentation>Fattura verso privati semplificata</xs:documentation>
-	    </xs:annotation>
-	  </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="DatiGeneraliType">
-    <xs:annotation>
-      <xs:documentation>Blocco relativo ai Dati Generali della Fattura Elettronica</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-      <xs:element name="DatiGeneraliDocumento"  type="DatiGeneraliDocumentoType" />
-      <xs:element name="DatiFatturaRettificata" type="DatiFatturaRettificataType" minOccurs="0" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="DatiGeneraliDocumentoType">
-    <xs:sequence>
-      <xs:element name="TipoDocumento" type="TipoDocumentoType" />
-      <xs:element name="Divisa" type="DivisaType" />
-      <xs:element name="Data" type="DataFatturaType" />
-      <xs:element name="Numero" type="String20Type" />
-      <xs:element name="BolloVirtuale" type="BolloVirtualeType" minOccurs="0" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="DatiFatturaRettificataType">
-    <xs:sequence>
-      <xs:element name="NumeroFR" type="String20Type" />
-      <xs:element name="DataFR" type="DataFatturaType" />
-      <xs:element name="ElementiRettificati" type="String1000LatinType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="Art73Type">
-    <xs:restriction base="xs:string">
-      <xs:length value="2" />
-      <xs:enumeration value="SI">
-        <xs:annotation>
-          <xs:documentation>SI = Documento emesso secondo modalità e termini stabiliti con DM ai sensi dell'art. 73 DPR 633/72</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="TipoDocumentoType">
-    <xs:restriction base="xs:string">
-      <xs:length value="4" />
-      <xs:enumeration value="TD07">
-        <xs:annotation>
-          <xs:documentation>Fattura semplificata</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TD08">
-        <xs:annotation>
-          <xs:documentation>Nota di credito semplificata</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TD09">
-        <xs:annotation>
-          <xs:documentation>Nota di debito semplificata</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="IndirizzoType">
-    <xs:sequence>
-      <xs:element name="Indirizzo" type="String60LatinType" />
-      <xs:element name="NumeroCivico" type="NumeroCivicoType" minOccurs="0" />
-      <xs:element name="CAP" type="CAPType" />
-      <xs:element name="Comune" type="String60LatinType" />
-      <xs:element name="Provincia" type="ProvinciaType" minOccurs="0" />
-      <xs:element name="Nazione" type="NazioneType" default="IT" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="SoggettoEmittenteType">
-    <xs:restriction base="xs:string">
-      <xs:length value="2" />
-      <xs:enumeration value="CC">
-        <xs:annotation>
-          <xs:documentation>Cessionario / Committente</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TZ">
-        <xs:annotation>
-          <xs:documentation>Terzo</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="CedentePrestatoreType">
-    <xs:annotation>
-      <xs:documentation>Blocco relativo ai dati del Cedente / Prestatore</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-      <xs:element name="IdFiscaleIVA" type="IdFiscaleType" />
-      <xs:element name="CodiceFiscale" type="CodiceFiscaleType" minOccurs="0" />
-      <xs:choice>
-        <xs:sequence>
-          <xs:element name="Denominazione" type="String80LatinType"/>
-        </xs:sequence>
-        <xs:sequence>
-          <xs:element name="Nome"          type="String60LatinType"/>
-          <xs:element name="Cognome"       type="String60LatinType"/>
-        </xs:sequence>
-      </xs:choice>
-      <xs:element name="Sede" type="IndirizzoType" />
-      <xs:element name="StabileOrganizzazione" type="IndirizzoType" minOccurs="0" />
-      <xs:element name="RappresentanteFiscale" type="RappresentanteFiscaleType" minOccurs="0" />
-      <xs:element name="IscrizioneREA" type="IscrizioneREAType" minOccurs="0" />
-	  <xs:element name="RegimeFiscale" type="RegimeFiscaleType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="RegimeFiscaleType">
-    <xs:restriction base="xs:string">
-      <xs:length value="4" />
-      <xs:enumeration value="RF01">
-        <xs:annotation>
-          <xs:documentation> Regime ordinario</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF02">
-        <xs:annotation>
-          <xs:documentation>Regime dei contribuenti minimi (art. 1,c.96-117, L. 244/2007)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF04">
-        <xs:annotation>
-          <xs:documentation>Agricoltura e attività connesse e pesca (artt. 34 e 34-bis, D.P.R. 633/1972)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF05">
-        <xs:annotation>
-          <xs:documentation>Vendita sali e tabacchi (art. 74, c.1, D.P.R. 633/1972)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF06">
-        <xs:annotation>
-          <xs:documentation>Commercio dei fiammiferi (art. 74, c.1, D.P.R. 633/1972)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF07">
-        <xs:annotation>
-          <xs:documentation>Editoria (art. 74, c.1, D.P.R. 633/1972)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF08">
-        <xs:annotation>
-          <xs:documentation>Gestione di servizi di telefonia pubblica (art. 74, c.1, D.P.R. 633/1972)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF09">
-        <xs:annotation>
-          <xs:documentation>Rivendita di documenti di trasporto pubblico e di sosta (art. 74, c.1, D.P.R. 633/1972)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF10">
-        <xs:annotation>
-          <xs:documentation>Intrattenimenti, giochi e altre attività	di cui alla tariffa allegata al D.P.R. 640/72 (art. 74, c.6, D.P.R. 633/1972)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF11">
-        <xs:annotation>
-          <xs:documentation>Agenzie di viaggi e turismo (art. 74-ter, D.P.R. 633/1972)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF12">
-        <xs:annotation>
-          <xs:documentation>Agriturismo (art. 5, c.2, L. 413/1991)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF13">
-        <xs:annotation>
-          <xs:documentation>Vendite a domicilio (art. 25-bis, c.6, D.P.R. 600/1973)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF14">
-        <xs:annotation>
-          <xs:documentation>Rivendita di beni usati, di oggetti	d’arte, d’antiquariato o da collezione (art.	36, D.L. 41/1995)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF15">
-        <xs:annotation>
-          <xs:documentation>Agenzie di vendite all’asta di oggetti d’arte, antiquariato o da collezione (art. 40-bis, D.L. 41/1995)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF16">
-        <xs:annotation>
-          <xs:documentation>IVA per cassa P.A. (art. 6, c.5, D.P.R. 633/1972)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF17">
-        <xs:annotation>
-          <xs:documentation>IVA per cassa (art. 32-bis, D.L. 83/2012)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-	  <xs:enumeration value="RF19">
-        <xs:annotation>
-          <xs:documentation>Regime forfettario</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF18">
-        <xs:annotation>
-          <xs:documentation>Altro</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="IscrizioneREAType">
-    <xs:sequence>
-      <xs:element name="Ufficio" type="ProvinciaType" />
-      <xs:element name="NumeroREA" type="String20Type" />
-      <xs:element name="CapitaleSociale" type="Amount2DecimalType" minOccurs="0" />
-      <xs:element name="SocioUnico" type="SocioUnicoType" minOccurs="0" />
-      <xs:element name="StatoLiquidazione" type="StatoLiquidazioneType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="RappresentanteFiscaleType">
-    <xs:annotation>
-      <xs:documentation>Blocco relativo ai dati del Rappresentante Fiscale</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-	  <xs:element name="IdFiscaleIVA" type="IdFiscaleType" />
-      <xs:choice>
-        <xs:sequence>
-          <xs:element name="Denominazione" type="String80LatinType"/>
-        </xs:sequence>
-        <xs:sequence>
-          <xs:element name="Nome"          type="String60LatinType"/>
-          <xs:element name="Cognome"       type="String60LatinType"/>
-        </xs:sequence>
-      </xs:choice>
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="CessionarioCommittenteType">
-    <xs:annotation>
-      <xs:documentation>Blocco relativo ai dati del Cessionario / Committente</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-      <xs:element name="IdentificativiFiscali" type="IdentificativiFiscaliType"                   />
-      <xs:element name="AltriDatiIdentificativi" type="AltriDatiIdentificativiType" minOccurs="0" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="IdentificativiFiscaliType">
-    <xs:sequence>
-      <xs:element name="IdFiscaleIVA" type="IdFiscaleType" minOccurs="0" />
-      <xs:element name="CodiceFiscale" type="CodiceFiscaleType" minOccurs="0" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="AltriDatiIdentificativiType">
-    <xs:sequence>
-      <xs:choice>
-        <xs:sequence>
-          <xs:element name="Denominazione" type="String80LatinType"/>
-        </xs:sequence>
-        <xs:sequence>
-          <xs:element name="Nome"          type="String60LatinType"/>
-          <xs:element name="Cognome"       type="String60LatinType"/>
-        </xs:sequence>
-      </xs:choice>
-      <xs:element name="Sede" type="IndirizzoType" />
-      <xs:element name="StabileOrganizzazione" type="IndirizzoType" minOccurs="0" />
-      <xs:element name="RappresentanteFiscale" type="RappresentanteFiscaleType" minOccurs="0" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="DatiBeniServiziType">
-    <xs:annotation>
-      <xs:documentation>Blocco relativo ai dati di Beni Servizi della Fattura	Elettronica</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-      <xs:element name="Descrizione" type="String1000LatinType" />
-      <xs:element name="Importo" type="Amount2DecimalType" />
-      <xs:element name="DatiIVA" type="DatiIVAType" />
-      <xs:element name="Natura" type="NaturaType" minOccurs="0" />
-      <xs:element name="RiferimentoNormativo" type="String100LatinType" minOccurs="0" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="DatiIVAType">
-    <xs:sequence>
-      <xs:element name="Imposta" type="Amount2DecimalType" minOccurs="0" />
-	  <xs:element name="Aliquota" type="RateType" minOccurs="0"/>
-	</xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="AllegatiType">
-    <xs:annotation>
-      <xs:documentation>Blocco relativo ai dati di eventuali allegati</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-      <xs:element name="NomeAttachment" type="String60LatinType" />
-      <xs:element name="AlgoritmoCompressione" type="String10Type" minOccurs="0" />
-      <xs:element name="FormatoAttachment" type="String10Type" minOccurs="0" />
-      <xs:element name="DescrizioneAttachment" type="String100LatinType" minOccurs="0" />
-      <xs:element name="Attachment" type="xs:base64Binary" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="NaturaType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="N1">
-        <xs:annotation>
-          <xs:documentation>Escluse ex. art. 15 del D.P.R. 633/1972</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-<!-- IL CODICE SEGUENTE (N2) NON SARA' PIU' VALIDO PER LE FATTURE EMESSE A PARTIRE DAL PRIMO GENNAIO 2021-->
-      <xs:enumeration value="N2">
-        <xs:annotation>
-          <xs:documentation>Non soggette</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N2.1">
-        <xs:annotation>
-          <xs:documentation>Non soggette ad IVA ai sensi degli artt. da 7 a 7-septies del DPR 633/72</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N2.2">
-        <xs:annotation>
-          <xs:documentation>Non soggette - altri casi</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-<!-- IL CODICE SEGUENTE (N3) NON SARA' PIU' VALIDO PER LE FATTURE EMESSE A PARTIRE DAL PRIMO GENNAIO 2021-->
-      <xs:enumeration value="N3">
-        <xs:annotation>
-          <xs:documentation>Non imponibili</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N3.1">
-        <xs:annotation>
-          <xs:documentation>Non Imponibili - esportazioni</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N3.2">
-        <xs:annotation>
-          <xs:documentation>Non Imponibili - cessioni intracomunitarie</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N3.3">
-        <xs:annotation>
-          <xs:documentation>Non Imponibili - cessioni verso San Marino</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N3.4">
-        <xs:annotation>
-          <xs:documentation>Non Imponibili - operazioni assimilate alle cessioni all'esportazione</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N3.5">
-        <xs:annotation>
-          <xs:documentation>Non Imponibili - a seguito di dichiarazioni d'intento</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N3.6">
-        <xs:annotation>
-          <xs:documentation>Non Imponibili - altre operazioni che non concorrono alla formazione del plafond</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N4">
-        <xs:annotation>
-          <xs:documentation>Esenti</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N5">
-        <xs:annotation>
-          <xs:documentation>Regime del margine/IVA non esposta in fattura</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="CodiceFiscaleType">
-    <xs:restriction base="xs:string">
-      <xs:pattern value="[A-Z0-9]{11,16}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="SocioUnicoType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="SU">
-        <xs:annotation>
-          <xs:documentation>socio unico</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="SM">
-        <xs:annotation>
-          <xs:documentation>più soci</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="StatoLiquidazioneType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="LS">
-        <xs:annotation>
-          <xs:documentation>in liquidazione</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="LN">
-        <xs:annotation>
-          <xs:documentation>non in liquidazione</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="String10Type">
-    <xs:restriction base="xs:normalizedString">
-      <xs:pattern value="(\p{IsBasicLatin}{1,10})" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="String20Type">
-    <xs:restriction base="xs:normalizedString">
-      <xs:pattern value="(\p{IsBasicLatin}{1,20})" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="String60LatinType">
-    <xs:restriction base="xs:normalizedString">
-      <xs:pattern value="[\p{IsBasicLatin}\p{IsLatin-1Supplement}]{1,60}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="String80LatinType">
-    <xs:restriction base="xs:normalizedString">
-      <xs:pattern value="[\p{IsBasicLatin}\p{IsLatin-1Supplement}]{1,80}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="String100LatinType">
-    <xs:restriction base="xs:normalizedString">
-      <xs:pattern value="[\p{IsBasicLatin}\p{IsLatin-1Supplement}]{1,100}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="String1000LatinType">
-    <xs:restriction base="xs:normalizedString">
-      <xs:pattern value="[\p{IsBasicLatin}\p{IsLatin-1Supplement}]{1,1000}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="ProvinciaType">
-    <xs:restriction base="xs:string">
-      <xs:pattern value="[A-Z]{2}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="NazioneType">
-    <xs:restriction base="xs:string">
-      <xs:pattern value="[A-Z]{2}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="DivisaType">
-    <xs:restriction base="xs:string">
-      <xs:pattern value="[A-Z]{3}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="NumeroCivicoType">
-    <xs:restriction base="xs:normalizedString">
-      <xs:pattern value="(\p{IsBasicLatin}{1,8})" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="EmailType">
-    <xs:restriction base="xs:token">
-      <xs:maxLength value="256" />
-      <xs:pattern value="([!#-'*+/-9=?A-Z^-~-]+(\.[!#-'*+/-9=?A-Z^-~-]+)*|&quot;(\[\]!#-[^-~ \t]|(\\[\t -~]))+&quot;)@([!#-'*+/-9=?A-Z^-~-]+(\.[!#-'*+/-9=?A-Z^-~-]+)*|\[[\t -Z^-~]*\])" />
-   	</xs:restriction>
-  </xs:simpleType>
-  <!--________________ NUMBERS ____________________-->
-  <xs:simpleType name="Amount2DecimalType">
-    <xs:restriction base="xs:decimal">
-      <xs:pattern value="[\-]?[0-9]{1,11}\.[0-9]{2}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="RateType">
-    <xs:restriction base="xs:decimal">
-      <xs:maxInclusive value="100.00" />
-      <xs:pattern value="[0-9]{1,3}\.[0-9]{2}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="CAPType">
-    <xs:restriction base="xs:string">
-      <xs:pattern value="[0-9][0-9][0-9][0-9][0-9]" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="DataFatturaType">
-    <xs:restriction base="xs:date">
-      <xs:minInclusive value="1970-01-01" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="BolloVirtualeType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="SI" />
-    </xs:restriction>
-  </xs:simpleType>
-</xs:schema>
diff --git a/l10n_it_account/tools/xsd/Schema_del_file_xml_FatturaPA_v1.2.2.xsd b/l10n_it_account/tools/xsd/Schema_del_file_xml_FatturaPA_v1.2.2.xsd
deleted file mode 100644
index 6391a421afb0..000000000000
--- a/l10n_it_account/tools/xsd/Schema_del_file_xml_FatturaPA_v1.2.2.xsd
+++ /dev/null
@@ -1,1454 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
-	xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
-	xmlns="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2"
-	targetNamespace="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2"
-	version="1.2.2">
-
-  <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd" />
-
-  <xs:element name="FatturaElettronica" type="FatturaElettronicaType">
-    <xs:annotation>
-      <xs:documentation>XML schema fatture destinate a PA e privati in forma ordinaria 1.2.2</xs:documentation>
-    </xs:annotation>
-  </xs:element>
-
-  <xs:complexType name="FatturaElettronicaType">
-    <xs:sequence>
-      <xs:element name="FatturaElettronicaHeader" type="FatturaElettronicaHeaderType"                       />
-      <xs:element name="FatturaElettronicaBody"   type="FatturaElettronicaBodyType"   maxOccurs="unbounded" />
-      <xs:element ref="ds:Signature"                                                  minOccurs="0"         />
-    </xs:sequence>
-    <xs:attribute name="versione" type="FormatoTrasmissioneType" use="required" />
-    <xs:attribute name="SistemaEmittente" type="String10Type" use="optional" />
-  </xs:complexType>
-  <xs:complexType name="FatturaElettronicaHeaderType">
-    <xs:sequence>
-      <xs:element name="DatiTrasmissione"                     type="DatiTrasmissioneType"                                  />
-      <xs:element name="CedentePrestatore"                    type="CedentePrestatoreType"                                 />
-      <xs:element name="RappresentanteFiscale"                type="RappresentanteFiscaleType"               minOccurs="0" />
-      <xs:element name="CessionarioCommittente"               type="CessionarioCommittenteType"                            />
-      <xs:element name="TerzoIntermediarioOSoggettoEmittente" type="TerzoIntermediarioSoggettoEmittenteType" minOccurs="0" />
-      <xs:element name="SoggettoEmittente"                    type="SoggettoEmittenteType"                   minOccurs="0" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="FatturaElettronicaBodyType">
-    <xs:sequence>
-      <xs:element name="DatiGenerali"    type="DatiGeneraliType"                                        />
-      <xs:element name="DatiBeniServizi" type="DatiBeniServiziType"                                     />
-      <xs:element name="DatiVeicoli"     type="DatiVeicoliType"     minOccurs="0"                       />
-      <xs:element name="DatiPagamento"   type="DatiPagamentoType"   minOccurs="0" maxOccurs="unbounded" />
-      <xs:element name="Allegati"        type="AllegatiType"        minOccurs="0" maxOccurs="unbounded" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="DatiTrasmissioneType">
-    <xs:annotation>
-      <xs:documentation>Blocco relativo ai dati di trasmissione della Fattura Elettronica</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-      <xs:element name="IdTrasmittente"       type="IdFiscaleType"                          />
-      <xs:element name="ProgressivoInvio"     type="String10Type"                           />
-      <xs:element name="FormatoTrasmissione"  type="FormatoTrasmissioneType"                />
-      <xs:element name="CodiceDestinatario"   type="CodiceDestinatarioType"                 />
-      <xs:element name="ContattiTrasmittente" type="ContattiTrasmittenteType" minOccurs="0" />
-      <xs:element name="PECDestinatario"      type="EmailType"                minOccurs="0" />
-	</xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="CodiceDestinatarioType">
-    <xs:restriction base="xs:string">
-      <xs:pattern value="[A-Z0-9]{6,7}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="IdFiscaleType">
-    <xs:sequence>
-      <xs:element name="IdPaese"  type="NazioneType" />
-      <xs:element name="IdCodice" type="CodiceType"  />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="CodiceType">
-    <xs:restriction base="xs:string">
-      <xs:minLength value="1" />
-      <xs:maxLength value="28" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="FormatoTrasmissioneType">
-    <xs:restriction base="xs:string">
-      <xs:length value="5" />
-	  <xs:enumeration value="FPA12">
-	    <xs:annotation>
-	      <xs:documentation>Fattura verso PA</xs:documentation>
-	    </xs:annotation>
-	  </xs:enumeration>
-	  <xs:enumeration value="FPR12">
-	    <xs:annotation>
-	      <xs:documentation>Fattura verso privati</xs:documentation>
-	    </xs:annotation>
-	  </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="ContattiTrasmittenteType">
-    <xs:sequence>
-      <xs:element name="Telefono" type="TelFaxType" minOccurs="0" />
-      <xs:element name="Email"    type="EmailContattiType"  minOccurs="0" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="DatiGeneraliType">
-    <xs:annotation>
-      <xs:documentation>
-				Blocco relativo ai Dati Generali della Fattura Elettronica
-			</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-      <xs:element name="DatiGeneraliDocumento" type="DatiGeneraliDocumentoType"                                      />
-      <xs:element name="DatiOrdineAcquisto"    type="DatiDocumentiCorrelatiType" minOccurs="0" maxOccurs="unbounded" />
-      <xs:element name="DatiContratto"         type="DatiDocumentiCorrelatiType" minOccurs="0" maxOccurs="unbounded" />
-      <xs:element name="DatiConvenzione"       type="DatiDocumentiCorrelatiType" minOccurs="0" maxOccurs="unbounded" />
-      <xs:element name="DatiRicezione"         type="DatiDocumentiCorrelatiType" minOccurs="0" maxOccurs="unbounded" />
-      <xs:element name="DatiFattureCollegate"  type="DatiDocumentiCorrelatiType" minOccurs="0" maxOccurs="unbounded" />
-      <xs:element name="DatiSAL"               type="DatiSALType"                minOccurs="0" maxOccurs="unbounded" />
-      <xs:element name="DatiDDT"               type="DatiDDTType"                minOccurs="0" maxOccurs="unbounded" />
-      <xs:element name="DatiTrasporto"         type="DatiTrasportoType"          minOccurs="0"                       />
-      <xs:element name="FatturaPrincipale"     type="FatturaPrincipaleType"      minOccurs="0"                       />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="DatiGeneraliDocumentoType">
-    <xs:sequence>
-      <xs:element name="TipoDocumento"          type="TipoDocumentoType"                                              />
-      <xs:element name="Divisa"                 type="DivisaType"                                                     />
-      <xs:element name="Data"                   type="DataFatturaType"                                                />
-      <xs:element name="Numero"                 type="String20Type"                                                   />
-      <xs:element name="DatiRitenuta"           type="DatiRitenutaType"           minOccurs="0" maxOccurs="unbounded" />
-      <xs:element name="DatiBollo"              type="DatiBolloType"              minOccurs="0"                       />
-      <xs:element name="DatiCassaPrevidenziale" type="DatiCassaPrevidenzialeType" minOccurs="0" maxOccurs="unbounded" />
-      <xs:element name="ScontoMaggiorazione"    type="ScontoMaggiorazioneType"    minOccurs="0" maxOccurs="unbounded" />
-      <xs:element name="ImportoTotaleDocumento" type="Amount2DecimalType"         minOccurs="0"                       />
-      <xs:element name="Arrotondamento"         type="Amount2DecimalType"         minOccurs="0"                       />
-      <xs:element name="Causale"                type="String200LatinType"         minOccurs="0" maxOccurs="unbounded" />
-      <xs:element name="Art73"                  type="Art73Type"                  minOccurs="0"                       />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="DatiRitenutaType">
-    <xs:sequence>
-      <xs:element name="TipoRitenuta"     type="TipoRitenutaType"     />
-      <xs:element name="ImportoRitenuta"  type="Amount2DecimalType"   />
-      <xs:element name="AliquotaRitenuta" type="RateType"             />
-      <xs:element name="CausalePagamento" type="CausalePagamentoType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="DatiBolloType">
-    <xs:sequence>
-      <xs:element name="BolloVirtuale" type="BolloVirtualeType"  />
-      <xs:element name="ImportoBollo"  type="Amount2DecimalType"  minOccurs="0" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="DatiCassaPrevidenzialeType">
-    <xs:sequence>
-      <xs:element name="TipoCassa"                  type="TipoCassaType"                    />
-      <xs:element name="AlCassa"                    type="RateType"                         />
-      <xs:element name="ImportoContributoCassa"     type="Amount2DecimalType"               />
-      <xs:element name="ImponibileCassa"            type="Amount2DecimalType" minOccurs="0" />
-      <xs:element name="AliquotaIVA"                type="RateType"                         />
-      <xs:element name="Ritenuta"                   type="RitenutaType"       minOccurs="0" />
-      <xs:element name="Natura"                     type="NaturaType"         minOccurs="0" />
-      <xs:element name="RiferimentoAmministrazione" type="String20Type"       minOccurs="0" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="ScontoMaggiorazioneType">
-    <xs:sequence>
-      <xs:element name="Tipo"        type="TipoScontoMaggiorazioneType"               />
-      <xs:element name="Percentuale" type="RateType"                    minOccurs="0" />
-      <xs:element name="Importo"     type="Amount8DecimalType"          minOccurs="0" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="CausalePagamentoType">
-    <xs:restriction base="xs:string">
-      <!--I CODICI SEGUENTI FANNO RIFERIMENTO A QUELLI PREVISTI NEL MOD. CU-->
-      <xs:enumeration value="A" />
-      <xs:enumeration value="B" />
-      <xs:enumeration value="C" />
-      <xs:enumeration value="D" />
-      <xs:enumeration value="E" />
-      <xs:enumeration value="G" />
-      <xs:enumeration value="H" />
-      <xs:enumeration value="I" />
-      <xs:enumeration value="L" />
-      <xs:enumeration value="M" />
-      <xs:enumeration value="N" />
-      <xs:enumeration value="O" />
-      <xs:enumeration value="P" />
-      <xs:enumeration value="Q" />
-      <xs:enumeration value="R" />
-      <xs:enumeration value="S" />
-      <xs:enumeration value="T" />
-      <xs:enumeration value="U" />
-      <xs:enumeration value="V" />
-      <xs:enumeration value="W" />
-      <xs:enumeration value="X" />
-      <xs:enumeration value="Y" />
-<!-- IL CODICE SEGUENTE (Z) NON SARA' PIU' VALIDO PER LE FATTURE EMESSE A PARTIRE DAL PRIMO GENNAIO 2021-->
-      <xs:enumeration value="Z" />
-      <xs:enumeration value="L1" />
-      <xs:enumeration value="M1" />
-      <xs:enumeration value="M2" />
-      <xs:enumeration value="O1" />
-      <xs:enumeration value="V1" />
-      <xs:enumeration value="ZO" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="TipoScontoMaggiorazioneType">
-    <xs:restriction base="xs:string">
-      <xs:length value="2" />
-      <xs:enumeration value="SC">
-        <xs:annotation>
-          <xs:documentation>SC = Sconto</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="MG">
-        <xs:annotation>
-          <xs:documentation>MG = Maggiorazione</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="Art73Type">
-    <xs:restriction base="xs:string">
-      <xs:length value="2" />
-      <xs:enumeration value="SI">
-        <xs:annotation>
-          <xs:documentation>SI = Documento emesso secondo modalità e termini stabiliti con DM ai sensi dell'art. 73 DPR 633/72</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="TipoCassaType">
-    <xs:restriction base="xs:string">
-      <xs:length value="4" />
-      <xs:enumeration value="TC01">
-        <xs:annotation>
-          <xs:documentation>Cassa nazionale previdenza e assistenza avvocati e procuratori legali</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TC02">
-        <xs:annotation>
-          <xs:documentation>Cassa previdenza dottori commercialisti</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TC03">
-        <xs:annotation>
-          <xs:documentation>Cassa previdenza e assistenza geometri</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TC04">
-        <xs:annotation>
-          <xs:documentation>Cassa nazionale previdenza e assistenza ingegneri e architetti liberi professionisti</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TC05">
-        <xs:annotation>
-          <xs:documentation>Cassa nazionale del notariato</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TC06">
-        <xs:annotation>
-          <xs:documentation>Cassa nazionale previdenza e assistenza ragionieri e periti commerciali</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TC07">
-        <xs:annotation>
-          <xs:documentation>Ente nazionale assistenza agenti e rappresentanti di commercio (ENASARCO)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TC08">
-        <xs:annotation>
-          <xs:documentation>Ente nazionale previdenza e assistenza consulenti del lavoro (ENPACL)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TC09">
-        <xs:annotation>
-          <xs:documentation>Ente nazionale previdenza e assistenza medici (ENPAM)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TC10">
-        <xs:annotation>
-          <xs:documentation>Ente nazionale previdenza e assistenza farmacisti (ENPAF)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TC11">
-        <xs:annotation>
-          <xs:documentation>Ente nazionale previdenza e assistenza veterinari (ENPAV)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TC12">
-        <xs:annotation>
-          <xs:documentation>Ente nazionale previdenza e assistenza impiegati dell'agricoltura (ENPAIA)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TC13">
-        <xs:annotation>
-          <xs:documentation>Fondo previdenza impiegati imprese di spedizione e agenzie marittime</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TC14">
-        <xs:annotation>
-          <xs:documentation>Istituto nazionale previdenza giornalisti italiani (INPGI)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TC15">
-        <xs:annotation>
-          <xs:documentation>Opera nazionale assistenza orfani sanitari italiani (ONAOSI)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TC16">
-        <xs:annotation>
-          <xs:documentation>Cassa autonoma assistenza integrativa giornalisti italiani (CASAGIT)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TC17">
-        <xs:annotation>
-          <xs:documentation>Ente previdenza periti industriali e periti industriali laureati (EPPI)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TC18">
-        <xs:annotation>
-          <xs:documentation>Ente previdenza e assistenza pluricategoriale (EPAP)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TC19">
-        <xs:annotation>
-          <xs:documentation>Ente nazionale previdenza e assistenza biologi (ENPAB)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TC20">
-        <xs:annotation>
-          <xs:documentation>Ente nazionale previdenza e assistenza professione infermieristica (ENPAPI)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TC21">
-        <xs:annotation>
-          <xs:documentation>Ente nazionale previdenza e assistenza psicologi (ENPAP)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TC22">
-        <xs:annotation>
-          <xs:documentation>INPS</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="TipoDocumentoType">
-    <xs:restriction base="xs:string">
-      <xs:length value="4" />
-      <xs:enumeration value="TD01">
-        <xs:annotation>
-          <xs:documentation>Fattura</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TD02">
-        <xs:annotation>
-          <xs:documentation>Acconto / anticipo su fattura</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TD03">
-        <xs:annotation>
-          <xs:documentation>Acconto / anticipo su parcella</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TD04">
-        <xs:annotation>
-          <xs:documentation>Nota di credito</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TD05">
-        <xs:annotation>
-          <xs:documentation>Nota di debito</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TD06">
-        <xs:annotation>
-          <xs:documentation>Parcella</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TD16">
-        <xs:annotation>
-          <xs:documentation>Integrazione fattura reverse charge interno</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TD17">
-        <xs:annotation>
-          <xs:documentation>Integrazione/autofattura per acquisto servizi dall'estero</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TD18">
-        <xs:annotation>
-          <xs:documentation>Integrazione per acquisto di beni intracomunitari</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TD19">
-        <xs:annotation>
-          <xs:documentation>Integrazione/autofattura per acquisto di beni ex art.17 c.2 DPR 633/72</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TD20">
-        <xs:annotation>
-          <xs:documentation>Autofattura per regolarizzazione e integrazione delle fatture (ex art.6 c.8 e 9-bis d.lgs.471/97 o art.46 c.5 D.L. 331/93</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TD21">
-        <xs:annotation>
-          <xs:documentation>Autofattura per splafonamento</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TD22">
-        <xs:annotation>
-          <xs:documentation>Estrazione benida Deposito IVA</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TD23">
-        <xs:annotation>
-          <xs:documentation>Estrazione beni da Deposito IVA con versamento dell'IVA</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TD24">
-        <xs:annotation>
-          <xs:documentation>Fattura differita di cui all'art.21, comma 4, terzo periodo lett. a) DPR 633/72</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TD25">
-        <xs:annotation>
-          <xs:documentation>Fattura differita di cui all'art.21, comma 4, terzo periodo lett. b) DPR 633/72</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TD26">
-        <xs:annotation>
-          <xs:documentation>Cessione di beni ammortizzabili e per passaggi interni (ex art.36 DPR 633/72)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TD27">
-        <xs:annotation>
-          <xs:documentation>Fattura per autoconsumo o per cessioni gratuite senza rivalsa</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TD28">
-        <xs:annotation>
-          <xs:documentation>Acquisti da San Marino con IVA (fattura cartacea)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="TipoRitenutaType">
-    <xs:restriction base="xs:string">
-      <xs:length value="4" />
-      <xs:enumeration value="RT01">
-        <xs:annotation>
-          <xs:documentation>Ritenuta di acconto persone fisiche</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RT02">
-        <xs:annotation>
-          <xs:documentation>Ritenuta di acconto persone giuridiche</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RT03">
-        <xs:annotation>
-          <xs:documentation>Contributo INPS</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RT04">
-        <xs:annotation>
-          <xs:documentation>Contributo ENASARCO</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RT05">
-        <xs:annotation>
-          <xs:documentation>Contributo ENPAM</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RT06">
-        <xs:annotation>
-          <xs:documentation>Altro contributo previdenziale</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="DatiSALType">
-    <xs:sequence>
-      <xs:element name="RiferimentoFase" type="RiferimentoFaseType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="DatiDocumentiCorrelatiType">
-    <xs:sequence>
-      <xs:element name="RiferimentoNumeroLinea"    type="RiferimentoNumeroLineaType" minOccurs="0" maxOccurs="unbounded" />
-      <xs:element name="IdDocumento"               type="String20Type"                                                   />
-      <xs:element name="Data"                      type="xs:date"                    minOccurs="0"                       />
-      <xs:element name="NumItem"                   type="String20Type"               minOccurs="0"                       />
-      <xs:element name="CodiceCommessaConvenzione" type="String100LatinType"         minOccurs="0"                       />
-      <xs:element name="CodiceCUP"                 type="String15Type"               minOccurs="0"                       />
-      <xs:element name="CodiceCIG"                 type="String15Type"               minOccurs="0"                       />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="RiferimentoNumeroLineaType">
-    <xs:restriction base="xs:integer">
-      <xs:minInclusive value="1" />
-      <xs:maxInclusive value="9999" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="DatiDDTType">
-    <xs:sequence>
-      <xs:element name="NumeroDDT"              type="String20Type"                                                   />
-      <xs:element name="DataDDT"                type="xs:date"                                                        />
-      <xs:element name="RiferimentoNumeroLinea" type="RiferimentoNumeroLineaType" minOccurs="0" maxOccurs="unbounded" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="DatiTrasportoType">
-    <xs:sequence>
-      <xs:element name="DatiAnagraficiVettore" type="DatiAnagraficiVettoreType" minOccurs="0" />
-      <xs:element name="MezzoTrasporto"        type="String80LatinType"         minOccurs="0" />
-      <xs:element name="CausaleTrasporto"      type="String100LatinType"        minOccurs="0" />
-      <xs:element name="NumeroColli"           type="NumeroColliType"           minOccurs="0" />
-      <xs:element name="Descrizione"           type="String100LatinType"        minOccurs="0" />
-      <xs:element name="UnitaMisuraPeso"       type="String10Type"              minOccurs="0" />
-      <xs:element name="PesoLordo"             type="PesoType"                  minOccurs="0" />
-      <xs:element name="PesoNetto"             type="PesoType"                  minOccurs="0" />
-      <xs:element name="DataOraRitiro"         type="xs:dateTime"               minOccurs="0" />
-      <xs:element name="DataInizioTrasporto"   type="xs:date"                   minOccurs="0" />
-      <xs:element name="TipoResa"              type="TipoResaType"              minOccurs="0" />
-      <xs:element name="IndirizzoResa"         type="IndirizzoType"             minOccurs="0" />
-      <xs:element name="DataOraConsegna"       type="xs:dateTime"               minOccurs="0" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="IndirizzoType">
-    <xs:sequence>
-      <xs:element name="Indirizzo"    type="String60LatinType"                            />
-      <xs:element name="NumeroCivico" type="NumeroCivicoType"  minOccurs="0"              />
-      <xs:element name="CAP"          type="CAPType"                                      />
-      <xs:element name="Comune"       type="String60LatinType"                            />
-      <xs:element name="Provincia"    type="ProvinciaType"     minOccurs="0"              />
-      <xs:element name="Nazione"      type="NazioneType"                     default="IT" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="FatturaPrincipaleType">
-    <xs:sequence>
-      <xs:element name="NumeroFatturaPrincipale" type="String20Type" />
-      <xs:element name="DataFatturaPrincipale"   type="xs:date"      />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="SoggettoEmittenteType">
-    <xs:restriction base="xs:string">
-      <xs:length value="2" />
-      <xs:enumeration value="CC">
-        <xs:annotation>
-          <xs:documentation>Cessionario / Committente</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TZ">
-        <xs:annotation>
-          <xs:documentation>Terzo</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="CedentePrestatoreType">
-    <xs:annotation>
-      <xs:documentation>Blocco relativo ai dati del Cedente / Prestatore</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-      <xs:element name="DatiAnagrafici"             type="DatiAnagraficiCedenteType"               />
-      <xs:element name="Sede"                       type="IndirizzoType"                           />
-      <xs:element name="StabileOrganizzazione"      type="IndirizzoType"             minOccurs="0" />
-      <xs:element name="IscrizioneREA"              type="IscrizioneREAType"         minOccurs="0" />
-      <xs:element name="Contatti"                   type="ContattiType"              minOccurs="0" />
-      <xs:element name="RiferimentoAmministrazione" type="String20Type"              minOccurs="0" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="DatiAnagraficiCedenteType">
-    <xs:sequence>
-      <xs:element name="IdFiscaleIVA"         type="IdFiscaleType"                   />
-      <xs:element name="CodiceFiscale"        type="CodiceFiscaleType" minOccurs="0" />
-      <xs:element name="Anagrafica"           type="AnagraficaType"                  />
-      <xs:element name="AlboProfessionale"    type="String60LatinType" minOccurs="0" />
-      <xs:element name="ProvinciaAlbo"        type="ProvinciaType"     minOccurs="0" />
-      <xs:element name="NumeroIscrizioneAlbo" type="String60Type"      minOccurs="0" />
-      <xs:element name="DataIscrizioneAlbo"   type="xs:date"           minOccurs="0" />
-      <xs:element name="RegimeFiscale"        type="RegimeFiscaleType"               />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="RegimeFiscaleType">
-    <xs:restriction base="xs:string">
-      <xs:length value="4" />
-      <xs:enumeration value="RF01">
-        <xs:annotation>
-          <xs:documentation> Regime ordinario</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF02">
-        <xs:annotation>
-          <xs:documentation>Regime dei contribuenti minimi (art. 1,c.96-117, L. 244/2007)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF04">
-        <xs:annotation>
-          <xs:documentation>Agricoltura e attività connesse e pesca (artt. 34 e 34-bis, D.P.R. 633/1972)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF05">
-        <xs:annotation>
-          <xs:documentation>Vendita sali e tabacchi (art. 74, c.1, D.P.R. 633/1972)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF06">
-        <xs:annotation>
-          <xs:documentation>Commercio dei fiammiferi (art. 74, c.1, D.P.R. 633/1972)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF07">
-        <xs:annotation>
-          <xs:documentation>Editoria (art. 74, c.1, D.P.R. 633/1972)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF08">
-        <xs:annotation>
-          <xs:documentation>Gestione di servizi di telefonia pubblica (art. 74, c.1, D.P.R. 633/1972)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF09">
-        <xs:annotation>
-          <xs:documentation>Rivendita di documenti di trasporto pubblico e di sosta (art. 74, c.1, D.P.R. 633/1972)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF10">
-        <xs:annotation>
-          <xs:documentation>Intrattenimenti, giochi e altre attività	di cui alla tariffa allegata al D.P.R. 640/72 (art. 74, c.6, D.P.R. 633/1972)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF11">
-        <xs:annotation>
-          <xs:documentation>Agenzie di viaggi e turismo (art. 74-ter, D.P.R. 633/1972)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF12">
-        <xs:annotation>
-          <xs:documentation>Agriturismo (art. 5, c.2, L. 413/1991)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF13">
-        <xs:annotation>
-          <xs:documentation>Vendite a domicilio (art. 25-bis, c.6, D.P.R. 600/1973)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF14">
-        <xs:annotation>
-          <xs:documentation>Rivendita di beni usati, di oggetti	d’arte, d’antiquariato o da collezione (art.	36, D.L. 41/1995)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF15">
-        <xs:annotation>
-          <xs:documentation>Agenzie di vendite all’asta di oggetti d’arte, antiquariato o da collezione (art. 40-bis, D.L. 41/1995)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF16">
-        <xs:annotation>
-          <xs:documentation>IVA per cassa P.A. (art. 6, c.5, D.P.R. 633/1972)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF17">
-        <xs:annotation>
-          <xs:documentation>IVA per cassa (art. 32-bis, D.L. 83/2012)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-	  <xs:enumeration value="RF19">
-        <xs:annotation>
-          <xs:documentation>Regime forfettario</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="RF18">
-        <xs:annotation>
-          <xs:documentation>Altro</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="AnagraficaType">
-    <xs:annotation>
-      <xs:documentation>Il campo Denominazione è in alternativa ai campi Nome e Cognome</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-      <xs:choice>
-        <xs:sequence>
-          <xs:element name="Denominazione" type="String80LatinType"/>
-        </xs:sequence>
-        <xs:sequence>
-          <xs:element name="Nome"          type="String60LatinType"/>
-          <xs:element name="Cognome"       type="String60LatinType"/>
-        </xs:sequence>
-      </xs:choice>
-      <xs:element name="Titolo"  type="TitoloType"  minOccurs="0" />
-      <xs:element name="CodEORI" type="CodEORIType" minOccurs="0" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="DatiAnagraficiVettoreType">
-    <xs:sequence>
-      <xs:element name="IdFiscaleIVA"       type="IdFiscaleType"                   />
-      <xs:element name="CodiceFiscale"      type="CodiceFiscaleType" minOccurs="0" />
-      <xs:element name="Anagrafica"         type="AnagraficaType"                  />
-      <xs:element name="NumeroLicenzaGuida" type="String20Type"      minOccurs="0" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="IscrizioneREAType">
-    <xs:sequence>
-      <xs:element name="Ufficio"           type="ProvinciaType"                      />
-      <xs:element name="NumeroREA"         type="String20Type"                       />
-      <xs:element name="CapitaleSociale"   type="Amount2DecimalType"   minOccurs="0" />
-      <xs:element name="SocioUnico"        type="SocioUnicoType"       minOccurs="0" />
-      <xs:element name="StatoLiquidazione" type="StatoLiquidazioneType"              />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="ContattiType">
-    <xs:sequence>
-      <xs:element name="Telefono" type="TelFaxType" minOccurs="0" />
-      <xs:element name="Fax"      type="TelFaxType" minOccurs="0" />
-      <xs:element name="Email"    type="EmailContattiType"  minOccurs="0" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="RappresentanteFiscaleType">
-    <xs:annotation>
-      	<xs:documentation>Blocco relativo ai dati del Rappresentante Fiscale</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-      <xs:element name="DatiAnagrafici" type="DatiAnagraficiRappresentanteType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="DatiAnagraficiRappresentanteType">
-    <xs:sequence>
-      <xs:element name="IdFiscaleIVA"  type="IdFiscaleType"                   />
-      <xs:element name="CodiceFiscale" type="CodiceFiscaleType" minOccurs="0" />
-      <xs:element name="Anagrafica"    type="AnagraficaType"                  />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="CessionarioCommittenteType">
-    <xs:annotation>
-      <xs:documentation>Blocco relativo ai dati del Cessionario / Committente</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-      <xs:element name="DatiAnagrafici"        type="DatiAnagraficiCessionarioType"                      />
-      <xs:element name="Sede"                  type="IndirizzoType"                                      />
-	  <xs:element name="StabileOrganizzazione" type="IndirizzoType"                        minOccurs="0" />
-      <xs:element name="RappresentanteFiscale" type="RappresentanteFiscaleCessionarioType" minOccurs="0" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="RappresentanteFiscaleCessionarioType">
-    <xs:sequence>
-	  <xs:element name="IdFiscaleIVA"      type="IdFiscaleType" />
-	  <xs:choice>
-        <xs:sequence>
-          <xs:element name="Denominazione" type="String80LatinType"/>
-        </xs:sequence>
-        <xs:sequence>
-          <xs:element name="Nome"          type="String60LatinType" />
-          <xs:element name="Cognome"       type="String60LatinType" />
-        </xs:sequence>
-      </xs:choice>
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="DatiAnagraficiCessionarioType">
-    <xs:sequence>
-      <xs:element name="IdFiscaleIVA"  type="IdFiscaleType"     minOccurs="0" />
-      <xs:element name="CodiceFiscale" type="CodiceFiscaleType" minOccurs="0" />
-      <xs:element name="Anagrafica"    type="AnagraficaType"                  />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="DatiBeniServiziType">
-    <xs:annotation>
-      <xs:documentation>Blocco relativo ai dati di Beni Servizi della Fattura	Elettronica</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-      <xs:element name="DettaglioLinee" type="DettaglioLineeType" maxOccurs="unbounded" />
-      <xs:element name="DatiRiepilogo"  type="DatiRiepilogoType"  maxOccurs="unbounded" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="DatiVeicoliType">
-    <xs:annotation>
-      <xs:documentation>Blocco relativo ai dati dei Veicoli della Fattura Elettronica (da indicare nei casi di cessioni tra Paesi
-			membri di mezzi di trasporto nuovi, in base all'art. 38, comma 4 del dl 331 del 1993)</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-      <xs:element name="Data"           type="xs:date"      />
-      <xs:element name="TotalePercorso" type="String15Type" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="DatiPagamentoType">
-    <xs:annotation>
-      <xs:documentation>Blocco relativo ai dati di Pagamento della Fattura Elettronica</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-      <xs:element name="CondizioniPagamento" type="CondizioniPagamentoType"                       />
-      <xs:element name="DettaglioPagamento"  type="DettaglioPagamentoType"  maxOccurs="unbounded" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="CondizioniPagamentoType">
-    <xs:restriction base="xs:string">
-      <xs:minLength value="4" />
-      <xs:maxLength value="4" />
-      <xs:enumeration value="TP01">
-        <xs:annotation>
-          <xs:documentation>pagamento a rate</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TP02">
-        <xs:annotation>
-          <xs:documentation>pagamento completo</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="TP03">
-        <xs:annotation>
-          <xs:documentation>anticipo</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="DettaglioPagamentoType">
-    <xs:sequence>
-      <xs:element name="Beneficiario"                    type="String200LatinType"         minOccurs="0" />
-      <xs:element name="ModalitaPagamento"               type="ModalitaPagamentoType"                    />
-      <xs:element name="DataRiferimentoTerminiPagamento" type="xs:date"                    minOccurs="0" />
-      <xs:element name="GiorniTerminiPagamento"          type="GiorniTerminePagamentoType" minOccurs="0" />
-      <xs:element name="DataScadenzaPagamento"           type="xs:date"                    minOccurs="0" />
-      <xs:element name="ImportoPagamento"                type="Amount2DecimalType"                       />
-      <xs:element name="CodUfficioPostale"               type="String20Type"               minOccurs="0" />
-      <xs:element name="CognomeQuietanzante"             type="String60LatinType"          minOccurs="0" />
-      <xs:element name="NomeQuietanzante"                type="String60LatinType"          minOccurs="0" />
-      <xs:element name="CFQuietanzante"                  type="CodiceFiscalePFType"        minOccurs="0" />
-      <xs:element name="TitoloQuietanzante"              type="TitoloType"                 minOccurs="0" />
-      <xs:element name="IstitutoFinanziario"             type="String80LatinType"          minOccurs="0" />
-      <xs:element name="IBAN"                            type="IBANType"                   minOccurs="0" />
-      <xs:element name="ABI"                             type="ABIType"                    minOccurs="0" />
-      <xs:element name="CAB"                             type="CABType"                    minOccurs="0" />
-      <xs:element name="BIC"                             type="BICType"                    minOccurs="0" />
-      <xs:element name="ScontoPagamentoAnticipato"       type="Amount2DecimalType"         minOccurs="0" />
-      <xs:element name="DataLimitePagamentoAnticipato"   type="xs:date"                    minOccurs="0" />
-      <xs:element name="PenalitaPagamentiRitardati"      type="Amount2DecimalType"         minOccurs="0" />
-      <xs:element name="DataDecorrenzaPenale"            type="xs:date"                    minOccurs="0" />
-      <xs:element name="CodicePagamento"                 type="String60Type"               minOccurs="0" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="ModalitaPagamentoType">
-    <xs:restriction base="xs:string">
-      <xs:length value="4" />
-      <xs:enumeration value="MP01">
-        <xs:annotation>
-          <xs:documentation>contanti</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="MP02">
-        <xs:annotation>
-          <xs:documentation>assegno</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="MP03">
-        <xs:annotation>
-          <xs:documentation>assegno circolare</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="MP04">
-        <xs:annotation>
-          <xs:documentation>contanti presso Tesoreria</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="MP05">
-        <xs:annotation>
-          <xs:documentation>bonifico</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="MP06">
-        <xs:annotation>
-          <xs:documentation>vaglia cambiario</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="MP07">
-        <xs:annotation>
-          <xs:documentation>bollettino bancario</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="MP08">
-        <xs:annotation>
-          <xs:documentation>carta di pagamento</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="MP09">
-        <xs:annotation>
-          <xs:documentation>RID</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="MP10">
-        <xs:annotation>
-          <xs:documentation>RID utenze</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="MP11">
-        <xs:annotation>
-          <xs:documentation>RID veloce</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="MP12">
-        <xs:annotation>
-          <xs:documentation>RIBA</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="MP13">
-        <xs:annotation>
-          <xs:documentation>MAV</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="MP14">
-        <xs:annotation>
-          <xs:documentation>quietanza erario</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="MP15">
-        <xs:annotation>
-          <xs:documentation>giroconto su conti di contabilità speciale</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="MP16">
-        <xs:annotation>
-          <xs:documentation>domiciliazione bancaria</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="MP17">
-        <xs:annotation>
-          <xs:documentation>domiciliazione postale</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="MP18">
-        <xs:annotation>
-          <xs:documentation>bollettino di c/c postale</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="MP19">
-        <xs:annotation>
-          <xs:documentation>SEPA Direct Debit</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="MP20">
-        <xs:annotation>
-          <xs:documentation>SEPA Direct Debit CORE</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="MP21">
-        <xs:annotation>
-          <xs:documentation>SEPA Direct Debit B2B</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="MP22">
-        <xs:annotation>
-          <xs:documentation>Trattenuta su somme già riscosse</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="MP23">
-        <xs:annotation>
-          <xs:documentation>PagoPA</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="IBANType">
-    <xs:restriction base="xs:string">
-      <xs:pattern value="[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{11,30}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="BICType">
-    <xs:restriction base="xs:string">
-      <xs:pattern value="[A-Z]{6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3}){0,1}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="TerzoIntermediarioSoggettoEmittenteType">
-    <xs:annotation>
-      <xs:documentation>Blocco relativo ai dati del Terzo Intermediario che emette fattura elettronica per conto del Cedente/Prestatore</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-      <xs:element name="DatiAnagrafici" type="DatiAnagraficiTerzoIntermediarioType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="DatiAnagraficiTerzoIntermediarioType">
-    <xs:sequence>
-      <xs:element name="IdFiscaleIVA"  type="IdFiscaleType"     minOccurs="0" />
-      <xs:element name="CodiceFiscale" type="CodiceFiscaleType" minOccurs="0" />
-      <xs:element name="Anagrafica"    type="AnagraficaType"                  />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="AllegatiType">
-    <xs:annotation>
-      <xs:documentation>Blocco relativo ai dati di eventuali allegati</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-      <xs:element name="NomeAttachment"        type="String60LatinType"                />
-      <xs:element name="AlgoritmoCompressione" type="String10Type"       minOccurs="0" />
-      <xs:element name="FormatoAttachment"     type="String10Type"       minOccurs="0" />
-      <xs:element name="DescrizioneAttachment" type="String100LatinType" minOccurs="0" />
-      <xs:element name="Attachment"            type="xs:base64Binary"                  />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="DettaglioLineeType">
-    <xs:sequence>
-      <xs:element name="NumeroLinea"                type="NumeroLineaType"                                                 />
-      <xs:element name="TipoCessionePrestazione"    type="TipoCessionePrestazioneType" minOccurs="0"                       />
-      <xs:element name="CodiceArticolo"             type="CodiceArticoloType"          minOccurs="0" maxOccurs="unbounded" />
-      <xs:element name="Descrizione"                type="String1000LatinType"                                             />
-      <xs:element name="Quantita"                   type="QuantitaType"                minOccurs="0"                       />
-      <xs:element name="UnitaMisura"                type="String10Type"                minOccurs="0"                       />
-      <xs:element name="DataInizioPeriodo"          type="xs:date"                     minOccurs="0"                       />
-      <xs:element name="DataFinePeriodo"            type="xs:date"                     minOccurs="0"                       />
-      <xs:element name="PrezzoUnitario"             type="Amount8DecimalType"                                              />
-      <xs:element name="ScontoMaggiorazione"        type="ScontoMaggiorazioneType"     minOccurs="0" maxOccurs="unbounded" />
-      <xs:element name="PrezzoTotale"               type="Amount8DecimalType"                                              />
-      <xs:element name="AliquotaIVA"                type="RateType"                                                        />
-      <xs:element name="Ritenuta"                   type="RitenutaType"                minOccurs="0"                       />
-      <xs:element name="Natura"                     type="NaturaType"                  minOccurs="0"                       />
-      <xs:element name="RiferimentoAmministrazione" type="String20Type"                minOccurs="0"                       />
-      <xs:element name="AltriDatiGestionali"        type="AltriDatiGestionaliType"     minOccurs="0" maxOccurs="unbounded" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="CodiceArticoloType">
-    <xs:sequence>
-      <xs:element name="CodiceTipo"   type="String35Type" />
-      <xs:element name="CodiceValore" type="String35LatinExtType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="AltriDatiGestionaliType">
-    <xs:sequence>
-      <xs:element name="TipoDato"          type="String10Type"                     />
-      <xs:element name="RiferimentoTesto"  type="String60LatinType"  minOccurs="0" />
-      <xs:element name="RiferimentoNumero" type="Amount8DecimalType" minOccurs="0" />
-      <xs:element name="RiferimentoData"   type="xs:date"            minOccurs="0" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="RitenutaType">
-    <xs:restriction base="xs:string">
-      <xs:length value="2" />
-      <xs:enumeration value="SI">
-        <xs:annotation>
-          <xs:documentation>SI = Cessione / Prestazione soggetta a ritenuta</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="DatiRiepilogoType">
-    <xs:sequence>
-      <xs:element name="AliquotaIVA"          type="RateType"                         />
-      <xs:element name="Natura"               type="NaturaType"         minOccurs="0" />
-      <xs:element name="SpeseAccessorie"      type="Amount2DecimalType" minOccurs="0" />
-      <xs:element name="Arrotondamento"       type="Amount8DecimalType" minOccurs="0" />
-      <xs:element name="ImponibileImporto"    type="Amount2DecimalType"               />
-      <xs:element name="Imposta"              type="Amount2DecimalType"               />
-      <xs:element name="EsigibilitaIVA"       type="EsigibilitaIVAType" minOccurs="0" />
-      <xs:element name="RiferimentoNormativo" type="String100LatinType" minOccurs="0" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="EsigibilitaIVAType">
-    <xs:restriction base="xs:string">
-      <xs:minLength value="1" />
-      <xs:maxLength value="1" />
-      <xs:enumeration value="D">
-        <xs:annotation>
-          <xs:documentation>esigibilità differita</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="I">
-        <xs:annotation>
-          <xs:documentation>esigibilità immediata</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="S">
-        <xs:annotation>
-          <xs:documentation>scissione dei pagamenti</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="NaturaType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="N1">
-        <xs:annotation>
-          <xs:documentation>Escluse ex. art. 15 del D.P.R. 633/1972</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-<!-- IL CODICE SEGUENTE (N2) NON SARA' PIU' VALIDO PER LE FATTURE EMESSE A PARTIRE DAL PRIMO GENNAIO 2021-->
-      <xs:enumeration value="N2">
-        <xs:annotation>
-          <xs:documentation>Non soggette</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N2.1">
-        <xs:annotation>
-          <xs:documentation>Non soggette ad IVA ai sensi degli artt. da 7 a 7-septies del DPR 633/72</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N2.2">
-        <xs:annotation>
-          <xs:documentation>Non soggette - altri casi</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-<!-- IL CODICE SEGUENTE (N3) NON SARA' PIU' VALIDO PER LE FATTURE EMESSE A PARTIRE DAL PRIMO GENNAIO 2021-->
-      <xs:enumeration value="N3">
-        <xs:annotation>
-          <xs:documentation>Non imponibili</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N3.1">
-        <xs:annotation>
-          <xs:documentation>Non Imponibili - esportazioni</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N3.2">
-        <xs:annotation>
-          <xs:documentation>Non Imponibili - cessioni intracomunitarie</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N3.3">
-        <xs:annotation>
-          <xs:documentation>Non Imponibili - cessioni verso San Marino</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N3.4">
-        <xs:annotation>
-          <xs:documentation>Non Imponibili - operazioni assimilate alle cessioni all'esportazione</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N3.5">
-        <xs:annotation>
-          <xs:documentation>Non Imponibili - a seguito di dichiarazioni d'intento</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N3.6">
-        <xs:annotation>
-          <xs:documentation>Non Imponibili - altre operazioni che non concorrono alla formazione del plafond</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N4">
-        <xs:annotation>
-          <xs:documentation>Esenti</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N5">
-        <xs:annotation>
-          <xs:documentation>Regime del margine/IVA non esposta in fattura</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-<!-- IL CODICE SEGUENTE (N6) NON SARA' PIU' VALIDO PER LE FATTURE EMESSE A PARTIRE DAL PRIMO GENNAIO 2021-->
-      <xs:enumeration value="N6">
-        <xs:annotation>
-          <xs:documentation>Inversione contabile (per le operazioni in reverse charge ovvero nei casi di autofatturazione per acquisti extra UE di servizi ovvero per importazioni di beni nei soli casi previsti)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N6.1">
-        <xs:annotation>
-          <xs:documentation>Inversione contabile - cessione di rottami e altri materiali di recupero</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N6.2">
-        <xs:annotation>
-          <xs:documentation>Inversione contabile - cessione di oro e argento ai sensi della legge 7/2000 nonché di oreficeria usata ad OPO</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N6.3">
-        <xs:annotation>
-          <xs:documentation>Inversione contabile - subappalto nel settore edile</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N6.4">
-        <xs:annotation>
-          <xs:documentation>Inversione contabile - cessione di fabbricati</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N6.5">
-        <xs:annotation>
-          <xs:documentation>Inversione contabile - cessione di telefoni cellulari</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N6.6">
-        <xs:annotation>
-          <xs:documentation>Inversione contabile - cessione di prodotti elettronici</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N6.7">
-        <xs:annotation>
-          <xs:documentation>Inversione contabile - prestazioni comparto edile e settori connessi</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N6.8">
-        <xs:annotation>
-          <xs:documentation>Inversione contabile - operazioni settore energetico</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N6.9">
-        <xs:annotation>
-          <xs:documentation>Inversione contabile - altri casi</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="N7">
-        <xs:annotation>
-          <xs:documentation>IVA assolta in altro stato UE (prestazione di servizi di telecomunicazioni, tele-radiodiffusione ed elettronici ex art. 7-octies lett. a, b, art. 74-sexies DPR 633/72)</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="CodiceFiscaleType">
-    <xs:restriction base="xs:string">
-      <xs:pattern value="[A-Z0-9]{11,16}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="CodiceFiscalePFType">
-    <xs:restriction base="xs:string">
-      <xs:pattern value="[A-Z0-9]{16}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="CodEORIType">
-    <xs:restriction base="xs:string">
-      <xs:minLength value="13" />
-      <xs:maxLength value="17" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="SocioUnicoType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="SU">
-        <xs:annotation>
-          <xs:documentation>socio unico</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="SM">
-        <xs:annotation>
-          <xs:documentation>più soci</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="StatoLiquidazioneType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="LS">
-        <xs:annotation>
-          <xs:documentation>in liquidazione</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="LN">
-        <xs:annotation>
-          <xs:documentation>non in liquidazione</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="TipoCessionePrestazioneType">
-    <xs:restriction base="xs:string">
-      <xs:length value="2" />
-      <xs:enumeration value="SC">
-        <xs:annotation>
-          <xs:documentation>Sconto</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="PR">
-        <xs:annotation>
-          <xs:documentation>Premio</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="AB">
-        <xs:annotation>
-          <xs:documentation>Abbuono</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-      <xs:enumeration value="AC">
-        <xs:annotation>
-          <xs:documentation>Spesa accessoria</xs:documentation>
-        </xs:annotation>
-      </xs:enumeration>
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="TitoloType">
-    <xs:restriction base="xs:normalizedString">
-      <xs:whiteSpace value="collapse" />
-      <xs:pattern value="(\p{IsBasicLatin}{2,10})" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="String10Type">
-    <xs:restriction base="xs:normalizedString">
-      <xs:pattern value="(\p{IsBasicLatin}{1,10})" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="String15Type">
-    <xs:restriction base="xs:normalizedString">
-      <xs:pattern value="(\p{IsBasicLatin}{1,15})" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="String20Type">
-    <xs:restriction base="xs:normalizedString">
-      <xs:pattern value="(\p{IsBasicLatin}{1,20})" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="String35Type">
-    <xs:restriction base="xs:normalizedString">
-      <xs:pattern value="(\p{IsBasicLatin}{1,35})" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="String35LatinExtType">
-    <xs:restriction base="xs:normalizedString">
-      <xs:minLength value="1" />
-      <xs:maxLength value="35" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="String60Type">
-    <xs:restriction base="xs:normalizedString">
-      <xs:pattern value="(\p{IsBasicLatin}{1,60})" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="String80Type">
-    <xs:restriction base="xs:normalizedString">
-      <xs:pattern value="(\p{IsBasicLatin}{1,80})" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="String100Type">
-    <xs:restriction base="xs:normalizedString">
-      <xs:pattern value="(\p{IsBasicLatin}{1,100})" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="String60LatinType">
-    <xs:restriction base="xs:normalizedString">
-      <xs:pattern value="[\p{IsBasicLatin}\p{IsLatin-1Supplement}]{1,60}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="String80LatinType">
-    <xs:restriction base="xs:normalizedString">
-      <xs:pattern value="[\p{IsBasicLatin}\p{IsLatin-1Supplement}]{1,80}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="String100LatinType">
-    <xs:restriction base="xs:normalizedString">
-      <xs:pattern value="[\p{IsBasicLatin}\p{IsLatin-1Supplement}]{1,100}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="String200LatinType">
-    <xs:restriction base="xs:normalizedString">
-      <xs:pattern value="[\p{IsBasicLatin}\p{IsLatin-1Supplement}]{1,200}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="String1000LatinType">
-    <xs:restriction base="xs:normalizedString">
-      <xs:pattern value="[\p{IsBasicLatin}\p{IsLatin-1Supplement}]{1,1000}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="ProvinciaType">
-    <xs:restriction base="xs:string">
-      <xs:pattern value="[A-Z]{2}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="NazioneType">
-    <xs:restriction base="xs:string">
-      <xs:pattern value="[A-Z]{2}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="DivisaType">
-    <xs:restriction base="xs:string">
-      <xs:pattern value="[A-Z]{3}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="TipoResaType">
-    <xs:restriction base="xs:string">
-      <xs:pattern value="[A-Z]{3}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="NumeroCivicoType">
-    <xs:restriction base="xs:normalizedString">
-      <xs:pattern value="(\p{IsBasicLatin}{1,8})" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="BolloVirtualeType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="SI" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="TelFaxType">
-    <xs:restriction base="xs:normalizedString">
-      <xs:pattern value="(\p{IsBasicLatin}{5,12})" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="EmailType">
-    <xs:restriction base="xs:token">
-      <xs:maxLength value="256" />
-      <xs:pattern value="([!#-'*+/-9=?A-Z^-~-]+(\.[!#-'*+/-9=?A-Z^-~-]+)*|&quot;(\[\]!#-[^-~ \t]|(\\[\t -~]))+&quot;)@([!#-'*+/-9=?A-Z^-~-]+(\.[!#-'*+/-9=?A-Z^-~-]+)*|\[[\t -Z^-~]*\])" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="EmailContattiType">
-    <xs:restriction base="xs:string">
-      <xs:minLength value="7" />
-      <xs:maxLength value="256" />
-      <xs:pattern value=".+@.+[.]+.+" />
-    </xs:restriction>
-  </xs:simpleType>
-  <!--________________ NUMBERS ____________________-->
-  <xs:simpleType name="PesoType">
-    <xs:restriction base="xs:decimal">
-      <xs:pattern value="[0-9]{1,4}\.[0-9]{1,2}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="Amount8DecimalType">
-    <xs:restriction base="xs:decimal">
-      <xs:pattern value="[\-]?[0-9]{1,11}\.[0-9]{2,8}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="Amount2DecimalType">
-    <xs:restriction base="xs:decimal">
-      <xs:pattern value="[\-]?[0-9]{1,11}\.[0-9]{2}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="RateType">
-    <xs:restriction base="xs:decimal">
-      <xs:maxInclusive value="100.00" />
-      <xs:pattern value="[0-9]{1,3}\.[0-9]{2}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="RiferimentoFaseType">
-    <xs:restriction base="xs:integer">
-      <xs:minInclusive value="1" />
-      <xs:maxInclusive value="999" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="NumeroColliType">
-    <xs:restriction base="xs:integer">
-      <xs:minInclusive value="1" />
-      <xs:maxInclusive value="9999" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="NumeroLineaType">
-    <xs:restriction base="xs:integer">
-      <xs:minInclusive value="1" />
-      <xs:maxInclusive value="9999" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="CAPType">
-    <xs:restriction base="xs:string">
-      <xs:pattern value="[0-9][0-9][0-9][0-9][0-9]" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="ABIType">
-    <xs:restriction base="xs:string">
-      <xs:pattern value="[0-9][0-9][0-9][0-9][0-9]" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="CABType">
-    <xs:restriction base="xs:string">
-      <xs:pattern value="[0-9][0-9][0-9][0-9][0-9]" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="GiorniTerminePagamentoType">
-    <xs:restriction base="xs:integer">
-      <xs:minInclusive value="0" />
-      <xs:maxInclusive value="999" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="QuantitaType">
-    <xs:restriction base="xs:decimal">
-      <xs:pattern value="[0-9]{1,12}\.[0-9]{2,8}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="DataFatturaType">
-    <xs:restriction base="xs:date">
-      <xs:minInclusive value="1970-01-01" />
-    </xs:restriction>
-  </xs:simpleType>
-</xs:schema>
diff --git a/l10n_it_account/tools/xsd/xmldsig-core-schema.xsd b/l10n_it_account/tools/xsd/xmldsig-core-schema.xsd
deleted file mode 100644
index 6a8854c031b4..000000000000
--- a/l10n_it_account/tools/xsd/xmldsig-core-schema.xsd
+++ /dev/null
@@ -1,318 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE schema
-  PUBLIC "-//W3C//DTD XMLSchema 200102//EN" "http://www.w3.org/2001/XMLSchema.dtd"
- [
-   <!ATTLIST schema
-     xmlns:ds CDATA #FIXED "http://www.w3.org/2000/09/xmldsig#">
-   <!ENTITY dsig 'http://www.w3.org/2000/09/xmldsig#'>
-   <!ENTITY % p ''>
-   <!ENTITY % s ''>
-  ]>
-
-<!-- Schema for XML Signatures
-    http://www.w3.org/2000/09/xmldsig#
-    $Revision: 1.1 $ on $Date: 2002/02/08 20:32:26 $ by $Author: reagle $
-
-    Copyright 2001 The Internet Society and W3C (Massachusetts Institute
-    of Technology, Institut National de Recherche en Informatique et en
-    Automatique, Keio University). All Rights Reserved.
-    http://www.w3.org/Consortium/Legal/
-
-    This document is governed by the W3C Software License [1] as described
-    in the FAQ [2].
-
-    [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
-    [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
--->
-
-
-<schema xmlns="http://www.w3.org/2001/XMLSchema"
-        xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
-        targetNamespace="http://www.w3.org/2000/09/xmldsig#"
-        version="0.1" elementFormDefault="qualified">
-
-<!-- Basic Types Defined for Signatures -->
-
-<simpleType name="CryptoBinary">
-  <restriction base="base64Binary">
-  </restriction>
-</simpleType>
-
-<!-- Start Signature -->
-
-<element name="Signature" type="ds:SignatureType"/>
-<complexType name="SignatureType">
-  <sequence>
-    <element ref="ds:SignedInfo"/>
-    <element ref="ds:SignatureValue"/>
-    <element ref="ds:KeyInfo" minOccurs="0"/>
-    <element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/>
-  </sequence>
-  <attribute name="Id" type="ID" use="optional"/>
-</complexType>
-
-  <element name="SignatureValue" type="ds:SignatureValueType"/>
-  <complexType name="SignatureValueType">
-    <simpleContent>
-      <extension base="base64Binary">
-        <attribute name="Id" type="ID" use="optional"/>
-      </extension>
-    </simpleContent>
-  </complexType>
-
-<!-- Start SignedInfo -->
-
-<element name="SignedInfo" type="ds:SignedInfoType"/>
-<complexType name="SignedInfoType">
-  <sequence>
-    <element ref="ds:CanonicalizationMethod"/>
-    <element ref="ds:SignatureMethod"/>
-    <element ref="ds:Reference" maxOccurs="unbounded"/>
-  </sequence>
-  <attribute name="Id" type="ID" use="optional"/>
-</complexType>
-
-  <element name="CanonicalizationMethod" type="ds:CanonicalizationMethodType"/>
-  <complexType name="CanonicalizationMethodType" mixed="true">
-    <sequence>
-      <any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
-      <!-- (0,unbounded) elements from (1,1) namespace -->
-    </sequence>
-    <attribute name="Algorithm" type="anyURI" use="required"/>
-  </complexType>
-
-  <element name="SignatureMethod" type="ds:SignatureMethodType"/>
-  <complexType name="SignatureMethodType" mixed="true">
-    <sequence>
-      <element name="HMACOutputLength" minOccurs="0" type="ds:HMACOutputLengthType"/>
-      <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
-      <!-- (0,unbounded) elements from (1,1) external namespace -->
-    </sequence>
-    <attribute name="Algorithm" type="anyURI" use="required"/>
-  </complexType>
-
-<!-- Start Reference -->
-
-<element name="Reference" type="ds:ReferenceType"/>
-<complexType name="ReferenceType">
-  <sequence>
-    <element ref="ds:Transforms" minOccurs="0"/>
-    <element ref="ds:DigestMethod"/>
-    <element ref="ds:DigestValue"/>
-  </sequence>
-  <attribute name="Id" type="ID" use="optional"/>
-  <attribute name="URI" type="anyURI" use="optional"/>
-  <attribute name="Type" type="anyURI" use="optional"/>
-</complexType>
-
-  <element name="Transforms" type="ds:TransformsType"/>
-  <complexType name="TransformsType">
-    <sequence>
-      <element ref="ds:Transform" maxOccurs="unbounded"/>
-    </sequence>
-  </complexType>
-
-  <element name="Transform" type="ds:TransformType"/>
-  <complexType name="TransformType" mixed="true">
-    <choice minOccurs="0" maxOccurs="unbounded">
-      <any namespace="##other" processContents="lax"/>
-      <!-- (1,1) elements from (0,unbounded) namespaces -->
-      <element name="XPath" type="string"/>
-    </choice>
-    <attribute name="Algorithm" type="anyURI" use="required"/>
-  </complexType>
-
-<!-- End Reference -->
-
-<element name="DigestMethod" type="ds:DigestMethodType"/>
-<complexType name="DigestMethodType" mixed="true">
-  <sequence>
-    <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-  </sequence>
-  <attribute name="Algorithm" type="anyURI" use="required"/>
-</complexType>
-
-<element name="DigestValue" type="ds:DigestValueType"/>
-<simpleType name="DigestValueType">
-  <restriction base="base64Binary"/>
-</simpleType>
-
-<!-- End SignedInfo -->
-
-<!-- Start KeyInfo -->
-
-<element name="KeyInfo" type="ds:KeyInfoType"/>
-<complexType name="KeyInfoType" mixed="true">
-  <choice maxOccurs="unbounded">
-    <element ref="ds:KeyName"/>
-    <element ref="ds:KeyValue"/>
-    <element ref="ds:RetrievalMethod"/>
-    <element ref="ds:X509Data"/>
-    <element ref="ds:PGPData"/>
-    <element ref="ds:SPKIData"/>
-    <element ref="ds:MgmtData"/>
-    <any processContents="lax" namespace="##other"/>
-    <!-- (1,1) elements from (0,unbounded) namespaces -->
-  </choice>
-  <attribute name="Id" type="ID" use="optional"/>
-</complexType>
-
-  <element name="KeyName" type="string"/>
-  <element name="MgmtData" type="string"/>
-
-  <element name="KeyValue" type="ds:KeyValueType"/>
-  <complexType name="KeyValueType" mixed="true">
-   <choice>
-     <element ref="ds:DSAKeyValue"/>
-     <element ref="ds:RSAKeyValue"/>
-     <any namespace="##other" processContents="lax"/>
-   </choice>
-  </complexType>
-
-  <element name="RetrievalMethod" type="ds:RetrievalMethodType"/>
-  <complexType name="RetrievalMethodType">
-    <sequence>
-      <element ref="ds:Transforms" minOccurs="0"/>
-    </sequence>
-    <attribute name="URI" type="anyURI"/>
-    <attribute name="Type" type="anyURI" use="optional"/>
-  </complexType>
-
-<!-- Start X509Data -->
-
-<element name="X509Data" type="ds:X509DataType"/>
-<complexType name="X509DataType">
-  <sequence maxOccurs="unbounded">
-    <choice>
-      <element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/>
-      <element name="X509SKI" type="base64Binary"/>
-      <element name="X509SubjectName" type="string"/>
-      <element name="X509Certificate" type="base64Binary"/>
-      <element name="X509CRL" type="base64Binary"/>
-      <any namespace="##other" processContents="lax"/>
-    </choice>
-  </sequence>
-</complexType>
-
-<complexType name="X509IssuerSerialType">
-  <sequence>
-    <element name="X509IssuerName" type="string"/>
-    <element name="X509SerialNumber" type="integer"/>
-  </sequence>
-</complexType>
-
-<!-- End X509Data -->
-
-<!-- Begin PGPData -->
-
-<element name="PGPData" type="ds:PGPDataType"/>
-<complexType name="PGPDataType">
-  <choice>
-    <sequence>
-      <element name="PGPKeyID" type="base64Binary"/>
-      <element name="PGPKeyPacket" type="base64Binary" minOccurs="0"/>
-      <any namespace="##other" processContents="lax" minOccurs="0"
-       maxOccurs="unbounded"/>
-    </sequence>
-    <sequence>
-      <element name="PGPKeyPacket" type="base64Binary"/>
-      <any namespace="##other" processContents="lax" minOccurs="0"
-       maxOccurs="unbounded"/>
-    </sequence>
-  </choice>
-</complexType>
-
-<!-- End PGPData -->
-
-<!-- Begin SPKIData -->
-
-<element name="SPKIData" type="ds:SPKIDataType"/>
-<complexType name="SPKIDataType">
-  <sequence maxOccurs="unbounded">
-    <element name="SPKISexp" type="base64Binary"/>
-    <any namespace="##other" processContents="lax" minOccurs="0"/>
-  </sequence>
-</complexType>
-
-<!-- End SPKIData -->
-
-<!-- End KeyInfo -->
-
-<!-- Start Object (Manifest, SignatureProperty) -->
-
-<element name="Object" type="ds:ObjectType"/>
-<complexType name="ObjectType" mixed="true">
-  <sequence minOccurs="0" maxOccurs="unbounded">
-    <any namespace="##any" processContents="lax"/>
-  </sequence>
-  <attribute name="Id" type="ID" use="optional"/>
-  <attribute name="MimeType" type="string" use="optional"/> <!-- add a grep facet -->
-  <attribute name="Encoding" type="anyURI" use="optional"/>
-</complexType>
-
-<element name="Manifest" type="ds:ManifestType"/>
-<complexType name="ManifestType">
-  <sequence>
-    <element ref="ds:Reference" maxOccurs="unbounded"/>
-  </sequence>
-  <attribute name="Id" type="ID" use="optional"/>
-</complexType>
-
-<element name="SignatureProperties" type="ds:SignaturePropertiesType"/>
-<complexType name="SignaturePropertiesType">
-  <sequence>
-    <element ref="ds:SignatureProperty" maxOccurs="unbounded"/>
-  </sequence>
-  <attribute name="Id" type="ID" use="optional"/>
-</complexType>
-
-   <element name="SignatureProperty" type="ds:SignaturePropertyType"/>
-   <complexType name="SignaturePropertyType" mixed="true">
-     <choice maxOccurs="unbounded">
-       <any namespace="##other" processContents="lax"/>
-       <!-- (1,1) elements from (1,unbounded) namespaces -->
-     </choice>
-     <attribute name="Target" type="anyURI" use="required"/>
-     <attribute name="Id" type="ID" use="optional"/>
-   </complexType>
-
-<!-- End Object (Manifest, SignatureProperty) -->
-
-<!-- Start Algorithm Parameters -->
-
-<simpleType name="HMACOutputLengthType">
-  <restriction base="integer"/>
-</simpleType>
-
-<!-- Start KeyValue Element-types -->
-
-<element name="DSAKeyValue" type="ds:DSAKeyValueType"/>
-<complexType name="DSAKeyValueType">
-  <sequence>
-    <sequence minOccurs="0">
-      <element name="P" type="ds:CryptoBinary"/>
-      <element name="Q" type="ds:CryptoBinary"/>
-    </sequence>
-    <element name="G" type="ds:CryptoBinary" minOccurs="0"/>
-    <element name="Y" type="ds:CryptoBinary"/>
-    <element name="J" type="ds:CryptoBinary" minOccurs="0"/>
-    <sequence minOccurs="0">
-      <element name="Seed" type="ds:CryptoBinary"/>
-      <element name="PgenCounter" type="ds:CryptoBinary"/>
-    </sequence>
-  </sequence>
-</complexType>
-
-<element name="RSAKeyValue" type="ds:RSAKeyValueType"/>
-<complexType name="RSAKeyValueType">
-  <sequence>
-    <element name="Modulus" type="ds:CryptoBinary"/>
-    <element name="Exponent" type="ds:CryptoBinary"/>
-  </sequence>
-</complexType>
-
-<!-- End KeyValue Element-types -->
-
-<!-- End Signature -->
-
-</schema>
diff --git a/l10n_it_account/views/account_menuitem.xml b/l10n_it_account/views/account_menuitem.xml
index 08f7b4095b05..db141af9c96c 100644
--- a/l10n_it_account/views/account_menuitem.xml
+++ b/l10n_it_account/views/account_menuitem.xml
@@ -28,4 +28,5 @@
             action="date_range.date_range_generator_action"
         />
     </menuitem>
+
 </odoo>
diff --git a/l10n_it_account/views/account_view.xml b/l10n_it_account/views/account_view.xml
deleted file mode 100644
index 8316b74f0a41..000000000000
--- a/l10n_it_account/views/account_view.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<!--
-  ~ Copyright 2022 Simone Rubino - TAKOBI
-  ~ License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
-  -->
-<odoo>
-    <record id="view_account_form_sign" model="ir.ui.view">
-        <field name="name">account.account.form.sign</field>
-        <field name="model">account.account</field>
-        <field name="inherit_id" ref="account.view_account_form" />
-        <field name="arch" type="xml">
-            <field name="account_type" position="after">
-                <field name="account_balance_sign" />
-            </field>
-        </field>
-    </record>
-
-    <record id="view_account_group_form_sign" model="ir.ui.view">
-        <field name="name">account.group.form.sign</field>
-        <field name="model">account.group</field>
-        <field name="inherit_id" ref="account.view_account_group_form" />
-        <field name="arch" type="xml">
-            <field name="name" position="after">
-                <field name="account_balance_sign" />
-            </field>
-        </field>
-    </record>
-
-    <record id="view_account_list_sign" model="ir.ui.view">
-        <field name="name">view.account.list.sign</field>
-        <field name="model">account.account</field>
-        <field name="inherit_id" ref="account.view_account_list" />
-        <field name="arch" type="xml">
-            <field name="account_type" position="after">
-                <field name="account_balance_sign" />
-            </field>
-        </field>
-    </record>
-</odoo>
diff --git a/l10n_it_account/views/product_view.xml b/l10n_it_account/views/product_view.xml
deleted file mode 100644
index 44088ea0ad4f..000000000000
--- a/l10n_it_account/views/product_view.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<!-- Copyright 2018 Sergio Zanchetta (Associazione PNLUG - Gruppo Odoo)
-     License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
-<odoo>
-    <!-- accounting label -->
-    <record id="product_template_form_view" model="ir.ui.view">
-        <field name="name">product.template.inherit.view.form</field>
-        <field name="model">product.template</field>
-        <field name="inherit_id" ref="account.product_template_form_view" />
-        <field name="arch" type="xml">
-            <page name="invoicing" position="attributes">
-                <attribute name="string">Accounting</attribute>
-            </page>
-        </field>
-    </record>
-</odoo>
diff --git a/l10n_it_account/views/res_config_settings_views.xml b/l10n_it_account/views/res_config_settings_views.xml
index 55976528fa8b..8eeb0111c48d 100644
--- a/l10n_it_account/views/res_config_settings_views.xml
+++ b/l10n_it_account/views/res_config_settings_views.xml
@@ -8,9 +8,9 @@
         <field name="model">res.config.settings</field>
         <field name="inherit_id" ref="account.res_config_settings_view_form" />
         <field name="arch" type="xml">
-            <div data-key="account" position="attributes">
+            <app name="account" position="attributes">
                 <attribute name="string">Accounting</attribute>
-            </div>
+            </app>
         </field>
     </record>
 </odoo>
diff --git a/l10n_it_account/wizards/__init__.py b/l10n_it_account/wizards/__init__.py
deleted file mode 100644
index 96580484d9e2..000000000000
--- a/l10n_it_account/wizards/__init__.py
+++ /dev/null
@@ -1,3 +0,0 @@
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-
-from . import base_language_install
diff --git a/l10n_it_account/wizards/base_language_install.py b/l10n_it_account/wizards/base_language_install.py
deleted file mode 100644
index d69aef03fc74..000000000000
--- a/l10n_it_account/wizards/base_language_install.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Copyright 2024 Sergio Zanchetta (PNLUG APS - Gruppo Odoo)
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-
-from odoo import models
-
-
-class BaseLanguageInstall(models.TransientModel):
-    _inherit = "base.language.install"
-
-    def lang_install(self):
-        res = super().lang_install()
-
-        lang = self.env["res.lang"]
-
-        if "it_IT" in self.lang_ids.mapped("code"):
-            lang.update_menu_finance_it_translation()
-
-        return res