<?xml version="1.0" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
	xmlns:ht="http://www.w3.org/1999/xhtml">
	<xs:annotation>
		<xs:documentation>
			ICCU - Istituto Centrale per il Catalogo Unico delle
			Biblioteche
			Italiane e per le Informazioni Bibliografiche
			<ht:br />
			Laboratorio per le Informazioni Bibliografiche
			<ht:br />
			Schema XML per lo scambio dei dati relativi a biblioteche
			italiane
			<ht:br />
			Revisione a cura di Carla Di Loreto, Ornella Napoli, Andrea
			Giuliano,
			Annamaria Mandillo
			<ht:br />
			Redazione dello schema a cura di Andrea Giuliano
			<ht:br />
			Storia delle revisioni
			<ht:pre>
				$Author: m.bartolozzi $ $Id: biblioteca-1.1.xsd,v 1.3
				2006-07-12 08:44:56 giuliano Exp $ $Log:
				biblioteca-1.1.xsd,v $
				Revision 1.3 2006-07-12 08:44:56
				giuliano - Modificati o creati
				alcuni elementi per
				aderire quanto più possibile al modulo di
				rilevamento
				predisposto dalle regioni. In particolare:

				- reso
				opzionale il codice iccu, con l'idea di gestire
				biblioteche senza
				codice, ma almeno con provincia, come
				vengono gestite attualmente
				dall'applicativo - servizi:
				aggiunta carta-servizi, ore-settimanali,
				ore-settimanali-pomeridiane, settimane-apertura -
				patrimonio:
				aggiunti elementi
				acquisti-ultimi-quindici-anni, totale-posseduto e
				totale-posseduto-ragazzi; aggiunto attributo
				acquisti-ultimo-anno a
				materialeType - amministrativa:
				aggiunto elemento
				minori-quattordici-anni a utenti

				- Trasformati in nonNegativeInteger
				tutti gli integer.

				- Individuata la necessità di concordare liste
				d'autorità per: - servizi in carta-servizi (quali
				possono essere i
				servizi?) - categoria-ammessa in
				accesso (quali categorie possono
				accedere?)

				- Piccole correzioni qua e là.

				Revision 1.2 2006/03/14
				09:25:54 giuliano Aggiunte: -
				citazione bibliografica per i cataloghi
				a volume -
				superficie totale e al pubblico - carta dei servizi (non
				gestita da ICCU) - quantità dei prestiti dei vari tipi
				(non gestiti
				da ICCU) Correzioni: - "fondo-antico"
				diventa "fondi-antichi", non
				ripetibile -
				"fondoAnticoType" ha ora solo un attributo "volumi", che
				a sua volta è solo una enumerazione di valori che indica
				i tre
				possibili intervalli numerici di posseduto (-1000,
				1000-5000, e
				5000-)

				Revision 1.1 2006/03/07 13:17:23 giuliano Alla copertura
				bibliografica di catalogoType sono stati aggiunti due
				elementi con
				formato "YYYY", in modo da rappresentare un
				intervallo di anni.
			</ht:pre>
		</xs:documentation>


	</xs:annotation>

	<xs:element name="biblioteche">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="data-export" type="xs:dateTime"
					minOccurs="1" maxOccurs="1">
					<xs:annotation>
						<xs:documentation>
							Data della creazione del file XML (generato con
							un esport).
						</xs:documentation>
					</xs:annotation>
				</xs:element>
				
				<xs:element name="biblioteca" type="bibliotecaType"
					minOccurs="1" maxOccurs="unbounded" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:complexType name="bibliotecaType">
		<xs:annotation>
			<xs:documentation>
				L'elemento "biblioteca" è la radice di un documento
				di
				questo tipo. Tale elemento fa parte di un content model
				"xsd:all",
				che non obbliga a rispettare l'ordine in cui
				si presentano gli
				elementi, a differenza di
				"xsd:sequence".
			</xs:documentation>
			<xs:documentation>
				In tutto il resto dello schema si tende ad usare
				questo
				content model, perché meno rigido. Non dovrebbe
				comportare
				eccessivo carico per il parser.
			</xs:documentation>
			<xs:documentation>
				La maggior parte degli elementi e attributi
				risultano
				opzionali e ripetibili, ma questi aspetti saranno
				oggetto di
				una revisione futura dell'intero schema alla
				luce delle possibilità e
				delle richieste dei diversi
				partner interessati a scambiare dati nel
				formato qui
				descritto.
			</xs:documentation>
			<xs:documentation>
				Nei casi più elementari si è ritenuto opportuno
				fissare
				l'obbligatorietà e la ripetibilità degli elementi.
			</xs:documentation>
			<xs:documentation>
				L'elemento biblioteca adesso è obbligatorio.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element minOccurs="1" name="anagrafica" type="anagraficaType" />
			<xs:element minOccurs="0" name="cataloghi" type="cataloghiType" />
			<xs:element minOccurs="0" name="patrimonio" type="patrimonioType" />
			<xs:element minOccurs="0" name="specializzazioni">
				<xs:annotation>
					<xs:documentation>
						E' stato introdotto l'elemento ripetibile
						'specializzazioni' come contenitore
						delle eventuali specializzazioni.
				</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="specializzazione" type="specializzazioneType" maxOccurs="unbounded" minOccurs="0" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element minOccurs="0" name="servizi" type="serviziType" />
			<xs:element minOccurs="0" name="amministrativa" type="amministrativaType" />
		</xs:sequence>
	</xs:complexType>


	<xs:complexType name="anagraficaType">
		<xs:annotation>
			<xs:documentation>
				Questo tipo raggruppa tutte le informazioni di tipo
				strettamente anagrafico.
			</xs:documentation>
			<xs:documentation>
				L'elemento anagrafica adesso è obbligatorio.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="data-censimento" type="annoSecoloType"
				minOccurs="0" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>
						Data in cui è stata censita la biblioteca
						(raccolta dati).
						Formato: AAAA
						</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="data-aggiornamento" type="xs:dateTime"
				minOccurs="0" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>
						Ultima data in cui è stata modificata la
						biblioteca (dal gestionale) (x export ICCU).
						Formato:
						AAAA-MM-GGTHH:mm:ss
						</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="fonte" minOccurs="0">
				<xs:annotation>
					<xs:documentation>
						Fonte da cui proviene l'export della biblioteca
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="descrizione" minOccurs="1" type="xs:string" />
						<xs:element name="url" minOccurs="1" type="xs:string" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="nomi">
				<xs:annotation>
					<xs:documentation>
						Nomi di una biblioteca. È un insieme in cui solo
						il nome attuale è obbligatorio e non ripetibile,
						mentre quelli
						precedenti e quelli alternativi
						sono opzionali e ripetibili.
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="attuale">
							<xs:simpleType>
								<xs:restriction base="xs:string" />
							</xs:simpleType>
						</xs:element>
						<xs:element name="precedenti" minOccurs="0">
							<xs:annotation>
								<xs:documentation>
									E' stato introdotto l'elemento ripetibile
									'precedenti' come
									contenitore
									delle eventuali precedenti
									denominazioni.
							</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:sequence>
									<xs:element name="precedente" minOccurs="0"
										maxOccurs="unbounded">
										<xs:simpleType>
											<xs:restriction base="xs:string" />
										</xs:simpleType>
									</xs:element>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
						<xs:element name="alternativi" minOccurs="0">
							<xs:annotation>
								<xs:documentation>
									E' stato introdotto l'elemento ripetibile
									'alternativi' come contenitore delle
									eventuali denominazioni alternative.
							</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:sequence>
									<xs:element name="alternativo" minOccurs="0"
										maxOccurs="unbounded">
										<xs:simpleType>
											<xs:restriction base="xs:string" />
										</xs:simpleType>
									</xs:element>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="codici">
				<xs:annotation>
					<xs:documentation>
						Codici di una biblioteca.
					</xs:documentation>
					<xs:documentation>
						È un elemento che raggruppa diversi codici.
						Nessuno è ripetibile. I nomi degli elementi
						dovrebbero essere
						auto-esplicativi.
					</xs:documentation>
					<xs:documentation>
						Si sfruttano qui le possibilità offerte da XML
						Schema per effettuare una prima validazione dei
						codici attraverso
						opportune espressioni
						regolari. È però importante capire che si
						tratta
						di una validazione superficiale: ad esempio, per
						i codici
						basati sulle sigle di provincia non
						viene controllato che la sigla
						sia corretta, ma
						solo del tipo "AA".
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="isil" minOccurs="1" type="xs:string">
							<xs:annotation>
								<xs:documentation>
									Il codice "iccu" può essere omesso
									nel caso la
									biblioteca in esame non
									sia mai stata censita dall'ICCU.
									Essa
									sarà trattata come una nuova
									biblioteca, come avviene tramite
									l'applicativo web dell'ICCU. Per
									questo motivo, è necessario che
									nell'anagrafica sia specificata la
									provincia, altrimenti non è
									possibile assegnare la parte
									iniziale del codice.
									Nota r.eschini:
									tolte tutte le restriction e messo a required il codice iccu
								</xs:documentation>
								<xs:documentation>
									DEPRECATO: 'iccu' sostituito dall'elemento
									'isil'.
								</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element minOccurs="0" name="acnp" type="xs:string" />
						<xs:element minOccurs="0" name="rism" type="xs:string" />
						<xs:element minOccurs="0" name="sbn" type="xs:string" />
						<xs:element minOccurs="0" name="cei" type="xs:string" />
						<xs:element minOccurs="0" name="cmbs" type="xs:string" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element minOccurs="0" name="indirizzo">
				<xs:annotation>
					<xs:documentation>
						Questo tipo descrive un indirizzo di biblioteca.
						È opzionale come tutti i suoi sotto-elementi, ma
						forse almeno uno
						dovrebbe essere reso
						obbligatorio, altrimenti si potrebbe
						istanziare
						un "indirizzo" vuoto.
					</xs:documentation>
					<xs:documentation>
						Per il CAP, il comune, la provincia, la regione
						e
						lo stato valgono le osservazioni fatte circa i
						codici di
						biblioteca: la validazione si ferma
						alla semplice struttura.
					</xs:documentation>
					<xs:documentation>
						Per comuni e provincie si adottano i codici
						ISTAT. Per lo stato si usa il codice ISO di due
						lettere, senza
						distinguere fra maiuscolo e
						minuscolo.
					</xs:documentation>
					<xs:documentation>
						Al momento non viene fatto alcun controllo sulla
						regione, ma è un elemento che la base dati
						ricevente dovrebbe
						essere in grado di ricavare a
						partire dal solo codice ISTAT del
						comune,
						attraverso proprie tabelle di raggruppamento.
					</xs:documentation>
					<xs:documentation>
						Inserito nuovo elemento, opzionale, coordinate
						contenente
						due attributi (se specificati, devono essere valorizzati
						entrambi), latitudine e longitudine.
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element minOccurs="0" name="via" type="xs:string" />
						<xs:element minOccurs="0" name="cap" type="xs:string" />
						<xs:element minOccurs="0" name="frazione" type="xs:string" />
						<xs:element minOccurs="1" name="comune">
							<xs:annotation>
								<xs:documentation>
									L'elemento comune adesso è obbligatorio.
								</xs:documentation>
							</xs:annotation>
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:pattern value="[0-9]{6}" />
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
						<xs:element minOccurs="0" name="provincia">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:pattern value="[0-9]{3}" />
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
						<xs:element minOccurs="0" name="regione" type="xs:string" />
						<xs:element minOccurs="0" name="stato">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:pattern value="[a-zA-Z]{2}" />
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
						<xs:element minOccurs="0" name="coordinate">
							<xs:complexType>
								<xs:attribute name="latitudine" use="required"
									type="xs:double" />
								<xs:attribute name="longitudine" use="required"
									type="xs:double" />
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element minOccurs="0" name="contatti">
				<xs:annotation>
					<xs:documentation>
						Varie modalità per contattare la biblioteca e il suo personale.
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element minOccurs="0" name="telefonici">
							<xs:annotation>
								<xs:documentation>
									E' stato introdotto l'elemento ripetibile
									'telefonici' come contenitore degli 
									eventuali contatti telefonici.
							</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:sequence>
									<xs:element minOccurs="0" name="telefonico" maxOccurs="unbounded">
										<xs:annotation>
											<xs:documentation>
												Un contatto di tipo telefonico. Il prefisso è
												ovviamente quello internazionale.
											</xs:documentation>
											<xs:documentation>
												Nelle note, opzionali e ripetibili, si dovrebbe
												indicare, ad esempio, se si tratta di un centralino, o del
												numero di una persona etc...
												L'attributo "tipo" serve a distinguere un telefono da un fax.
											</xs:documentation>
											<xs:documentation>
												Numero e prefisso sono obbligatori e non ripetibili,
												altrimenti non avrebbe senso istanziare questo elemento.
											</xs:documentation>
											<xs:documentation>
												Prefisso e numero sono validati in modo molto elementare.
											</xs:documentation>
										</xs:annotation>
										<xs:complexType>
											<xs:sequence>
												<xs:element name="prefisso" type="xs:string" />
												<xs:element name="numero" type="xs:string" />
												<xs:element minOccurs="0" name="note" type="xs:string" />
											</xs:sequence>
											<xs:attribute name="tipo" use="required">
												<xs:simpleType>
													<xs:restriction base="xs:string">
														<xs:enumeration value="fax" />
														<xs:enumeration value="telefono" />
													</xs:restriction>
												</xs:simpleType>
											</xs:attribute>
										</xs:complexType>
									</xs:element>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
						<xs:element minOccurs="0" name="altri">
							<xs:annotation>
								<xs:documentation>
									E' stato introdotto l'elemento ripetibile
									'altri' come contenitore degli eventuali
									altri contatti telefonici.
							</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:sequence>
									<xs:element name="altro" minOccurs="0" maxOccurs="unbounded">
										<xs:annotation>
											<xs:documentation>
												I contatti di questo tipo prevedono
												solo le
												note e un valore, oltre a un
												attributo "tipo" che, al momento,
												consente di specificare solo un
												indirizzo e-mail, una URL o un
												telex. Ovviamente la stringa
												"valore" può contenere qualsiasi
												cosa, quindi non c'è garanzia che
												tale stringa sia conforme al
												tipo
												specificato.
											</xs:documentation>
											<xs:documentation>
												Le note sono opzionali e ripetibili,
												sebbene la
												ripetibilità sia
												discutibile. Il valore è invece
												obbligatorio e
												non ripetibile,
												altrimenti si potrebbe istanziare un
												elemento
												vuoto.
											</xs:documentation>
											<xs:documentation>
												Una linea di sviluppo potrebbe
												prevedere dei
												pattern per la
												validazione dei valori. Questo
												comporterebbe però
												l'uso di
												sotto-elementi invece che di
												attributi, altrimenti non
												sarebbe
												possibile vincolare i valori con
												pattern.
											</xs:documentation>
										</xs:annotation>
										<xs:complexType>
											<xs:sequence>
												<xs:element name="valore" type="xs:string" />
												<xs:element minOccurs="0" name="note" type="xs:string" />
											</xs:sequence>
											<xs:attribute name="tipo" use="required">
												<xs:simpleType>
													<xs:restriction base="xs:string">
														<xs:enumeration value="e-mail" />
														<xs:enumeration value="telex" />
														<xs:enumeration value="url" />
													</xs:restriction>
												</xs:simpleType>
											</xs:attribute>
										</xs:complexType>
									</xs:element>
						</xs:sequence>
						</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element minOccurs="0" name="edificio">
				<xs:annotation>
					<xs:documentation>
						Dati relativi all'edificio. Sono tutti
						opzionali,
						ma potrebbe essere più sensato
						renderne obbligatorio almeno uno.
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element minOccurs="0" name="denominazione" type="xs:string" />
						<xs:element minOccurs="0" name="monumentale" type="siNoType" />
						<xs:element minOccurs="0" name="appositamente-costruito"
							type="siNoType" />
						<!-- <xs:element minOccurs="0" name="tipoDataCostruzione" type="annoSecoloType" 
							/> <xs:element minOccurs="0" name="dataCostruzione" type="xs:string" /> -->
						<xs:element minOccurs="0" name="data-costruzione" type="annoSecoloType" />
						<xs:element minOccurs="0" name="immagini">
							<xs:annotation>
								<xs:documentation>
									E' stato introdotto l'elemento ripetibile
									'immagini' come contenitore delle 
									eventuali immagini inserite per la biblioteca.
							</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:sequence>
									<xs:element minOccurs="0" name="immagine" maxOccurs="unbounded">
									<xs:complexType>
											<xs:sequence>
												<xs:element name="url" minOccurs="1" type="xs:string" />
												<xs:element name="didascalia" minOccurs="1" type="xs:string" />
											</xs:sequence>
									</xs:complexType>
								</xs:element>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element minOccurs="0" name="istituzione">
				<xs:annotation>
					<xs:documentation>
						Data in cui è stata istituita formalmente
						l'attuale biblioteca. È possibile anche indicare
						l'anno di prima
						istituzione o fondazione, nel
						caso che la biblioteca abbia avuto
						nel tempo
						gestioni amministrative diverse.
					</xs:documentation>
					<xs:documentation>
						DEPRECATO: 'Istituzione' è stato sostituito
						dall'elemento 'istituzione'.
						Inoltre gli elementi 'dataIstituzione'
						e 'dataFondazione' sono diventati
						rispettivamente
						'data-istituzione' e 'data-fondazione'.
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element minOccurs="0" name="data-istituzione" type="annoSecoloType" />
						<!-- <xs:element minOccurs="0" name="tipoDataFondazione" type="annoSecoloType" 
							/> <xs:element minOccurs="0" name="dataFondazione" type="xs:string" /> -->
						<xs:element minOccurs="0" name="data-fondazione" type="annoSecoloType" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="patrimonioType">
		<xs:annotation>
			<xs:documentation>
				Tipo utilizzato per descrivere il patrimonio di una
				biblioteca. I sotto-elementi sono tutti ripetibili, e
				sarebbe
				opportuno istanziare questo elemento solo se
				contiene almeno un
				sotto-elemento non vuoto, ma si è
				preferito comunque non rendere
				obbligatori i
				sotto-elementi.
			</xs:documentation>
			<xs:documentation>
				L'elemento "materiale" va ripetuto per ciascun tipo
				di
				materiale. Non è prevista una gerarchia fra i materiali,
				anche se
				alcune basi dati, fra cui quella ICCU,
				organizzano i materiali in
				gerarchie a due o più
				livelli. Imporre in questo contesto una
				gerarchia non
				gestita in modo uniforme dalle base dati appare
				superfluo e limitante.
			</xs:documentation>
			<xs:documentation>
				Anche l'elemento "fondo-speciale" va ripetuto per
				ciascuna istanza di fondo. Inventario e catalogo
				topografico sono
				invece non ripetibili. L'elemento
				"fondi-antichi", invece, serve solo
				a conteggiare in
				modo approssimativo i volumi dei diversi fondi
				antichi
				della biblioteca, e quindi non è ripetibile. I tre
				valori
				dell'attributo "volumi" sono da intendersi "fino
				a 1000", "da 1000 a
				5000", e "oltre 5000".
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element minOccurs="0" name="materiali">
				<xs:complexType>
					<xs:sequence>
						<xs:element minOccurs="0" maxOccurs="unbounded" name="materiale"
							type="materialeType" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element minOccurs="0" name="fondi-speciali">
				<xs:complexType>
					<xs:sequence>
						<xs:element minOccurs="0" maxOccurs="unbounded" name="fondo-speciale"
							type="fondoSpecialeType" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element minOccurs="0" name="fondi-antichi" type="fondoAnticoType" />
			<xs:element minOccurs="0" name="inventario" type="infCarType">
				<xs:annotation>
					<xs:documentation>
						L'inventario, opzionale, può essere
						informatizzato o cartaceo (oppure, ovviamente,
						entrambi).
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element minOccurs="0" name="catalogo-topografico"
				type="infCarType">
				<xs:annotation>
					<xs:documentation>
						Il catalogo è trattato esattamente come
						l'inventario.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="acquisti-ultimi-quindici-anni" type="xs:decimal"
				minOccurs="0">
				<xs:annotation>
					<xs:documentation>
						Totale degli acquisti, indipendentemente dal
						tipo
						di materiale, effettuati negli ultimi
						quindici anni.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="totale-posseduto" type="xs:nonNegativeInteger"
				minOccurs="0">
				<xs:annotation>
					<xs:documentation>
						Totale del posseduto, indipendentemente dal tipo
						di materiale. Si pone il problema della coerenza
						di questo dato con
						quello del posseduto per i
						singoli materiali. Si presume che
						l'applicativo
						ricevente non sia tenuto a verificare questa
						coerenza.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="totale-posseduto-ragazzi" type="xs:nonNegativeInteger"
				minOccurs="0">
				<xs:annotation>
					<xs:documentation>
						Totale del posseduto destinato ai minori di 16
						anni, indipendentemente dal tipo di materiale.
						Anche per questo
						dato, si presume che
						l'applicativo ricevente non sia tenuto a
						verificarne la coerenza con gli altri dati
						patrimoniali ricevuti.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="cataloghiType">
		<xs:annotation>
			<xs:documentation>
				Tipo che raccoglie i diversi cataloghi. Un elemento
				di
				questo tipo può dunque contenere i tre tipi di cataloghi
				di seguito
				definiti.
			</xs:documentation>
			<xs:documentation>
				Tutti i tre sotto-elementi sono opzionali e
				ripetibili
				in un ordine qualsiasi. Nel definire i tre sottotipi
				sono
				sfruttate dove possibile le somiglianze fra i tre,
				attraverso la
				derivazione di un tipo da un altro.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element minOccurs="0" name="cataloghi-generali">
				<xs:annotation>
					<xs:documentation>
						E' stato introdotto l'elemento ripetibile
						'cataloghi-generali' come contenitore
						degli eventuali cataloghi generali.
				</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="catalogo-generale" type="catalogoType" minOccurs="0" maxOccurs="unbounded" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element minOccurs="0" name="cataloghi-speciali">
				<xs:annotation>
					<xs:documentation>
						E' stato introdotto l'elemento ripetibile
						'cataloghi-speciali' come contenitore
						degli eventuali cataloghi speciali.
				</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="catalogo-speciale" type="catalogoSpecialeType" minOccurs="0" maxOccurs="unbounded" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element minOccurs="0" name="cataloghi-collettivi">
				<xs:annotation>
					<xs:documentation>
						E' stato introdotto l'elemento ripetibile
						'cataloghi-collettivi' come contenitore
						degli eventuali cataloghi collettivi.
				</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="catalogo-collettivo" type="catalogoCollettivoType" minOccurs="0" maxOccurs="unbounded" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="serviziType">
		<xs:annotation>
			<xs:documentation>
				Tipo di elemento relativo ai servizi offerti da una
				biblioteca. Fra questi, gli orari di apertura, il
				prestito, le
				informazioni bibliografiche, tipo e
				condizioni di accesso e diverse
				altre informazioni.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element minOccurs="0" name="orario">
				<xs:annotation>
					<xs:documentation>
						Questo elemento non ripetibile raggruppa tutte
						le
						informazioni relative agli orari di accesso
						alla biblioteca. I
						sottoelementi, tutti
						opzionali, sono per lo più ripetibili, eccetto
						ovviamente l'orario ufficiale.
					</xs:documentation>
					<xs:documentation>
						L'elemento serve solo da contenitore. Non è
						necessario dal punto di vista applicativo, ma
						agevola la
						leggibilità dello schema, che in
						questa parte è piuttosto
						articolato.
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="ufficiale" minOccurs="0" type="orarioType">
							<xs:annotation>
								<xs:documentation>
									Questo elemento contiene almeno un
									elemento
									"orario" di tipo
									"orarioType", da non confondere con
									l'elemento
									soprastante. Si veda più
									avanti la descrizione di questo tipo
									di
									elemento.
								</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="variazione" minOccurs="0" maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>
									Le variazioni di orario sono
									espresse da
									eventuali elementi di
									questo tipo. Esso è identico ad un
									orario
									ufficiale (orarioType), salvo per
									l'aggiunta di una nota
									esplicativa (e
									del periodo di validità, attualmente deprecato e
									non
									considerato in import e export). La nota esplicativa
									può
									essere di
									qualsiasi forma.
								</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:complexContent>
									<xs:extension base="orarioType">
										<xs:sequence>
											<xs:element name="periodo" type="xs:string"
												minOccurs="0" maxOccurs="1" />
											<xs:element name="note" type="xs:string" />
										</xs:sequence>
									</xs:extension>
								</xs:complexContent>
							</xs:complexType>
						</xs:element>

						<xs:element name="chiusura" minOccurs="0" maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>
									Un periodo di chiusura è
									semplicemente una nota
									esplicativa (e
									del periodo di validità, attualmente deprecato e
									non
									considerato in import e export). La nota esplicativa
									può
									essere di
									qualsiasi forma. (dal-al, periodo natalizio,...).
								</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:sequence>
									<xs:element name="periodo" type="xs:string" minOccurs="0" maxOccurs="1" />
									<xs:element name="note" type="xs:string" />
								</xs:sequence>
							</xs:complexType>
						</xs:element>
						<xs:element name="ore-settimanali" type="xs:decimal"
							minOccurs="0">
							<xs:annotation>
								<xs:documentation>
									Totale delle ore di apertura
									settimanali.
									Questo elemento può
									essere presente insieme all'orario
									dettagliato (di tipo orarioType), e
									il suo valore può essere
									incoerente
									con l'orario dettagliato, ma gli
									applicativi che
									ricevono i dati sono
									liberi di verificare la congruità
									dei dati
									segnalati oppure no.
								</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="ore-settimanali-pomeridiane"
							minOccurs="0" type="xs:decimal">
							<xs:annotation>
								<xs:documentation>
									Totale delle ore di apertura
									pomeridiana
									settimanali. Ovviamente
									dovrebbe essere minore di
									ore-settimanali, ma circa la
									congruità di questo dato con gli
									altri, vale quanto già detto per
									ore-settimanali: non è
									garantito un
									controllo da parte degli applicativi
									riceventi.
								</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="settimane-apertura" minOccurs="0"
							type="xs:decimal">
							<xs:annotation>
								<xs:documentation>
									Numero di settimane di apertura
									della
									biblioteca in un anno. Anche
									per questo dato, gli applicativi
									riceventi non dovrebbero essere
									costretti a verificare la
									coerenza
									con gli altri dati di questo gruppo.
								</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>

			<xs:element minOccurs="0" name="prestito">
				<xs:annotation>
					<xs:documentation>
						Varie informazioni relative al servizio di
						prestito. Ci sono diversi sotto-elementi di
						ovvio significato,
						tutti opzionali.
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element minOccurs="0" name="locale">
							<xs:annotation>
								<xs:documentation>
									A parte l'elemento "automatizzato", che serve ad indicare se il prestito
									avviene con procedure automatizzate oppure no, e che pertanto è di tipo
									"siNoType", gli altri sono soltanto stringhe, anche se la durata
									potrebbe essere vincolata con un pattern opportuno, e gli altri due
									possono contenere valori controllati, che però è meglio
									lasciare fuori dallo schema. In particolare, il materiale escluso
									potrebbe essere normalizzato in base alle apposite norme ISO. 
									Qualcosa del genere andrebbe studiato anche per gli utenti ammessi.
								</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:sequence>
									<xs:element minOccurs="0" name="automatizzato" type="siNoType" />
									<xs:element minOccurs="0" name="materiali-esclusi">
										<xs:annotation>
											<xs:documentation>
												E' stato introdotto l'elemento ripetibile
												'materiali-esclusi' come contenitore
												degli eventuali materiali.
										</xs:documentation>
										</xs:annotation>
										<xs:complexType>
											<xs:sequence>
												<xs:element name="materiale-escluso" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
											</xs:sequence>
										</xs:complexType>
									</xs:element>
									<xs:element minOccurs="0" name="durata" type="xs:string" />
									<xs:element name="utenti-ammessi" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
									<xs:element name="totale-prestiti" type="xs:decimal" minOccurs="0" maxOccurs="1">
										<xs:annotation>
											<xs:documentation>
												Questo elemento
												conteggia il totale dei
												prestiti di questo tipo
												effettuati nel periodo
												di
												osservazione.
												Dev'essere un numero.
											</xs:documentation>
										</xs:annotation>
									</xs:element>
								</xs:sequence>
								<xs:attribute name="attivo" type="siNoType" use="required" />
							</xs:complexType>
						</xs:element>
						<xs:element minOccurs="0" name="interbibliotecario">
							<xs:annotation>
								<xs:documentation>
									In questo elemento, pur opzionale,
									si è
									ritenuto opportuno rendere
									obbligatorio almeno il
									sotto-elemento
									"tipo", escludendo la
									paradossale situazione di una
									biblioteca
									che offre il servizio, ma
									non sa di che tipo.
								</xs:documentation>
								<xs:documentation>
									L'elemento è ripetibile al più due
									volte perché
									la biblioteca può
									offrire due tipi di prestito
									interbibliotecario, ed è opportuno
									che essi siano descritti in
									elementi
									separati. Tuttavia non si può
									escludere che vengano
									descritti due
									elementi dello stesso tipo, sebbene
									un applicativo
									dovrebbe produrne
									tipicamente sempre al più due, e di
									tipi
									diversi.
								</xs:documentation>
								<xs:documentation>
									Ovviamente l'elemento "sistema-ill"
									è opzionale
									e ripetibile, in quanto
									la biblioteca può partecipare a più
									d'uno.
								</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:sequence>
									<xs:element name="tipo-prestito" minOccurs="0" maxOccurs="unbounded">
										<xs:complexType>
											<xs:sequence>
												<xs:element name="internazionale" type="siNoType" minOccurs="0" />
												<xs:element name="nazionale" type="siNoType" minOccurs="0" />
												<xs:element name="ruolo">
													<xs:simpleType>
														<xs:restriction base="xs:string">
															<xs:enumeration value="POS" />
															<xs:enumeration value="DSC" />
														</xs:restriction>
													</xs:simpleType>
												</xs:element>
											</xs:sequence>
										</xs:complexType>
									</xs:element>
									<xs:element name="automatizzato" type="siNoType" minOccurs="0" />
									<xs:element name="totale-prestiti" type="xs:decimal" minOccurs="0" maxOccurs="1">
										<xs:annotation>
											<xs:documentation>
												Questo elemento conteggia il totale dei prestiti di questo tipo
												effettuati nel periodo di osservazione. Dev'essere un numero.
											</xs:documentation>
										</xs:annotation>
									</xs:element>
									<xs:element name="sistema-ill" minOccurs="0" maxOccurs="unbounded">
										<xs:complexType>
											<xs:sequence>
												<xs:element name="nome" type="xs:string" />
												<xs:element name="note" type="xs:string" minOccurs="0" />
											</xs:sequence>
										</xs:complexType>
									</xs:element>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
						<xs:element minOccurs="0" name="materiali-esclusi-locale">
							<xs:annotation>
								<xs:documentation>
									Con questo elemento si dà la possibilità di
									inserire una lista di materiali esclusi dal
									prestito locale.
								</xs:documentation>
								<xs:documentation>
									DEPRECATO: reinserito all'interno del prestito locale.
								</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:sequence>
									<xs:element name="materiale" type="xs:string" minOccurs="1" maxOccurs="unbounded" />
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>

			<xs:element minOccurs="0" name="riproduzioni">
				<xs:annotation>
					<xs:documentation>
						Con questo elemento si dà la possibilità di
						inserire una lista di riproduzioni ammesse.							
								</xs:documentation>
					<xs:documentation>
						Introdotto attributo 'attivo' del tipo siNoType.
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element minOccurs="0" maxOccurs="unbounded" name="riproduzione">
							<xs:annotation>
								<xs:documentation>
									Con questo elemento si dà la possibilità di
									esprimere le modalità di riprodurre i vari
									materiali ammessi al
									prestito locale,
									nazionale e/o internazionale.
								</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:sequence>
									<xs:element minOccurs="1" type="xs:string" name="tipo" />
									<xs:element name="locale" minOccurs="0" type="siNoType" />
									<xs:element name="nazionale" minOccurs="0" type="siNoType" />
									<xs:element name="internazionale" minOccurs="0"
										type="siNoType" />
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
					<xs:attribute name="attivo" type="siNoType" use="required" />
				</xs:complexType>
			</xs:element>

			<xs:element name="informazioni-bibliografiche" minOccurs="0">
				<xs:annotation>
					<xs:documentation>
						Per segnalare la disponibilità del servizio
						interno si usa l'elemento vuoto omonimo,
						soluzione discutibile ma
						funzionante. Essa ha il
						vantaggio di mettere questo servizio allo
						stesso
						livello del "servizio-esterno", com'è logico.
						Quest'ultimo
						però è più articolato.
					</xs:documentation>
					<xs:documentation>
						L'elemento informazioni bibliografiche diventa
						opzionale.
					</xs:documentation>
					<xs:documentation>
						Introdotto attributo 'attivo' del tipo siNoType.
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="servizio-interno" minOccurs="0"
							type="siNoType" />
						<xs:element name="servizio-esterno" minOccurs="0">
							<xs:annotation>
								<xs:documentation>
									Se è specificato il servizio
									esterno, sarebbe
									opportuno indicare
									almeno un "modo" di espletamento del
									servizio
									stesso. Come in altri casi,
									anche un elemento vuoto potrebbe
									essere accettato, come semplice
									segnalazione di un servizio
									disponibile. Starà poi
									all'applicativo ricevente decidere
									se
									ignorare tale informazione,
									perché troppo vaga, o tenerne
									comunque conto.
								</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:sequence>
									<xs:element name="modo" minOccurs="0" maxOccurs="unbounded"
										type="xs:string" />
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
					<xs:attribute name="attivo" type="siNoType" use="required" />
				</xs:complexType>
			</xs:element>
			<xs:element name="internet" minOccurs="0">
				<xs:annotation>
					<xs:documentation>
						Accesso a Internet da postazioni locali. La
						modalità "limitato" potrebbe essere fonte di
						equivoci. In ogni
						caso, la modalità è opzionale
						e ripetibile.
						NB. MODIFICATO TIPO
						ENUMERATO 
					</xs:documentation>
					<xs:documentation>
						L'elemento modo opzionale e ripetibile è stato
						sostituito da tre flag: a tempo, a pagamento, con proxy.
					</xs:documentation>
					<xs:documentation>
						L'elemento internet diventa opzionale.
					</xs:documentation>
					<xs:documentation>
						Introdotto attributo 'attivo' del tipo siNoType.
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="a-tempo" minOccurs="0" type="siNoType" />
						<xs:element name="a-pagamento" minOccurs="0" type="siNoType" />
						<xs:element name="con-proxy" minOccurs="0" type="siNoType" />
					</xs:sequence>
					<xs:attribute name="attivo" type="siNoType" use="required" />
				</xs:complexType>
			</xs:element>
			<xs:element name="accesso" minOccurs="0">
				<xs:annotation>
					<xs:documentation>
						Riguarda le modalità di accesso alla biblioteca,
						sia in termini logistici (e.g. portatori di
						handicap), sia in
						termini amministrativi (chi
						può accedere ai servizi e a quali
						condizioni può
						farlo).
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="aperta" minOccurs="0" type="siNoType">
							<xs:annotation>
								<xs:documentation>
									L'elemento segnala semplicemente la
									possibilità di accedere liberamente alla
									biblioteca. In caso contrario la biblioteca
									risulta essere riservata.
								</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="handicap" minOccurs="0" type="siNoType">
							<xs:annotation>
								<xs:documentation>
									La presenza di questo elemento, che
									può essere
									vuoto, segnala
									semplicemente la possibilità di
									accesso ai
									portatori di handicap, ma
									per ora non viene qui attribuito
									alcun
									significato particolare al suo
									eventuale contenuto.
								</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element minOccurs="0" name="modalita-accesso">
							<xs:annotation>
								<xs:documentation>
									Modalità di accesso. Le condizioni raggruppate 
									sono intese in AND logico.
								</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:sequence>
									<xs:element name="modo" minOccurs="1" maxOccurs="unbounded" type="xs:string" />
								</xs:sequence>
							</xs:complexType>
						</xs:element>
						<xs:element minOccurs="0" name="destinazioni-sociali">
							<xs:complexType>
								<xs:sequence>
									<xs:element minOccurs="1" maxOccurs="unbounded"
										name="destinazione">
										<xs:complexType>
											<xs:sequence>
												<xs:element minOccurs="1" maxOccurs="1" name="valore"
													type="xs:string" />
												<xs:element minOccurs="0" maxOccurs="1" name="note"
													type="xs:string" />
											</xs:sequence>
										</xs:complexType>
									</xs:element>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element minOccurs="0" name="sistemi">
				<xs:annotation>
					<xs:documentation>
						Se la biblioteca partecipa a uno o più sistemi
						di
						biblioteche, questi devono essere dichiarati
						in questo elemento,
						utilizzando sottoelementi
						"sistema". È obbligatorio almeno uno di
						questi
						sottoelementi. I sottoelementi "sistema"
						contegono
						semplicemente il nome di ciascun
						sistema di biblioteche.
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence minOccurs="1" maxOccurs="unbounded">
						<xs:element name="sistema" type="xs:string" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element minOccurs="0" name="sezioni-speciali">
				<xs:annotation>
					<xs:documentation>
						Se la biblioteca ha delle sezioni speciali,
						queste vanno inserite in altrettanti elementi
						"sezione". Nella
						maschera di ricerca avanzata
						dell'anagrafe, alla voce "Sezione
						speciale", è
						disponibile l'intero elenco delle sezioni
						speciali
						registrate dal sistema.
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element minOccurs="1" maxOccurs="unbounded" name="sezione"
							type="xs:string" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="reference" minOccurs="0">
				<xs:annotation>
					<xs:documentation>
						Servizio di reference: se disponibile, può essere locale o 
						online (email, telefono, fax, ecc...).
						Presente attributo 'attivo' del tipo siNoType.
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="locale" type="siNoType" minOccurs="0" />
						<xs:element name="online" type="siNoType" minOccurs="0" />
					</xs:sequence>
					<xs:attribute name="attivo" type="siNoType" use="required" />
				</xs:complexType>
			</xs:element>
			<xs:element name="document-delivery" minOccurs="0">
				<xs:annotation>
					<xs:documentation>
						Servizio di document delivery: se attivo, può avere una o 
						più tipologie.
						Presente attributo 'attivo' del tipo siNoType.
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element minOccurs="0" name="forme">
							<xs:annotation>
								<xs:documentation>
									Elemento opzionale tipologie, contenitore di "tipologia" che attinge
									alla tabella dei tipi di riproduzione.
								</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:sequence>
									<xs:element name="forma" type="xs:string" minOccurs="1" maxOccurs="unbounded" />
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
					<xs:attribute name="attivo" type="siNoType" use="required" />
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:simpleType name="tipoDocType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="documentoIdentità" />
			<xs:enumeration value="tesseraBiblioteca" />
			<xs:enumeration value="letteraPresentazione" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="modoInternetType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="libero" />
			<xs:enumeration value="a pagamento" />
			<xs:enumeration value="a tempo" />
			<xs:enumeration value="limitato" />
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="amministrativaType">
		<xs:annotation>
			<xs:documentation>
				Tipo di elemento recante informazioni di carattere
				amministrativo. È la parte che più probabilmente
				richiederà
				aggiustamenti per soddisfare le esigenze di
				vari enti. Molti elementi
				sono auto-esplicativi.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="codice-fiscale" type="xs:string"
				minOccurs="0" />
			<xs:element name="partita-IVA" type="xs:string" minOccurs="0" />
			<xs:element name="autonoma" type="siNoType" minOccurs="0">
				<xs:annotation>
					<xs:documentation>
						Eventuale autonomia di spesa.
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="ente" minOccurs="0">
				<xs:annotation>
					<xs:documentation>
						Dati relativi all'ente da cui la biblioteca
						dipende. Almeno il nome è obbligatorio. Inoltre,
						andrebbe discussa
						l'opportunità di fare
						riferimento ad una lista controllata di enti,
						individuati tramite il solo codice fiscale o la
						partita IVA. Devono
						esistere certamente simili
						liste, e le diverse basi dati dovrebbero
						attenersi ad esse, almeno in parte.
					</xs:documentation>
					<xs:documentation>
						La funzione-obiettivo corrisponde al COFOG.
					</xs:documentation>
					<xs:documentation>
						La funzione-obiettivo è stata rimossa.
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="nome" type="xs:string" />
						<xs:element name="tipologia-amministrativa" type="xs:string" minOccurs="0" />
						<xs:element name="tipologia-funzionale" type="xs:string" minOccurs="0" />
						<xs:element name="stato" type="xs:string" minOccurs="0" />
						<xs:element name="codice-fiscale" type="xs:string" minOccurs="0" />
						<xs:element name="partita-IVA" type="xs:string" minOccurs="0" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="regolamento" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="norma" type="xs:string" minOccurs="0" />
						<xs:element name="url" type="xs:string" minOccurs="0" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="carta-servizi" minOccurs="0">
				<xs:annotation>
					<xs:documentation>
						Questo elemento opzionale indica se la
						biblioteca
						si è dotata di una carta dei servizi
						o meno, e per quali servizi
						specifici. Gli
						eventuali singoli servizi devono essere elencati
						in
						altrettanti elementi "servizio", sotto forma
						di stringhe
						alfanumeriche. Se l'elemento è
						vuoto, vuol dire solo che esiste una
						carta dei
						servizi, ma mancano altre informazioni. I valori
						andrebbero standardizzati attraverso
						un'opportuna lista d'autorità
						concordata.
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="servizio" type="xs:string" minOccurs="0"
							maxOccurs="unbounded" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="depositi-legali" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="deposito-legale" minOccurs="0"
							maxOccurs="unbounded">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="tipo" type="xs:string" />
									<xs:element name="anno-inizio" type="xs:string" minOccurs="0" />
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
					<xs:attribute name="attivo" type="siNoType" use="required" />
				</xs:complexType>
			</xs:element>
			<xs:element name="strutture" minOccurs="0">
				<xs:annotation>
					<xs:documentation>
						Questo elemento e i suoi sotto-elementi
						descrivono sommariamente le strutture di cui la
						biblioteca dispone.
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="scaffalature" minOccurs="0">
							<xs:annotation>
								<xs:documentation>
									I valori dei sotto-elementi sono ovviamente da intendersi in metri.
									Trattandosi di decimali, non sono ammessi valori come "30m" o "30 metri".
								</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:sequence>
									<xs:element name="magazzino" type="xs:decimal" minOccurs="0" />
									<xs:element name="pubbliche" type="xs:decimal" minOccurs="0" />
								</xs:sequence>
							</xs:complexType>
						</xs:element>
						<xs:element name="superficie" minOccurs="0">
							<xs:annotation>
								<xs:documentation>
									I valori dei sotto-elementi sono ovviamente da
									intendersi in metri quadrati. Trattandosi di decimali,
									non sono ammessi valori come "100mq" o "100 metri quadri".
								</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:sequence>
									<xs:element name="totale" type="xs:decimal" minOccurs="0" />
									<xs:element name="al-pubblico" type="xs:decimal" minOccurs="0" />
								</xs:sequence>
							</xs:complexType>
						</xs:element>
						<xs:element name="postazioni" minOccurs="0">
							<xs:annotation>
								<xs:documentation>
									Le postazioni si dividono in diversi elementi, tutti opzionali.
									Se un elemento è presente, deve avere un valore, e questo è forse 
									scomodo se si vuole solo indicare che la biblioteca dispone 
									genericamente di postazioni internet o audio, senza
									indicare quante. Per consentire la semplice segnalazione si dovrebbe
									usare un costrutto più complesso.
								</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:sequence>
									<xs:element name="lettura" type="xs:nonNegativeInteger" minOccurs="0" />
									<xs:element name="video" type="xs:nonNegativeInteger" minOccurs="0" />
									<xs:element name="audio" type="xs:nonNegativeInteger" minOccurs="0" />
									<xs:element name="internet" type="xs:nonNegativeInteger" minOccurs="0" />
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="utenti" minOccurs="0">
				<xs:annotation>
					<xs:documentation>
						Informazioni relative agli utenti della biblioteca.
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="ultimo-anno" type="xs:nonNegativeInteger" minOccurs="0" />
						<xs:element name="iscritti-prestito" type="xs:nonNegativeInteger" minOccurs="0" />
						<xs:element name="minori-quattordici-anni" type="xs:nonNegativeInteger" minOccurs="0" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="personale" minOccurs="0">
				<xs:annotation>
					<xs:documentation>
						Informazioni relative al personale impiegato a vario titolo nella biblioteca.
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="totale" type="xs:nonNegativeInteger" minOccurs="0" />
						<xs:element name="temporaneo" type="xs:nonNegativeInteger" minOccurs="0" />
						<xs:element name="part-time" type="xs:nonNegativeInteger" minOccurs="0" />
						<xs:element name="esterno" type="xs:nonNegativeInteger" minOccurs="0" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="bilancio" minOccurs="0">
				<xs:annotation>
					<xs:documentation>
						Informazioni relative al bilancio della biblioteca.
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="entrate" type="xs:decimal" minOccurs="0" />
						<xs:element name="uscite" minOccurs="0">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="totale" type="xs:decimal" minOccurs="0" />
									<xs:element name="personale" type="xs:decimal" minOccurs="0" />
									<xs:element name="funzionamento" type="xs:decimal" minOccurs="0" />
									<xs:element name="automazione" type="xs:decimal" minOccurs="0" />
									<xs:element name="patrimonio" type="xs:decimal" minOccurs="0" />
									<xs:element name="altre" type="xs:decimal" minOccurs="0" />
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="specializzazioneType">
		<xs:annotation>
			<xs:documentation>
				La specializzazione di una biblioteca è semplicemente
				una CDD più una descrizione libera opzionale.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="cdd" type="xs:string" />
			<xs:element name="descrizione-libera" type="xs:string" minOccurs="0" />
		</xs:sequence>
	</xs:complexType>

	<!-- Tipi secondari legati al patrimonio e ai cataloghi -->

	<xs:complexType name="materialeType">
		<xs:annotation>
			<xs:documentation>
				Un tipo di materiale è descritto semplicemente da un
				nome e da un posseduto (opzionale). Quest'ultimo
				dev'essere un intero non negativo.
			</xs:documentation>
		</xs:annotation>
		<xs:attribute name="nome" type="xs:string" use="required" />
		<xs:attribute name="posseduto" type="xs:nonNegativeInteger" />
		<xs:attribute name="acquisti-ultimo-anno" type="xs:nonNegativeInteger" />
	</xs:complexType>

	<xs:complexType name="fondoSpecialeType">
		<xs:annotation>
			<xs:documentation>
				A parte alcuni elementi dall'ovvio significato, la
				"descrizione" corrisponde ad una descrizione libera del
				fondo speciale, mentre "digitalizzazione" registra in
				forma libera lo stato dell'eventuale digitalizzazione
				del fondo.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="nome" type="xs:string" />
			<xs:element name="descrizione" type="xs:string" minOccurs="0" />
			<xs:element name="cdd" type="xs:string" minOccurs="0" />
			<xs:element name="depositato" type="siNoType" minOccurs="0" />
			<xs:element name="digitalizzazione" type="siNoType" minOccurs="0" />
			<xs:element name="catalogo-inventario" minOccurs="0">
				<xs:simpleType>
					<xs:annotation>
						<xs:documentation>
							Un elemento di questo tipo ammette solo valori del tipo
							{S:schede, N:assente, V:Volumi, O:Online(informatizzato)}
						</xs:documentation>
					</xs:annotation>
					<xs:restriction base="xs:string">
						<xs:enumeration value="N" />
						<xs:enumeration value="S" />
						<xs:enumeration value="O" />
						<xs:enumeration value="V" />
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="catalogo-inventario-url" type="xs:string" minOccurs="0" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="fondoAnticoType">
		<xs:annotation>
			<xs:documentation>
				I fondi antichi vanno classificati in base al posseduto:
				fino a 1000, da 1000 a 5000, oltre 5000. Non è quindi
				possibile specificare esattamente un posseduto.
			</xs:documentation>
		</xs:annotation>
		<xs:attribute name="volumi" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="-1000" />
					<xs:enumeration value="1000-5000" />
					<xs:enumeration value="5000-" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>

	<xs:complexType name="catalogoType">
		<xs:annotation>
			<xs:documentation>
				I cataloghi hanno diverse caratteristiche comuni.
				Vale la pena di definire un tipo che raccoglie queste
				caratteristiche, per poi derivare da esso, tramite
				restriction, i diversi tipi di cataloghi.
			</xs:documentation>
			<xs:documentation>
				Tutti contengono le quattro forme "schede",
				"volume", "microfilm" e "digitale", ciascuna con la sua
				percentuale di copertura (vedi "formaType"), e tutti
				hanno una copertura temporale.
				La forma "digitale" ha un tipo particolare, "digitaleType", che
				aggiunge a "formaType" il solo sotto-elemento "supporto".
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="forme" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="schede" type="formaType" minOccurs="0" />
						<xs:element name="volume" type="volumeType" minOccurs="0" />
						<xs:element name="microforme" type="formaType" minOccurs="0" />
						<xs:element name="digitale" type="digitaleType" minOccurs="0" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="copertura" minOccurs="0">
				<xs:annotation>
					<xs:documentation>
						La copertura bibliografica deve essere espressa
						tramite un anno iniziale (elemento "da-anno") e
						un anno finale (elemento "ad-anno"). Entrambi
						devono avere il formato "YYYY", cioè esattamente
						quattro cifre (non è ammesso alcun altro carattere).
					</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="da-anno">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:pattern value="[0-9]{4}" />
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
						<xs:element name="ad-anno">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:pattern value="[0-9]{4}" />
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="tipo" type="xs:string" use="required" />
	</xs:complexType>

	<xs:complexType name="materialeCataloghiType">
		<xs:complexContent>
			<xs:extension base="materialeType">
				<xs:sequence>
					<xs:element name="forme" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="schede" type="formaType" minOccurs="0" />
								<xs:element name="volume" type="volumeType" minOccurs="0" />
								<xs:element name="microforme" type="formaType" minOccurs="0" />
								<xs:element name="digitale" type="digitaleType" minOccurs="0" />
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="copertura" minOccurs="0">
						<xs:annotation>
							<xs:documentation>
								La copertura bibliografica deve essere espressa
								tramite un anno iniziale (elemento "da-anno") e
								un anno finale (elemento "ad-anno"). Entrambi
								devono avere il formato "YYYY", cioè esattamente
								quattro cifre (non è ammesso alcun altro carattere).
							</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="da-anno">
									<xs:simpleType>
										<xs:restriction base="xs:string">
											<xs:pattern value="[0-9]{4}" />
										</xs:restriction>
									</xs:simpleType>
								</xs:element>
								<xs:element name="ad-anno">
									<xs:simpleType>
										<xs:restriction base="xs:string">
											<xs:pattern value="[0-9]{4}" />
										</xs:restriction>
									</xs:simpleType>
								</xs:element>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<!-- <xs:complexType name="catalogoGeneraleType"> <xs:annotation> <xs:documentation> 
		Catalogo generale. Deriva da "catalogoType", con la sola aggiunta del "tipo" 
		di catalogo, per il quale si dovrebbero usare solo i valori seguenti: topografico, 
		autore, sistematico, dizionario, titoli, soggetto. </xs:documentation> </xs:annotation> 
		<xs:complexContent> <xs:extension base="catalogoType"> <xs:sequence> <xs:element 
		name="tipo" type="xs:string" /> </xs:sequence> </xs:extension> </xs:complexContent> 
		</xs:complexType> -->
	<xs:complexType name="catalogoSpecialeType">
		<xs:annotation>
			<xs:documentation>
				Catalogo speciale. Deriva da "catalogoType", con
				l'aggiunta del "nome" del catalogo e del "materiale".
			</xs:documentation>
			<xs:documentation>
				Notare come tale tipo di elemento costituisce la base
				per il "catalogoSpecialeType".
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="nome" type="xs:string" minOccurs="0" />
			<xs:element name="materiali" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="materiale" type="materialeCataloghiType"
							minOccurs="0" maxOccurs="unbounded" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="catalogoCollettivoType">
		<xs:annotation>
			<xs:documentation>
				Catalogo collettivo. Deriva da "catalogoSpecialeType",
				con l'aggiunta della "zona", a sua volta specializzata
				in un "nome" e in un "tipo".
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="catalogoSpecialeType">
				<xs:sequence>
					<xs:element name="zona" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="nome" type="xs:string" minOccurs="0">
									<xs:annotation>
										<xs:documentation>
											Il nome della zona può essere ad esempio
											"Toscana", "Triveneto", "Centro-Sud", "Castelli Romani"...
										</xs:documentation>
									</xs:annotation>
								</xs:element>
								<xs:element name="tipo" type="xs:string" minOccurs="0">
									<xs:annotation>
										<xs:documentation>
											Il tipo della zona può essere invece
											"regionale", "comunale" ...
										</xs:documentation>
									</xs:annotation>
								</xs:element>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="formaType">
		<xs:annotation>
			<xs:documentation>
				La forma di un catalogo ha di solito un solo attributo, 
				la percentuale di copertura, riferita al patrimonio
				inventariato o supposto, relativo alla forma
				particolare. Un'eccezione è la forma "digitale", che
				aggiunge un elemento (o attributo che sia) relativo al
				tipo di catalogo digitale (CD-ROM, web o altro).
			</xs:documentation>
		</xs:annotation>
		<xs:attribute name="percentuale" type="xs:string" />
	</xs:complexType>

	<xs:complexType name="digitaleType">
		<xs:annotation>
			<xs:documentation>
				La forma "digitale" di un catalogo richiede
				l'indicazione di un supporto. Per il momento, nel caso
				on-line non si può indicare la URL.
			</xs:documentation>
			<xs:documentation>
				Si noti che comunque questo tipo è derivato da
				"formaType" e quindi eredita le sue caratteristiche.
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="formaType">
				<xs:sequence>
					<xs:element name="supporto" type="xs:string" minOccurs="0" />
					<xs:element name="url" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="volumeType">
		<xs:annotation>
			<xs:documentation>
				La forma "volumeType" deriva dalla generica "formaType"
				con l'aggiunta della citazione bibliografica, specifica
				di questa forma. La citazione è comunque opzionale.
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="formaType">
				<xs:sequence>
					<xs:element name="citazione-bibliografica" type="xs:string" minOccurs="0" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="infCarType">
		<xs:annotation>
			<xs:documentation>
				Un elemento di questo tipo serve solo a specificare una
				forma cartacea e una forma informatizzata di qualcosa,
				tipicamente un catalogo, ma non solo. Entrambi gli
				elementi che definisce sono semplici siNoType.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="informatizzato" type="siNoType" minOccurs="0" />
			<xs:element name="cartaceo" type="siNoType" minOccurs="0" />
		</xs:sequence>
	</xs:complexType>

	<!--Altri tipi secondari -->

	<xs:complexType name="orarioType">
		<xs:annotation>
			<xs:documentation>
				Questo tipo descrive sostanzialmente l'orario ufficiale,
				ma è anche un tipo base da cui derivare le variazioni di
				orario. Poiché le variazioni sono all'interno dei
				servizi, questo tipo base deve essere globale.
			</xs:documentation>
			<xs:documentation>
				La struttura di questo tipo è molto semplice: un giorno
				della settimana, un orario iniziale e un'orario finale.
				Sebbene il questionario ICCU preveda una struttura più
				articolata, queste informazioni sono sufficienti a
				descrivere qualsiasi ragionevole situazione, e
				dovrebbero essere gestibili da qualsiasi base dati.
				Strutture più articolate possono essere ricondotte a
				questa, ripetendo opportunamente gli elementi.
			</xs:documentation>
			<xs:documentation>
				Per i limiti orari si potrebbe specificare un vincolo
				più fine, perché quello attuale accetterebbe anche un
				orario come "35:72".
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="orario" maxOccurs="unbounded">
				<xs:complexType>
					<xs:attribute name="giorno" use="required">
						<xs:simpleType>
							<xs:restriction base="xs:string">
								<xs:enumeration value="lun" />
								<xs:enumeration value="mar" />
								<xs:enumeration value="mer" />
								<xs:enumeration value="gio" />
								<xs:enumeration value="ven" />
								<xs:enumeration value="sab" />
								<xs:enumeration value="dom" />
							</xs:restriction>
						</xs:simpleType>
					</xs:attribute>
					<xs:attribute name="dalle" use="required">
						<xs:simpleType>
							<xs:restriction base="xs:string">
								<xs:pattern value="[0-9]{2}:[0-9]{2}" />
							</xs:restriction>
						</xs:simpleType>
					</xs:attribute>
					<xs:attribute name="alle" use="required">
						<xs:simpleType>
							<xs:restriction base="xs:string">
								<xs:pattern value="[0-9]{2}:[0-9]{2}" />
							</xs:restriction>
						</xs:simpleType>
					</xs:attribute>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:simpleType name="siNoType">
		<xs:annotation>
			<xs:documentation>
				Un elemento di questo tipo ammette solo valori del tipo
				"si/no" (ma non esattamente questi due...)
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="s" />
			<xs:enumeration value="n" />
		</xs:restriction>
	</xs:simpleType>

	<!-- <xs:simpleType name="annoSecoloType"> <xs:annotation> <xs:documentation> 
		Un elemento di questo tipo ammette solo valori del tipo "anno / secolo" </xs:documentation> 
		</xs:annotation> <xs:restriction base="xs:string"> <xs:enumeration value="anno" 
		/> <xs:enumeration value="secolo" /> </xs:restriction> </xs:simpleType> -->
	<xs:complexType name="annoSecoloType">
		<xs:annotation>
			<xs:documentation>
				Un elemento di questo tipo contiene una stringa come
				valore, e ha un attributo "tipo" che serve ad indicare
				se tale valore è un anno o un secolo. Questo non esclude
				un elemento con valore "XVI" e tipo "anno", per cui
				sarebbe auspicabile un costrutto più coerente.
			</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="tipo">
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="anno" />
							<xs:enumeration value="secolo" />
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>

</xs:schema>