<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://intermediacion.redsara.es/scsp/esquemas/datosespecificos" targetNamespace="http://intermediacion.redsara.es/scsp/esquemas/datosespecificos" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:element name="DatosEspecificos">
		<xs:complexType>
			<xs:choice>
				<xs:element ref="Consulta"/>
				<xs:element ref="Retorno"/>
			</xs:choice>
			<xs:attribute name="Id" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<!--  -->
	<!-- Consulta -->
	<!--  -->
	<xs:element name="Consulta">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="ListaIdentificadoresUniversidad"/>
				<xs:element name="CursoAcademico" type="CursoAcademicoTypeConstraint">
					<xs:annotation>
						<xs:documentation>Curso académico para el que se consultan los datos</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="IncluyeCursosAcademicosPrevios" type="xs:boolean" maxOccurs="1">
					<xs:annotation>
						<xs:documentation>Indica si se deben incluir en la respuesta datos de matrícula de los cursos académicos previos al curso que se consulta</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="ListaIdentificadoresUniversidad">
		<xs:annotation>
			<xs:documentation>Si no se indican Universidades concretas, se consultan todas las Universidades</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="IdentificadorUniversidad" minOccurs="1" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="IdentificadorUniversidad" type="UniversidadTypeConstraint">
		<xs:annotation>
			<xs:documentation>Código RUCT de la Universidad a consultar</xs:documentation>
		</xs:annotation>
	</xs:element>
	<!--  -->
	<!-- Retorno -->
	<!--  -->
	<xs:element name="Retorno">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="Estado"/>
				<xs:element ref="ListaDatosMatricula" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="Estado">
		<xs:complexType>
			<xs:all>
				<xs:element name="CodigoEstado">
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:minLength value="1"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:element>
				<xs:element name="Literal">
					<xs:annotation>
						<xs:documentation>Descripcion del estado</xs:documentation>
					</xs:annotation>
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:maxLength value="255"/>
							<xs:minLength value="1"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:element>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="ListaDatosMatricula">
		<xs:annotation>
			<xs:documentation>Datos de matrícula de las Universidades consultadas</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="DatosMatricula" minOccurs="1" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<!--  -->
	<!-- Schema importado de crue-datosmatricula.xsd  -->
	<!--  -->
	<xs:simpleType name="CursoAcademicoTypeConstraint">
		<xs:restriction base="xs:string">
			<xs:pattern value="[2-9][0-9][0-9][0-9]-[0-9][0-9]"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ProvinciaTypeConstraint">
		<xs:restriction base="xs:string">
			<xs:pattern value="[0-9][0-9]"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="UniversidadTypeConstraint">
		<xs:restriction base="xs:string">
			<xs:pattern value="[0-9][0-9][0-9]"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="CodigoPostalTypeConstraint">
		<xs:restriction base="xs:string">
			<xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="MunicipioTypeConstraint">
		<xs:restriction base="xs:string">
			<xs:pattern value="[0-9][0-9][0-9]"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="DNITypeConstraint">
		<xs:restriction base="xs:string">
			<xs:pattern value="[0-9]{8}[A-Z]{1}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="LenguaTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="01">
				<xs:annotation>
					<xs:documentation xml:lang="en">Castellano</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="02">
				<xs:annotation>
					<xs:documentation xml:lang="en">Vasco</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="03">
				<xs:annotation>
					<xs:documentation xml:lang="en">Catalán</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="04">
				<xs:annotation>
					<xs:documentation xml:lang="en">Gallego</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="05">
				<xs:annotation>
					<xs:documentation xml:lang="en">Valenciano</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="06">
				<xs:annotation>
					<xs:documentation xml:lang="en">Balear</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="NIETypeConstraint">
		<xs:restriction base="xs:string">
			<xs:pattern value="[X-Z]{1}[0-9]{7}[A-Z]{1}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="DedicacionTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="TiempoCompleto"/>
			<xs:enumeration value="TiempoParcial"/>
			<xs:enumeration value="Otra"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="MECESTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="2"/>
			<xs:enumeration value="3"/>
			<xs:enumeration value="4"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="NaturalezaTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Publica"/>
			<xs:enumeration value="Privada"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="VinculacionTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Propio"/>
			<xs:enumeration value="Adscrito"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="RamaTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="ArtesHumanidades"/>
			<xs:enumeration value="Ciencias"/>
			<xs:enumeration value="CienciasSalud"/>
			<xs:enumeration value="CienciasSocialesJuridicas"/>
			<xs:enumeration value="IngenieriaArquitectura"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="SexoTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Mujer">
				<xs:annotation>
					<xs:documentation xml:lang="en">Mujer</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="Hombre">
				<xs:annotation>
					<xs:documentation xml:lang="en">Hombre</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="ApellidoType">
		<xs:sequence>
			<xs:element name="Apellido" type="xs:normalizedString" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<!-- Original del CRUE 
	<xs:complexType name="DocumentacionType">
		<xs:choice>
			<xs:element name="DNI" type="DNITypeConstraint"/>
			<xs:element name="NIE" type="NIETypeConstraint"/>
			<xs:element name="Pasaporte" type="xs:normalizedString"/>
		</xs:choice>
	</xs:complexType>
	-->
	<xs:simpleType name="TipoDocumentacionType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="DNI"/>
			<xs:enumeration value="NIE"/>
			<xs:enumeration value="Pasaporte"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="DatosMatriculaType">
		<xs:sequence>
			<xs:element name="Universidad" type="UniversidadType"/>
			<xs:element name="Titular" type="TitularType"/>
			<xs:element name="Titulacion" type="TitulacionType" maxOccurs="unbounded">
				<xs:unique name="DetalleMatriculaCursoAcademicoUQ">
					<xs:selector xpath="DetalleMatricula"/>
					<xs:field xpath="CursoAcademico"/>
				</xs:unique>
			</xs:element>
			<xs:element name="LenguaRUCT" type="LenguaTypeEnum"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="TitularType">
		<xs:sequence>
			<xs:element name="Apellidos" type="ApellidoType"/>
			<xs:element name="Nombre" type="xs:normalizedString"/>
			<!-- Original del CRUE 
			<xs:element name="Documentacion" type="DocumentacionType"/>
			-->
			<xs:element name="TipoDocumentacion" type="TipoDocumentacionType"/>
			<xs:element name="Documentacion" type="xs:string"/>
			<!--  -->
			<xs:element name="Sexo" type="SexoType" minOccurs="0"/>
			<xs:element name="FechaNacimiento" type="xs:date" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="SexoType">
		<xs:choice>
			<xs:element name="Descripcion" type="xs:normalizedString" minOccurs="0"/>
			<xs:element name="Codigo" type="SexoTypeEnum"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="TitulacionType">
		<xs:sequence>
			<xs:element name="Nombre" type="xs:normalizedString"/>
			<xs:element name="ItinerarioCurricular" type="xs:boolean" minOccurs="0"/>
			<xs:element name="TituloConferido" type="TituloConferidoType" maxOccurs="unbounded"/>
			<xs:element name="Centro" type="CentroType"/>
			<xs:element name="DetalleMatricula" type="DetalleMatriculaType" maxOccurs="unbounded"/>
			<xs:element name="Codigo" type="xs:normalizedString"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DetalleMatriculaType">
		<xs:sequence>
			<xs:element name="CursoAcademico" type="CursoAcademicoTypeConstraint"/>
			<xs:element name="Fecha" type="xs:date"/>
			<xs:element name="Dedicacion" type="DedicacionType"/>
			<xs:element name="ResumenCreditos" type="ResumenCreditosType" minOccurs="0"/>
			<xs:element name="ResumenEconomico" type="ResumenEconomicoType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="CentroType">
		<xs:sequence>
			<xs:element name="Nombre" type="xs:normalizedString"/>
			<xs:element name="Vinculacion" type="VinculacionType"/>
			<xs:element name="Ubicacion" type="UbicacionType"/>
			<xs:element name="CodigoRUCT" type="xs:normalizedString"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="UniversidadType">
		<xs:sequence>
			<xs:element name="Nombre" type="xs:normalizedString"/>
			<xs:element name="Naturaleza" type="NaturalezaType"/>
			<xs:element name="CodigoRUCT" type="UniversidadTypeConstraint"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="VinculacionType">
		<xs:choice>
			<xs:element name="Descripcion" type="xs:normalizedString" minOccurs="0"/>
			<xs:element name="Codigo" type="VinculacionTypeEnum"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="NaturalezaType">
		<xs:choice>
			<xs:element name="Descripcion" type="xs:normalizedString" minOccurs="0"/>
			<xs:element name="Codigo" type="NaturalezaTypeEnum"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="TituloConferidoType">
		<xs:sequence>
			<xs:element name="Nombre" type="xs:normalizedString"/>
			<xs:element name="MECES" type="MECESType" minOccurs="0"/>
			<xs:element name="Rama" type="RamaType" minOccurs="0"/>
			<xs:element name="CodigoRUCT" type="xs:normalizedString"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="MECESType">
		<xs:choice>
			<xs:element name="Descripcion" type="xs:normalizedString" minOccurs="0"/>
			<xs:element name="Codigo" type="MECESTypeEnum"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="RamaType">
		<xs:choice>
			<xs:element name="Descripcion" type="xs:normalizedString" minOccurs="0"/>
			<xs:element name="Codigo" type="RamaTypeEnum"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="ResumenCreditosType">
		<xs:sequence>
			<xs:element name="Matriculados" type="PositiveDecimalType"/>
			<xs:element name="Reconocidos" type="PositiveDecimalType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DedicacionType">
		<xs:choice>
			<xs:element name="Descripcion" type="xs:normalizedString" minOccurs="0"/>
			<xs:element name="Codigo" type="DedicacionTypeEnum"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="UbicacionType">
		<xs:sequence>
			<xs:element name="Provincia" type="ProvinciaTypeConstraint"/>
			<xs:element name="Municipio" type="MunicipioTypeConstraint"/>
			<xs:element name="Localidad" type="xs:normalizedString" minOccurs="0"/>
			<xs:element name="CodigoPostal" type="CodigoPostalTypeConstraint" minOccurs="0"/>
			<xs:element name="Direccion" type="xs:normalizedString" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ResumenEconomicoType">
		<xs:sequence>
			<xs:element name="Total" type="PositiveDecimalType"/>
			<xs:element name="Abonado" type="PositiveDecimalType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="PositiveDecimalType">
		<xs:restriction base="xs:decimal">
			<xs:minInclusive value="0"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:element name="DatosMatricula" type="DatosMatriculaType"/>
</xs:schema>
