﻿<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2010 (http://www.altova.com) by ciccio sandro (ciccio srl) -->
<!--
  - 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="Denuncia" type="DenunciaSAType"/>
	<xs:element name="Descrizione" type="DescrizioneType"/>
	<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="MaterialeUmido" type="SINOType"/>
	<xs:element name="MedicoAssunzione" type="Stringa60NoBlankType"/>
	<xs:element name="MedicoPrecedente" type="Stringa60NoBlankType"/>
	<xs:element name="MisureSicurezza" type="Stringa60NoBlankType"/>
	<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="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="Stringa1Type"/>
	<xs:element name="TipoContratto" type="Stringa1Type"/>
	<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"/>
	<!-- -->
	<!-- 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="DenunciaSAType">
		<xs:sequence>
			<xs:element name="Lavoratore" type="LavoratoreType"/>
			<xs:element name="SilicosiAsbestosi" type="SilAsbType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DescrizioneType">
		<xs:sequence>
			<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="codiceINAIL" type="CodiceINAILType" 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="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="TipoLavoratore" minOccurs="0"/>
			<xs:element ref="TipoContratto" minOccurs="0"/>
			<xs:element ref="DataAssunzione" 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="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>
	<!-- -->
	<!-- 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="CodiceINAILType">
		<xs:annotation>
			<xs:documentation>Deve essere valorizzato in base al contenuto delle tabelle di riferimento inviate dall'Ente</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="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="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="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:schema>
