Files
maschera/Fiscality/plugins/it.smi.adex.ixconfiguration_17.11.0/resources/DatiFattura_v2.0.xsd

507 lines
20 KiB
XML
Executable File

<?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/v2.0"
targetNamespace="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v2.0" version="1.0">
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd" />
<!-- =================================================================== -->
<!-- ELEMENTI -->
<!-- =================================================================== -->
<xs:element name="DatiFattura" type="DatiFatturaType">
<xs:annotation>
<xs:documentation>XML schema fatture emesse e ricevute ex D.Lgs. 127/205 (art.1, c.3) 2.0</xs:documentation>
</xs:annotation>
</xs:element>
<!-- =================================================================== -->
<!-- TIPI -->
<!-- =================================================================== -->
<xs:complexType name="DatiFatturaType">
<xs:sequence>
<xs:element name="DatiFatturaHeader" type="DatiFatturaHeaderType" minOccurs="0" />
<xs:choice>
<xs:element name="DTE" type="DTEType" />
<xs:element name="DTR" type="DTRType" />
<xs:element name="ANN" type="ANNType" />
</xs:choice>
<xs:element ref ="ds:Signature" minOccurs="0" />
</xs:sequence>
<xs:attribute name="versione" type="VersioneType" use="required" />
</xs:complexType>
<xs:complexType name="DatiFatturaHeaderType">
<xs:sequence>
<xs:element name="ProgressivoInvio" type="String10Type" minOccurs="0" />
<xs:element name="Dichiarante" type="DichiaranteType" minOccurs="0" />
<xs:element name="IdSistema" type="CodiceFiscaleType" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="DichiaranteType">
<xs:sequence>
<xs:element name="CodiceFiscale" type="CodiceFiscaleType" />
<xs:element name="Carica" type="CaricaType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="DTEType">
<xs:sequence>
<xs:element name="CedentePrestatoreDTE" type="CedentePrestatoreDTEType" />
<xs:element name="CessionarioCommittenteDTE" type="CessionarioCommittenteDTEType" maxOccurs="1000"/>
<xs:element name="Rettifica" type="RettificaType" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="DTRType">
<xs:sequence>
<xs:element name="CessionarioCommittenteDTR" type="CessionarioCommittenteDTRType" />
<xs:element name="CedentePrestatoreDTR" type="CedentePrestatoreDTRType" maxOccurs="1000" />
<xs:element name="Rettifica" type="RettificaType" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ANNType">
<xs:sequence>
<xs:element name="IdFile" type="String18Type" />
<xs:element name="Posizione" type="PosizioneType" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="CedentePrestatoreDTEType">
<xs:annotation><xs:documentation>Blocco relativo ai dati del Cedente / Prestatore</xs:documentation></xs:annotation>
<xs:sequence>
<xs:element name="IdentificativiFiscali" type="IdentificativiFiscaliITType" />
<xs:element name="AltriDatiIdentificativi" type="AltriDatiIdentificativiNoSedeType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="CedentePrestatoreDTRType">
<xs:annotation><xs:documentation>Blocco relativo ai dati del Cedente / Prestatore</xs:documentation></xs:annotation>
<xs:sequence>
<xs:element name="IdentificativiFiscali" type="IdentificativiFiscaliType" />
<xs:element name="AltriDatiIdentificativi" type="AltriDatiIdentificativiNoCAPType" />
<xs:element name="DatiFatturaBodyDTR" type="DatiFatturaBodyDTRType" maxOccurs="1000" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="CessionarioCommittenteDTEType">
<xs:annotation><xs:documentation>Blocco relativo ai dati del Cessionario / Committente</xs:documentation></xs:annotation>
<xs:sequence>
<xs:element name="IdentificativiFiscali" type="IdentificativiFiscaliNoIVAType" minOccurs="0" />
<xs:element name="AltriDatiIdentificativi" type="AltriDatiIdentificativiNoCAPType" minOccurs="0" />
<xs:element name="DatiFatturaBodyDTE" type="DatiFatturaBodyDTEType" maxOccurs="1000" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="CessionarioCommittenteDTRType">
<xs:annotation><xs:documentation>Blocco relativo ai dati del Cessionario / Committente</xs:documentation></xs:annotation>
<xs:sequence>
<xs:element name="IdentificativiFiscali" type="IdentificativiFiscaliITType" />
<xs:element name="AltriDatiIdentificativi" type="AltriDatiIdentificativiNoSedeType" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="DatiFatturaBodyDTEType">
<xs:sequence>
<xs:element name="DatiGenerali" type="DatiGeneraliType" />
<xs:element name="DatiRiepilogo" type="DatiRiepilogoType" maxOccurs="1000" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="DatiFatturaBodyDTRType">
<xs:sequence>
<xs:element name="DatiGenerali" type="DatiGeneraliDTRType" />
<xs:element name="DatiRiepilogo" type="DatiRiepilogoType" maxOccurs="1000" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="RettificaType">
<xs:sequence>
<xs:element name="IdFile" type="String18Type" />
<xs:element name="Posizione" type="PosizioneType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="IdentificativiFiscaliType">
<xs:sequence>
<xs:element name="IdFiscaleIVA" type="IdFiscaleType" />
<xs:element name="CodiceFiscale" type="CodiceFiscaleType" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="IdentificativiFiscaliITType">
<xs:sequence>
<xs:element name="IdFiscaleIVA" type="IdFiscaleITType" />
<xs:element name="CodiceFiscale" type="CodiceFiscaleType" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="IdentificativiFiscaliNoIVAType">
<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="AltriDatiIdentificativiNoSedeType">
<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" minOccurs="0" />
<xs:element name="StabileOrganizzazione" type="IndirizzoType" minOccurs="0" />
<xs:element name="RappresentanteFiscale" type="RappresentanteFiscaleITType" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="AltriDatiIdentificativiNoCAPType">
<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="IndirizzoNoCAPType" />
<xs:element name="StabileOrganizzazione" type="IndirizzoType" minOccurs="0" />
<xs:element name="RappresentanteFiscale" type="RappresentanteFiscaleType" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="IndirizzoNoCAPType">
<xs:sequence>
<xs:element name="Indirizzo" type="String60LatinType" />
<xs:element name="NumeroCivico" type="NumeroCivicoType" minOccurs="0" />
<xs:element name="CAP" type="CAPType" minOccurs="0" />
<xs:element name="Comune" type="String60LatinType" />
<xs:element name="Provincia" type="ProvinciaType" minOccurs="0" />
<xs:element name="Nazione" type="NazioneType" />
</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" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="RappresentanteFiscaleType">
<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="RappresentanteFiscaleITType">
<xs:sequence>
<xs:element name="IdFiscaleIVA" type="IdFiscaleITIvaType" />
<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="DatiGeneraliType">
<xs:sequence>
<xs:element name="TipoDocumento" type="TipoDocumentoType" />
<xs:element name="Data" type="DataFatturaType" />
<xs:element name="Numero" type="String20Type" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="DatiGeneraliDTRType">
<xs:sequence>
<xs:element name="TipoDocumento" type="TipoDocumentoType" />
<xs:element name="Data" type="DataFatturaType" />
<xs:element name="Numero" type="String20Type" />
<xs:element name="DataRegistrazione" type="DataFatturaType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="DatiRiepilogoType">
<xs:sequence>
<xs:element name="ImponibileImporto" type="Amount2DecimalType" />
<xs:element name="DatiIVA" type="DatiIVAType" />
<xs:element name="Natura" type="NaturaType" minOccurs="0" />
<xs:element name="Detraibile" type="RateType" minOccurs="0" />
<xs:element name="Deducibile" type="DeducibileType" minOccurs="0" />
<xs:element name="EsigibilitaIVA" type="EsigibilitaIVAType" 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="IdFiscaleType">
<xs:sequence>
<xs:element name="IdPaese" type="NazioneType" />
<xs:element name="IdCodice" type="CodiceType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="IdFiscaleITType">
<xs:sequence>
<xs:element name="IdPaese" type="NazioneITType" />
<xs:element name="IdCodice" type="CodiceType" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="IdFiscaleITIvaType">
<xs:sequence>
<xs:element name="IdPaese" type="NazioneITType" />
<xs:element name="IdCodice" type="CodiceIvaType" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="CodiceFiscaleType">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z0-9]{11,16}" />
</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="NazioneITType">
<xs:restriction base="xs:string">
<xs:length value="2" />
<xs:enumeration value="IT">
<xs:annotation><xs:documentation>Italia</xs:documentation></xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CodiceType">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="28" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CodiceIvaType">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
<xs:maxLength value="11" />
</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="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="ProvinciaType">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{2}" />
</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="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="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="TD10">
<xs:annotation><xs:documentation>Acquisto beni intra</xs:documentation></xs:annotation>
</xs:enumeration>
<xs:enumeration value="TD11">
<xs:annotation><xs:documentation>Acquisto servizi intra</xs:documentation></xs:annotation>
</xs:enumeration>
</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="PosizioneType">
<xs:restriction base="xs:integer">
<xs:minInclusive value="1" />
<xs:maxInclusive value="9999999" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CaricaType">
<xs:restriction base="xs:integer">
<xs:minInclusive value="1" />
<xs:maxInclusive value="15" />
</xs:restriction>
</xs:simpleType>
<!-- STRINGHE -->
<xs:simpleType name="String10Type">
<xs:restriction base="xs:normalizedString">
<xs:pattern value="(\p{IsBasicLatin}{1,10})" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="String18Type">
<xs:restriction base="xs:normalizedString">
<xs:pattern value="(\p{IsBasicLatin}{1,18})" />
</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="VersioneType">
<xs:restriction base="xs:string">
<xs:length value="5" />
<xs:enumeration value="DAT20">
<xs:annotation><xs:documentation>Dati fatture versione 2.0</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</xs:documentation></xs:annotation>
</xs:enumeration>
<xs:enumeration value="N2">
<xs:annotation><xs:documentation>Non soggette</xs:documentation></xs:annotation>
</xs:enumeration>
<xs:enumeration value="N3">
<xs:annotation><xs:documentation>Non Imponibili</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</xs:documentation></xs:annotation>
</xs:enumeration>
<xs:enumeration value="N6">
<xs:annotation><xs:documentation>Inversione contabile (reverse charge)</xs:documentation></xs:annotation>
</xs:enumeration>
<xs:enumeration value="N7">
<xs:annotation>
<xs:documentation> IVA assolta in altro stato UE
(vendite a distanza ex art. 40 c. 3 e 4 e art. 41 c. 1 lett. b, DL 331/93;
prestazione di servizi di telecomunicazioni, tele-radiodiffusione ed elettronici
ex art. 7-sexies lett. f, g, art. 74-sexies DPR 633/72)
</xs:documentation></xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DeducibileType">
<xs:restriction base="xs:string">
<xs:length value="2" />
<xs:enumeration value="SI">
<xs:annotation><xs:documentation>Spesa deducibile</xs:documentation></xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<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="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>
<!-- NUMERI -->
<xs:simpleType name="Amount2DecimalType">
<xs:restriction base="xs:decimal">
<xs:pattern value="[\-]?[0-9]{1,11}\.[0-9]{2}" />
</xs:restriction>
</xs:simpleType>
</xs:schema>