<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by Turbo XML 2.3.1.100. Conforms to w3c http://www.w3.org/2001/XMLSchema-->
<schema targetNamespace="http://www.culture.gouv.fr/ns/sdx/sdx" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sdx="http://www.culture.gouv.fr/ns/sdx/sdx" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
	<group name="subroot">
		<sequence>
			<element ref="sdx:information" minOccurs="0"/>
			<element ref="sdx:access" minOccurs="0"/>
			<element ref="sdx:catalogs" minOccurs="0"/>
			<element ref="sdx:repositories" minOccurs="0"/>
			<element ref="sdx:userDocumentBase" minOccurs="0"/>
			<element ref="sdx:admin"/>
			<element ref="sdx:documentBases"/>
		</sequence>
	</group>
	<attributeGroup name="base">
		<attribute name="id" type="ID" use="required"/>
		<attribute name="default" type="string"/>
		<attribute name="type" use="required">
			<simpleType>
				<restriction base="string">
					<enumeration value="lucene"/>
				</restriction>
			</simpleType>
		</attribute>
		<attributeGroup ref="sdx:locale"/>
		<attribute name="remote-access" type="boolean"/>
		<attribute name="keepOriginalDocuments" type="boolean"/>
		<attribute name="maxFieldLength" type="integer"/>
	</attributeGroup>
	<attributeGroup name="URL">
		<attribute name="base" type="string"/>
	</attributeGroup>
	<attributeGroup name="repo">
		<attribute name="default" type="sdx:bool"/>
		<attribute name="id" type="ID"/>
		<attribute name="ref" type="IDREF"/>
		<attribute name="type">
			<simpleType>
				<restriction base="string">
					<enumeration value="FS"/>
					<enumeration value="URL"/>
					<enumeration value="JDBC"/>
					<enumeration value="POSTGRESQL"/>
					<enumeration value="MYSQL"/>
					<enumeration value="HSQL"/>
					<enumeration value="xmldb"/>
				</restriction>
			</simpleType>
		</attribute>
	</attributeGroup>
	<attributeGroup name="FS">
		<attribute name="baseDirectory" type="string"/>
		<attribute name="depth" type="nonNegativeInteger"/>
		<attribute name="extent" type="nonNegativeInteger"/>
	</attributeGroup>
	<attributeGroup name="fields">
		<attribute name="id" type="ID"/>
		<attribute name="analyzerClass" type="string"/>
		<attribute name="analyzerConf" type="string"/>
		<attributeGroup ref="sdx:locale"/>
	</attributeGroup>
	<attributeGroup name="field">
		<attributeGroup ref="sdx:fields"/>
		<attribute name="name" type="Name" use="required"/>
		<attribute name="default" type="sdx:bool"/>
		<attribute name="type" use="required">
			<simpleType>
				<restriction base="string">
					<enumeration value="word"/>
					<enumeration value="field"/>
					<enumeration value="date"/>
					<enumeration value="unindexed"/>
					<enumeration value="xml"/>
				</restriction>
			</simpleType>
		</attribute>
		<attribute name="brief" type="sdx:bool"/>
	</attributeGroup>
	<attributeGroup name="javaClass">
		<attribute name="class" type="string"/>
	</attributeGroup>
	<attributeGroup name="RDBMS">
		<attribute name="dsi" type="string"/>
	</attributeGroup>
	<attributeGroup name="locale">
		<attribute name="variant" type="normalizedString">
			<annotation>
				<documentation>The Variant codes are vendor and browser-specific.
                 For example, use WIN for Windows, MAC for Macintosh,
                  and POSIX for POSIX. Where there are two variants, 
                  separate them with an underscore, and put the most 
                  important one first. For example, a Traditional 
                  Spanish collation might construct a locale with 
                  parameters for language, country and variant as: "es", 
                  "ES", "Traditional_WIN". 
		
				
				</documentation>
			</annotation>
		</attribute>
		<attribute ref="xml:lang"/>
	</attributeGroup>
	<!-- ====== APPLICATION ====== -->
	<!-- application -->
	<element name="application">
		<complexType>
			<sequence>
				<group ref="sdx:subroot"/>
				<element ref="sdx:thesauri" minOccurs="0"/>
			</sequence>
			<attribute name="id" type="ID" use="required"/>
			<attributeGroup ref="sdx:locale"/>
		</complexType>
	</element>
	<!-- access -->
	<element name="access">
		<complexType>
			<sequence>
				<choice minOccurs="0" maxOccurs="unbounded">
					<element name="allow">
						<complexType>
							<attribute name="host" type="string"/>
							<attribute name="ip" type="string"/>
							<attribute name="id" type="ID"/>
						</complexType>
					</element>
					<element name="deny">
						<complexType>
							<attribute name="host" type="string"/>
							<attribute name="ip" type="string"/>
							<attribute name="id" type="ID"/>
						</complexType>
					</element>
				</choice>
			</sequence>
			<attribute name="type" type="string" use="required"/>
		</complexType>
	</element>
	<!-- information -->
	<element name="information">
		<complexType mixed="true">
			<choice>
				<any namespace="##any" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
			</choice>
		</complexType>
	</element>
	<!-- catalogs -->
	<element name="catalogs">
		<complexType>
			<sequence>
				<element name="catalog" maxOccurs="unbounded">
					<complexType>
						<attribute name="src" type="normalizedString" use="required"/>
					</complexType>
				</element>
			</sequence>
		</complexType>
	</element>
	<!-- ===== BASES ===== -->
	<complexType name="base">
		<complexContent>
			<extension base="sdx:databaseBacked">
				<sequence>
					<element ref="sdx:idGenerator" minOccurs="0"/>
					<element ref="sdx:queryParser" minOccurs="0"/>
					<element ref="sdx:repositories"/>
					<element ref="sdx:fieldList"/>
					<element ref="sdx:index" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- userDocumentBase -->
	<element name="userDocumentBase" type="sdx:base"/>
	<!-- documentBase -->
	<element name="documentBase">
		<complexType>
			<complexContent>
				<extension base="sdx:base">
					<attributeGroup ref="sdx:base"/>
				</extension>
			</complexContent>
		</complexType>
	</element>
	<element name="documentBases">
		<complexType>
			<sequence>
				<element ref="sdx:documentBase" maxOccurs="unbounded"/>
			</sequence>
		</complexType>
	</element>
	<!-- ====== REPOSITORIES ===== -->
	<element name="repositories">
		<complexType>
			<sequence>
				<element ref="sdx:repository" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
		</complexType>
	</element>
	<!-- repository -->
	<element name="repository">
		<complexType>
			<complexContent>
				<extension base="sdx:databaseBacked">
					<sequence minOccurs="0">
						<element ref="sdx:cache"/>
					</sequence>
					<attributeGroup ref="sdx:repo"/>
					<attributeGroup ref="sdx:FS"/>
					<attributeGroup ref="sdx:URL"/>
					<attributeGroup ref="sdx:RDBMS"/>
				</extension>
			</complexContent>
		</complexType>
	</element>
	<!-- cache -->
	<element name="cache">
		<complexType>
			<sequence>
				<element ref="sdx:repository" maxOccurs="unbounded"/>
			</sequence>
			<attribute name="check">
				<simpleType>
					<restriction base="string">
						<enumeration value="onGet"/>
						<enumeration value="onIndex"/>
					</restriction>
				</simpleType>
			</attribute>
		</complexType>
	</element>
	<!-- ====== FIELDS ======= -->
	<!-- fieldlist -->
	<element name="fieldList">
		<complexType>
			<sequence>
				<element ref="sdx:field" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attributeGroup ref="sdx:fields"/>
			<attribute name="ref" type="IDREF"/>
		</complexType>
	</element>
	<!-- field -->
	<element name="field">
		<complexType>
			<sequence minOccurs="0">
				<element name="name">
					<complexType>
						<simpleContent>
							<extension base="string">
								<attribute ref="xml:lang"/>
								<attribute name="variant" type="string"/>
							</extension>
						</simpleContent>
					</complexType>
				</element>
			</sequence>
			<attributeGroup ref="sdx:field"/>
		</complexType>
	</element>
	<!-- attributes common to fieldList and field -->
	<!-- attributes specific to a field -->
	<!-- ====== PIPES ====== -->
	<!-- index -->
	<element name="index">
		<complexType>
			<sequence>
				<element ref="sdx:pipeline"/>
			</sequence>
		</complexType>
	</element>
	<!-- pipeline -->
	<element name="pipeline">
		<complexType>
			<sequence maxOccurs="unbounded">
				<element ref="sdx:transformation"/>
			</sequence>
			<attribute name="id" type="ID" use="required"/>
		</complexType>
	</element>
	<!-- transformation -->
	<element name="transformation">
		<complexType>
			<attribute name="src" type="normalizedString" use="required"/>
			<attribute name="id" type="ID" use="required"/>
			<attribute name="type" type="string" use="required"/>
			<attribute name="keep" type="sdx:bool"/>
		</complexType>
	</element>
	<!-- ====== ATTRIBUTES ====== -->
	<!-- ====== SIMPLETYPES ====== -->
	<simpleType name="bool">
		<restriction base="string">
			<enumeration value="true"/>
			<enumeration value="false"/>
		</restriction>
		<!--
        <xsd:enumeration value="vrai"/>
        <xsd:enumeration value="faux"/>
        <xsd:enumeration value="1"/>
        <xsd:enumeration value="0"/>
        -->
	</simpleType>
	<element name="queryParser">
		<complexType>
			<attributeGroup ref="sdx:javaClass"/>
		</complexType>
	</element>
	<element name="admin">
		<complexType>
			<attribute name="groupId" type="string" use="required"/>
			<attribute name="userId" type="string" use="required"/>
			<attribute name="userPassword" type="string" use="required"/>
		</complexType>
	</element>
	<element name="idGenerator">
		<complexType>
			<attribute name="class" type="string"/>
			<attribute name="idPrefix" type="string"/>
			<attribute name="idSuffix" type="string"/>
		</complexType>
	</element>
	<element name="thesaurus">
		<complexType>
			<sequence>
				<element name="depth" type="string"/>
				<element name="relations" type="string"/>
				<element ref="sdx:queryParser" minOccurs="0"/>
				<element ref="sdx:repositories" minOccurs="0"/>
				<element ref="sdx:fieldList"/>
				<element ref="sdx:index" minOccurs="0"/>
			</sequence>
			<attributeGroup ref="sdx:base"/>
			<attribute name="src" type="normalizedString" use="required"/>
		</complexType>
	</element>
	<element name="thesauri">
		<complexType>
			<sequence maxOccurs="unbounded">
				<element ref="sdx:thesaurus"/>
			</sequence>
		</complexType>
	</element>
	<complexType name="databaseBacked">
		<sequence minOccurs="0">
			<element ref="sdx:database"/>
		</sequence>
	</complexType>
	<element name="database">
		<complexType>
			<attribute name="type" type="string" use="required"/>
		</complexType>
	</element>
</schema>
