﻿<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (c) 2007, Your Corporation. All Rights Reserved. -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<!-- -->	<!-- Elementi -->	<!-- -->	
	<xs:element name="Accertamenti" type="AccertamentiType"/>	
	<xs:element name="AmbientePolveroso" type="SINOType"/>	
	<xs:element name="ASL" type="ASLType"/>	
	<xs:element name="Cap" type="CAPType"/>	
	<xs:element name="CategoriaCNEL" type="Stringa4Type"/>	
	<xs:element name="CittadinanzaItaliana" type="SINOType"/>	
	<xs:element name="CodiceFiscale" type="CodiceFiscaleType"/>	
	<xs:element name="CodiceISTAT" type="ISTATType"/>	
	<xs:element name="CodiceISTATNascita" type="ISTATType"/>	
	<xs:element name="Cognome" type="Stringa30Type"/>	
	<xs:element name="Comune" type="Stringa60Type"/>	
	<xs:element name="Continuativo" type="SINOType"/>	
	<xs:element name="DataAl" type="DateType"/>	
	<xs:element name="DataAssunzione" type="DateType"/>	
	<xs:element name="DataDal" type="DateType"/>	
	<xs:element name="DataNascita" type="DateType"/>	
	<xs:element name="DataVisita" type="DateType"/>	
	<xs:element name="DatiComunali" type="DatiComunaliType"/>	
	<xs:element name="DatorePresente" fixed="SI"/>	
	<xs:element name="Denuncia" type="DenunciaSAType"/>	
	<xs:element name="Descrizione" type="DescrizioneType"/>	
	<xs:element name="DescrizioneLavorazioneSvolta" type="Stringa130Type"/>	
	<xs:element name="ElencoDenunce" type="ElencoDenunceType"/>	
	<xs:element name="FlagStudente" type="SINOType"/>	
	<xs:element name="Frazione" type="Stringa20Type"/>	
	<xs:element name="Indirizzo" type="Stringa60Type"/>	
	<xs:element name="Lavorazione" type="Stringa30Type"/>	
	<xs:element name="LibrettoSanitario" type="SINOType"/>
	<xs:element name="LocalitaLavori" type="Stringa130Type"/>	
	<xs:element name="MaterialeUmido" type="SINOType"/>	
	<xs:element name="MedicoAssunzione" type="Stringa60NoBlankType"/>	
	<xs:element name="MedicoPrecedente" type="Stringa60NoBlankType"/>	
	<xs:element name="MisureSicurezza" type="Stringa60NoBlankType"/>	
	<xs:element name="ModalitaPagamento" type="ModalitaPagamentoType"/>	
	<xs:element name="NaturaMateriali" type="Stringa30NoBlankType"/>	
	<xs:element name="NaturaRoccia" type="Stringa30NoBlankType"/>	
	<xs:element name="Nazione" type="NazioneType"/>	
	<xs:element name="Nome" type="Stringa30Type"/>	
	<xs:element name="OreEsposizione" type="DurataOrariaType"/>	
	<xs:element name="ParenteDatoreLavoro" type="SINOType"/>	
	<xs:element name="PeriodoEsposizione" type="PeriodoEsposizioneType"/>	
	<xs:element name="PersoneACarico" type="SINOType"/>	
	<xs:element name="Prefisso" type="PrefissoType"/>	
	<xs:element name="Provincia" type="ProvinciaType"/>	
	<xs:element name="QualificaAssicurativa" type="Stringa2Type"/>	
	<xs:element name="RepartoStabilimento" type="Stringa30Type"/>	
	<xs:element name="Sesso" type="FMType"/>	
	<xs:element name="SettoreCNEL" type="Stringa1Type"/>	
	<xs:element name="StatoCivile" type="StatoCivileType"/>	
	<xs:element name="Telefono" type="telefonoType"/>	
	<xs:element name="TipoLavoratore" type="Stringa2Type"/>	
	<xs:element name="TipoContratto" type="Stringa1Type"/>
	<xs:element name="TipologiaPT" type="Stringa1Type"/>	
	<xs:element name="PercentualePT" type="Stringa5Type"/>
	<xs:element name="DalleOre" type="Stringa5Type"/>	
	<xs:element name="AlleOre" type="Stringa5Type"/>	
	<xs:element name="TutelaINPS" type="SINOType"/>	
	<xs:element name="UltimaEsposizione" type="DateType"/>	
	<!--  ‘Esempio voceProfessionale: "9.9.9.9.9.9" oppure "9.9.9.9.9.99 -->	
	<xs:element name="VoceProfessionale" type="Stringa12Type"/>	
	<xs:element name="DataSegnalazione" type="DateType"/>	
	<!-- -->	<!-- Definizione Tipi Complessi -->	<!-- -->	
	<xs:complexType name="AccertamentiType">	
		<xs:sequence>		
			<xs:element ref="MedicoPrecedente"/>			
			<xs:element ref="DataVisita" maxOccurs="4"/>			
		</xs:sequence>		
	</xs:complexType>	
	<xs:complexType name="AnagraficaType">	
		<xs:sequence>		
			<xs:element ref="CodiceFiscale"/>			
			<xs:element ref="Cognome"/>			
			<xs:element ref="Nome"/>			
			<xs:element ref="Sesso"/>			
			<xs:element ref="DataNascita"/>			
			<xs:element ref="DatiComunali"/>			
			<xs:element ref="CittadinanzaItaliana"/>			
			<xs:element ref="ASL"/>			
		</xs:sequence>		
	</xs:complexType>	
	<xs:complexType name="DatiComunaliType">	
		<xs:sequence>		
			<xs:element ref="CodiceISTAT"/>			
			<xs:element ref="Nazione"/>			
		</xs:sequence>
	</xs:complexType>	
	<xs:complexType name="DomicilioType">	
		<xs:sequence>		
			<xs:element ref="Indirizzo"/>			
			<xs:element ref="Prefisso"/>			
			<xs:element ref="Telefono"/>			
			<xs:element ref="Frazione" minOccurs="0"/>			
			<xs:element ref="Cap"/>			
			<xs:element ref="DatiComunali"/>			
		</xs:sequence>		
	</xs:complexType>	
	<xs:complexType name="DatoreLavoroType">	
		<xs:sequence>		
			<xs:element ref="LocalitaLavori" minOccurs="0"/>			
			<xs:element ref="DescrizioneLavorazioneSvolta" minOccurs="0"/>			
			<xs:element ref="RepartoStabilimento" minOccurs="0"/>			
		</xs:sequence>		
	</xs:complexType>	
	<xs:complexType name="DenunciaSAType">	
		<xs:sequence>		
			<xs:element name="InfoDenuncia" type="InfoDenunciaType"/>			
			<xs:element name="DatoreLavoro" type="DatoreLavoroType"/>			
			<xs:element name="Lavoratore" type="LavoratoreType"/>			
			<xs:element name="SilicosiAsbestosi" type="SilAsbType"/>			
			<xs:element name="DatiCertificato" type="DatiCertificatoType"/>			
		</xs:sequence>		
	</xs:complexType>	
	<xs:complexType name="DescrizioneType">	
		<xs:sequence>		
			<xs:element ref="DataSegnalazione"/>			
			<xs:element ref="Lavorazione"/>			
			<xs:element ref="OreEsposizione" minOccurs="0"/>			
			<xs:element ref="Continuativo" minOccurs="0"/>			
			<xs:element ref="AmbientePolveroso" minOccurs="0"/>			
			<xs:element ref="MaterialeUmido" minOccurs="0"/>			
			<xs:element ref="UltimaEsposizione" minOccurs="0"/>			
			<xs:element ref="MisureSicurezza"/>			
			<xs:element ref="MedicoAssunzione" minOccurs="0"/>			
			<xs:element ref="LibrettoSanitario"/>			
			<xs:element ref="Accertamenti" minOccurs="0"/>			
		</xs:sequence>		
	</xs:complexType>	
	<xs:complexType name="ElencoDenunceType">	
		<xs:sequence>		
			<xs:element ref="Denuncia" maxOccurs="10"/>			
		</xs:sequence>		
		<xs:attribute name="tipoDenuncia" type="xs:string" use="required" fixed="M"/>		
		<xs:attribute name="codiceDitta" type="CodiceDittaType" use="required"/>		
		<xs:attribute name="codicePAT" type="CodicePATType" use="required"/>		
	</xs:complexType>	
	<xs:complexType name="SilAsbType">	
		<xs:sequence>		
			<xs:element ref="PeriodoEsposizione" maxOccurs="3"/>			
			<xs:element ref="Descrizione"/>			
		</xs:sequence>		
	</xs:complexType>	
	<xs:complexType name="InfoDenunciaType">	
		<xs:sequence>		
			<xs:element ref="ModalitaPagamento" minOccurs="0"/>			
		</xs:sequence>		
	</xs:complexType>	
	<xs:complexType name="LavoratoreType">	
		<xs:sequence>		
			<xs:element name="Anagrafica" type="AnagraficaType"/>			
			<xs:element name="Domicilio" type="DomicilioType"/>			
			<xs:element ref="StatoCivile" minOccurs="0"/>			
			<xs:element ref="PersoneACarico" minOccurs="0"/>			
			<xs:element ref="ParenteDatoreLavoro" minOccurs="0"/>			
			<xs:element ref="FlagStudente"/>			
			<xs:element ref="TutelaINPS"/>			
			<xs:element ref="TipoLavoratore" minOccurs="0"/>			
			<xs:element ref="TipoContratto" minOccurs="0"/>			
			<xs:element ref="DataAssunzione" minOccurs="0"/>			
			<xs:element ref="TipologiaPT" minOccurs="0"/>			
			<xs:element ref="PercentualePT" minOccurs="0"/>			
			<xs:element name="ArticolazioneOrario" type="ArtOrarioType" minOccurs="0"/>			
			<xs:element ref="SettoreCNEL" minOccurs="0"/>			
			<xs:element ref="CategoriaCNEL" minOccurs="0"/>			
			<xs:element ref="QualificaAssicurativa" minOccurs="0"/>			
			<xs:element ref="VoceProfessionale" minOccurs="0"/>			
		</xs:sequence>		
	</xs:complexType>	
	<xs:complexType name="ArtOrarioType">	
		<xs:sequence>		
			<xs:element ref="DalleOre"/>			
			<xs:element ref="AlleOre"/>			
		</xs:sequence>		
	</xs:complexType>	
	<xs:complexType name="PeriodoEsposizioneType">	
		<xs:sequence>		
			<xs:element ref="DataDal"/>			
			<xs:element ref="DataAl"/>			
			<xs:element ref="NaturaRoccia" minOccurs="0"/>			
			<xs:element ref="NaturaMateriali" minOccurs="0"/>			
			<xs:element ref="VoceProfessionale" minOccurs="0"/>			
		</xs:sequence>		
	</xs:complexType>	
	<xs:complexType name="DatiCertificatoType">	
		<xs:sequence>		
			<!-- Estremi del Certificato medico -->			
			<xs:element name="IdentificativoCertificato" type="Stringa12TypeNoEmpty"/>			
			<xs:element name="DataRilascio" type="DateType"/>			
		</xs:sequence>		
	</xs:complexType>	
	<!-- -->	<!-- Definizione Tipi Semplici -->	<!-- -->	
	<xs:simpleType name="ASLType">	
		<xs:restriction base="xs:string">		
			<xs:maxLength value="5"/>			
			<xs:pattern value="[a-zA-Z]{2}\d{3}"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="CAPType">	
		<xs:restriction base="xs:string">		
			<xs:pattern value="\d{5}"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="CodiceDittaType">	
		<xs:annotation>		
			<xs:documentation>stringa di 9 cifre, per gestire correttamente eventuali codici cliente con uno o piu' 0 iniziali</xs:documentation>			
		</xs:annotation>		
		<xs:restriction base="xs:string">		
			<xs:pattern value="\d{1,9}"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="CodiceFiscaleType">	
		<xs:restriction base="xs:string">		
			<xs:pattern value="[A-Z]{6}[0-9LMNPQRSTUV]{2}[A-Z][0-9LMNPQRSTUV]{2}[A-Z][0-9LMNPQRSTUV]{3}[A-Z]"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="CodicePATType">	
		<xs:annotation>		
			<xs:documentation>Numero della posizione assicurativa territoriale (P.A.T.).</xs:documentation>			
		</xs:annotation>		
		<xs:restriction base="xs:string">		
			<xs:maxLength value="9"/>			
			<xs:pattern value="\d+"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="DateType">	
		<xs:restriction base="xs:date">		
			<xs:minInclusive value="1900-01-01"/>			
			<xs:pattern value="\d{4}-\d{2}-\d{2}"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="DurataOrariaType">	
		<xs:restriction base="xs:string">		
			<xs:maxLength value="2"/>			
			<xs:pattern value="\d+"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="FMType">	
		<xs:restriction base="xs:string">		
			<xs:enumeration value="F"/>			
			<xs:enumeration value="M"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="ISTATType">	
		<xs:restriction base="xs:string">		
			<xs:pattern value="\d{6}"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="ModalitaPagamentoType">	
		<xs:restriction base="xs:string">		
			<xs:enumeration value="1"/>			
			<xs:enumeration value="2"/>		
			<xs:enumeration value="5"/>		
	<!--  1=nessuna scelta; 2=rimborso al lavoratore; 5=Alla ditta tramite bonifico su conto corrente -->			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="NazioneType">	
		<xs:restriction base="xs:string">		
			<xs:maxLength value="3"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="PrefissoType">	
		<xs:restriction base="xs:string">		
			<xs:maxLength value="4"/>			
			<xs:pattern value="\d+"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="ProvinciaType">	
		<xs:restriction base="xs:string">		
			<xs:length value="2"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="SINOType">	
		<xs:restriction base="xs:string">		
			<xs:enumeration value="SI"/>			
			<xs:enumeration value="NO"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="StatoCivileType">	
		<xs:restriction base="xs:string">		
			<xs:enumeration value="1"/>			
			<xs:enumeration value="2"/>			
			<xs:enumeration value="3"/>			
			<xs:enumeration value="4"/>			
			<xs:enumeration value="5"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="Stringa1Type">	
		<xs:restriction base="xs:string">		
			<xs:maxLength value="1"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="Stringa2Type">	
		<xs:restriction base="xs:string">		
			<xs:maxLength value="2"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="Stringa4Type">	
		<xs:restriction base="xs:string">		
			<xs:maxLength value="4"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="Stringa5Type">	
		<xs:restriction base="xs:string">		
			<xs:maxLength value="5"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="Stringa10Type">	
		<xs:restriction base="xs:string">		
			<xs:maxLength value="10"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="Stringa12Type">	
		<xs:restriction base="xs:string">		
			<xs:maxLength value="12"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="Stringa20Type">	
		<xs:restriction base="xs:string">		
			<xs:maxLength value="20"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="Stringa30Type">	
		<xs:restriction base="xs:string">		
			<xs:maxLength value="30"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="Stringa30NoBlankType">	
		<xs:restriction base="xs:string">		
			<xs:minLength value="1"/>			
			<xs:maxLength value="30"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="Stringa50Type">	
		<xs:restriction base="xs:string">		
			<xs:maxLength value="50"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="Stringa60NoBlankType">	
		<xs:restriction base="xs:string">		
			<xs:minLength value="1"/>			
			<xs:maxLength value="60"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="Stringa60Type">	
		<xs:restriction base="xs:string">		
			<xs:maxLength value="60"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="Stringa130Type">	
		<xs:restriction base="xs:string">		
			<xs:maxLength value="130"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="telefonoType">	
		<xs:restriction base="xs:string">		
			<xs:maxLength value="10"/>			
			<xs:pattern value="\d+"/>			
		</xs:restriction>		
	</xs:simpleType>	
	<xs:simpleType name="Stringa12TypeNoEmpty">	
		<xs:restriction base="xs:string">		
			<xs:minLength value="1"/>			
			<xs:maxLength value="12"/>			
		</xs:restriction>		
	</xs:simpleType>	
</xs:schema>
