<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
	attributeFormDefault="unqualified">

	<xs:element name="RelacionNContratos">
		<xs:annotation>
			<xs:documentation>Relación Anual de Contratos de las Entidades Locales de ejercicio 2022 y posteriores.
			</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="NIF" type="TipoNIF" maxOccurs="1" minOccurs="1">
					<xs:annotation>
						<xs:documentation>NIF de la Entidad contratante
						</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="TipoEntidad" type="TipoEntidad" minOccurs="1" maxOccurs="1">
					<xs:annotation>
						<xs:documentation>Tipo de Entidad de la Entidad Contratante
						</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="NomEntidad" type="TipoTexto" maxOccurs="1" minOccurs="1">
					<xs:annotation>
						<xs:documentation>Nombre de la Entidad contratante
						</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="Ejercicio" type="TipoEjercicio" minOccurs="1" maxOccurs="1">
					<xs:annotation>
						<xs:documentation>Ejercicio de los contratos perteneciente a la relación anual de contratos.
						</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="Contrato" minOccurs="0" maxOccurs="500">
					<xs:annotation>
						<xs:documentation>Información del contrato</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="NumExpnte" type="TipoReferencia" minOccurs="1" maxOccurs="1">
								<xs:annotation>
									<xs:documentation>Número de Referencia del Contrato</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="Objeto" type="TipoObjeto" minOccurs="1" maxOccurs="1">
								<xs:annotation>
									<xs:documentation>Objeto del contrato</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="ValorEstimado" type="TipoPrecio" minOccurs="1" maxOccurs="1">
								<xs:annotation>
									<xs:documentation>Valor estimado del contrato (en euros)</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="PrecioLic" type="TipoPrecio" minOccurs="0" maxOccurs="1">
								<xs:annotation>
									<xs:documentation>Presupuesto base sin impuestos (en euros)</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="PlazoEjecucion" type="TipoTemporal" minOccurs="1" maxOccurs="1" >
								<xs:annotation>
									<xs:documentation>Plazo de ejecución del contrato, en meses, puede contener valores con decimales</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="Cpv" type="TipoCPV" minOccurs="0" maxOccurs="1" >
								<xs:annotation>
									<xs:documentation>Código CPV del objeto del contrato, si son más de uno, separados por coma</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="TipoContratacion" type="TipoContratacion" minOccurs="1" maxOccurs="1">
								<xs:annotation>
									<xs:documentation>Tipo de contratación</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="TipoContrato" type="TipoContrato" minOccurs="1" maxOccurs="1">
								<xs:annotation>
									<xs:documentation>Tipo de Contrato</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="ProcedimientoLicitacion" type="TipoProcedimiento" minOccurs="0" maxOccurs="1">
								<xs:annotation>
									<xs:documentation>Tipo de procedimiento</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="SistemaContratacion" type="TipoSistemaContratacion" minOccurs="0" maxOccurs="1">
								<xs:annotation>
									<xs:documentation>Sistema de contratación</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="Tramitacion" type="TipoTramitacion" minOccurs="0" maxOccurs="1">
								<xs:annotation>
									<xs:documentation>Tramitación</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="FechaFormalizacion" type="TipoFecha" minOccurs="0" maxOccurs="1" >
								<xs:annotation>
									<xs:documentation>Fecha formalización</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="PrecioAdj" type="TipoPrecio" minOccurs="1" maxOccurs="1">
								<xs:annotation>
									<xs:documentation>Importe total ofertado (sin impuestos) (en euros)</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="PrecioAdjIva" type="TipoPrecio" minOccurs="1" maxOccurs="1">
								<xs:annotation>
									<xs:documentation>Importe total ofertado (con impuestos) (en euros)</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="UrlAdjudicacion" type="TipoTexto" minOccurs="1" maxOccurs="1" >
								<xs:annotation>
									<xs:documentation>URL a la licitación específica del expediente</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="Observaciones" type="TipoObservaciones" minOccurs="0" maxOccurs="1">
								<xs:annotation>
									<xs:documentation>Observaciones</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="Lote" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>Lotes del Contrato, si aplica</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="NumLote" type="TipoNumLote" minOccurs="1" maxOccurs="1">
											<xs:annotation>
												<xs:documentation>Número de Lote.</xs:documentation>
											</xs:annotation>
										</xs:element>
                                        <xs:element name="Objeto" type="TipoObjeto" minOccurs="1" maxOccurs="1">
											<xs:annotation>
												<xs:documentation>Objeto del contrato</xs:documentation>
											</xs:annotation>
										</xs:element>
                                        <xs:element name="Importe" type="TipoPrecio" minOccurs="1" maxOccurs="1">
											<xs:annotation>
												<xs:documentation>Presupuesto base sin impuestos (en euros)</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="PrecioAdj" type="TipoPrecio" minOccurs="1" maxOccurs="1">
											<xs:annotation>
												<xs:documentation>Importe total ofertado (con impuestos) (en euros)</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="FechaFormalizacion" type="TipoFecha" minOccurs="0" maxOccurs="1">
											<xs:annotation>
												<xs:documentation>Fecha formalización</xs:documentation>
											</xs:annotation>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Contratista" minOccurs="1" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>Contratista</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="NIF" type="TipoNIF" maxOccurs="1" minOccurs="1">
											<xs:annotation>
												<xs:documentation>NIF del Contratista</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Adjudicatario" type="TipoAdjudicatario" minOccurs="1" maxOccurs="1">
											<xs:annotation>
												<xs:documentation>Nombre del Contratista</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="NumLote" type="TipoNumLote" minOccurs="0" maxOccurs="1">
											<xs:annotation>
												<xs:documentation>El número de Lote del Contratista, si aplica en cada caso</xs:documentation>
											</xs:annotation>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Criterio" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>Criterios de adjudicación</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="CriterioAdjudicacion" type="TipoTexto" maxOccurs="1" minOccurs="1">
											<xs:annotation>
												<xs:documentation>Criterio de Adjudicación - Descripción</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="PonderacionAdjudicacion" type="TipoPonderacion" minOccurs="1" maxOccurs="1">
											<xs:annotation>
												<xs:documentation>Criterio de Adjudicación - Ponderación</xs:documentation>
											</xs:annotation>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>	
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	
	<xs:simpleType name="TipoNIF">
		<xs:restriction base="xs:string">
			<xs:pattern
				value="[a-zA-Z_0-9]{8,20}" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="TipoEjercicio">
		<xs:restriction base="xs:string">
			<xs:pattern value="[0-9]{4}" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="TipoEntidad">
		<xs:annotation>
			<xs:documentation>
				Tipo de Entidad.
				Los valores posibles son:
				A - Ayuntamiento
				B - Cabildo
				C - Consorcio
				D - Diputación Provincial
				E - Entidad Local Menor
				G - Agrupación De Municipios
				H - Fundación
				I - Epe
				J - Consejo Insular
				M - Mancomunidad
				N - Otras Sin Ánimo De Lucro
				O - Organismo Autónomo
				P - Sociedad Mercantil
				R - Comarca
				T - Área Metropolitana
				S - Asociación, fundación u otra entidad local que no integran sus cuentas en la Cuenta General de una entidad local
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="A" />
			<xs:enumeration value="B" />
			<xs:enumeration value="C" />
			<xs:enumeration value="D" />
			<xs:enumeration value="E" />
			<xs:enumeration value="G" />
			<xs:enumeration value="H" />
			<xs:enumeration value="I" />
			<xs:enumeration value="J" />
			<xs:enumeration value="M" />
			<xs:enumeration value="N" />
			<xs:enumeration value="O" />
			<xs:enumeration value="P" />
			<xs:enumeration value="R" />
			<xs:enumeration value="T" />
			<xs:enumeration value="S" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="TipoTexto">
		<xs:restriction base="xs:string">
			<xs:minLength value="1" />
			<xs:pattern value="[0-9a-zA-ZñáàéèíìóòúùÁÉÍÓÚÑü\s/çÇ¡!¿=\?%&#8364;@#,;:\.\-_'\*\+\(\) ÀÈÌÒÙÜ&#8217;´´`·äëïöÄËÏÖÔ&#8220;&#8221;&#8217;ºª&amp;]+" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="TipoReferencia">
		<xs:restriction base="TipoTexto">
			<xs:minLength value="1" />
			<xs:maxLength value="50" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="TipoInformativo">
		<xs:annotation>
			<xs:documentation>
				Tipo Informativo.
				Los valores posibles son:
				1 - Sí.
				2 - No.
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="1" />
			<xs:enumeration value="2" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="TipoNumeroEntero">
		<xs:annotation>
			<xs:documentation>Tipo Número Entero Positivo</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:nonNegativeInteger" />
	</xs:simpleType>
	
	<xs:simpleType name="NumeroLotes">
		<xs:annotation>
			<xs:documentation>Tipo Número Lotes</xs:documentation>
		</xs:annotation>
		<xs:restriction base="TipoNumeroEntero" >
			<xs:minInclusive value="1" />
			<xs:maxExclusive value="10000" />
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="TipoContratacion">
		<xs:annotation>
			<xs:documentation>
				Tipo de Contratación.
				Los valores posibles son:
				R - Contrato Mayor
				M - Contrato Menor
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="R" />
			<xs:enumeration value="M" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="TipoContrato">
		<xs:annotation>
			<xs:documentation>
				Tipo de Contrato.
				Los valores posibles son:
				1 - Suministros
				2 - Servicios
				3 - Obras
				4 - Gestión de Servicios Públicos
				5 - Concesión de Servicios
				6 - Concesión de Obras Públicas
				7 - Concesión de Obras
				8 - Colaboración entre el sector público y sector privado
				9 - Administrativo especial
				0 - Privado
				H - Patrimonial
			</xs:documentation>
		</xs:annotation>
		<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:enumeration value="6" />
			<xs:enumeration value="7" />
			<xs:enumeration value="8" />
			<xs:enumeration value="9" />
			<xs:enumeration value="0" />
			<xs:enumeration value="H" />
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="TipoProcedimiento">
		<xs:annotation>
			<xs:documentation>
				Tipo de Procedimineto.
				Los valores posibles son:
				A - Abierto
				E - Restringido
				N - Negociado sin publicidad
				G - Negociado con publicidad
				D - Diálogo competitivo
				O - Contrato menor
				R - Derivado de acuerdo marco
				I - Normas internas
				S - Otros
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="A" />
			<xs:enumeration value="E" />
			<xs:enumeration value="N" />
			<xs:enumeration value="G" />
			<xs:enumeration value="D" />
			<xs:enumeration value="O" />
			<xs:enumeration value="R" />
			<xs:enumeration value="I" />
			<xs:enumeration value="S" />
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="TipoSistemaContratacion">
		<xs:annotation>
			<xs:documentation>
				Tipo de Sistema de Contratación.
				Los valores posibles son:
				F - No aplica
				T - Establecimiento del Acuerdo Marco
				B - Establecimiento del Sistema Dinámico de Adquisición
				C - Contrato basado en un Acuerdo Marco
				X - Contrato basado en un Sistema Dinámico de Adquisición
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="F" />
			<xs:enumeration value="T" />
			<xs:enumeration value="B" />
			<xs:enumeration value="C" />
			<xs:enumeration value="X" />
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="TipoTramitacion">
		<xs:annotation>
			<xs:documentation>
				Tipo de Tramitación.
				Los valores posibles son:
				W - Ordinaria
				Y - Urgente
				Z - Emergencia
			</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="W" />
			<xs:enumeration value="Y" />
			<xs:enumeration value="Z" />
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="TipoObjeto">
		<xs:restriction base="TipoTexto">
			<xs:minLength value="1" />
			<xs:maxLength value="960" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="TipoNumeroDecimal">
		<xs:annotation>
			<xs:documentation>Tipo Importe (decimal)</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:decimal"/>
	</xs:simpleType>
	
	<xs:simpleType name="TipoTemporal">
		<xs:annotation>
			<xs:documentation>Tipo de Plazo</xs:documentation>
		</xs:annotation>
		<xs:restriction base="TipoNumeroDecimal" >
			<xs:minInclusive value="0.01" />
			<xs:maxExclusive value="10000000.00" />
			<xs:pattern value="[0-9]{1,4}[.][0-9]{1,2}"/>
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="TipoPrecio">
		<xs:annotation>
			<xs:documentation>Tipo de Precio</xs:documentation>
		</xs:annotation>
		<xs:restriction base="TipoNumeroDecimal" >
			<xs:minInclusive value="0.01" />
			<xs:maxExclusive value="10000000000000000.00" />
			<xs:pattern value="[0-9]{1,18}[.][0-9]{2}"/>
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="TipoFecha">
		<xs:annotation>
			<xs:documentation>Tipo Fecha (dd/mm/aaaa)</xs:documentation>
		</xs:annotation>
		<xs:union memberTypes="xs:date">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:pattern value="[0-3]?[0-9]/[0-1]?[0-9]/[0-9]{4}" />
				</xs:restriction>
			</xs:simpleType>
		</xs:union>
	</xs:simpleType>

	<xs:simpleType name="TipoAdjudicatario">
		<xs:restriction base="TipoTexto">
			<xs:minLength value="1" />
			<xs:maxLength value="520" />
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="TipoNumLote">
		<xs:restriction base="TipoTexto">
			<xs:minLength value="1" />
			<xs:maxLength value="150" />
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="TipoCPV">
		<xs:restriction base="xs:string">
			<xs:minLength value="1" />
			<xs:maxLength value="960" />
			<xs:pattern
				value="[0-9a-zA-Z,]+" />
		</xs:restriction>
	</xs:simpleType>
	
	<xs:simpleType name="TipoPonderacion">
		<xs:annotation>
			<xs:documentation>Tipo de Ponderación de Adjudicación</xs:documentation>
		</xs:annotation>
		<xs:restriction base="TipoNumeroDecimal" >
			<xs:minInclusive value="0.01" />
			<xs:maxInclusive value="100.00" />
			<xs:pattern value="[0-9]{1,3}[.][0-9]{1,2}"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="TipoObservaciones">
		<xs:restriction base="TipoTexto">
			<xs:maxLength value="960" />
		</xs:restriction>
	</xs:simpleType>
	
</xs:schema>