<?xml version="1.0" encoding="windows-1252"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://sgpfc.igae.minhap.es/xmlpge" targetNamespace="http://sgpfc.igae.minhap.es/xmlpge" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xsd:annotation>
		<xsd:documentation xml:lang="es">XSD que define la estructura de los datos de los informes pertenecientes a los Presupuestos Generales del Estado</xsd:documentation>
	</xsd:annotation>
	<xsd:element name="GrupoInformes">
		<xsd:annotation>
			<xsd:documentation xml:lang="es">Grupo de informes; el elemento raíz</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="Informe" type="TInforme" maxOccurs="unbounded">
					<xsd:annotation>
						<xsd:documentation xml:lang="es">Un informe con datos y con posibilidad de incluir cabeceras, pies...</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
			</xsd:sequence>
			<xsd:attribute name="version" type="xsd:string" fixed="1.0"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:group name="grpElementos">
		<xsd:annotation>
			<xsd:documentation xml:lang="es">Un elemento que contiene información</xsd:documentation>
		</xsd:annotation>
		<xsd:choice>
			<xsd:element name="Info" type="TTexto"/>
			<xsd:element name="Tabla" type="TTabla"/>
			<xsd:element name="Lista" type="TLista"/>
		</xsd:choice>
	</xsd:group>
	<xsd:complexType name="TInforme">
		<xsd:annotation>
			<xsd:documentation xml:lang="es">Informe que contiene datos agrupados</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Ambitos" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation xml:lang="es">Definición de los ámbitos del informe</xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="Ambito" type="TAmbitoNota" maxOccurs="unbounded">
							<xsd:annotation>
								<xsd:documentation xml:lang="es">Definición y contenido de un ámbito o nota</xsd:documentation>
							</xsd:annotation>
						</xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="Datos" type="TDatosInforme">
				<xsd:annotation>
					<xsd:documentation xml:lang="es">Elemento obligatorio con los datos del informe</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Notas" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation xml:lang="es">Definición de las notas del informe</xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="Nota" type="TAmbitoNota" maxOccurs="unbounded">
							<xsd:annotation>
								<xsd:documentation xml:lang="es">Definición y contenido de una nota</xsd:documentation>
							</xsd:annotation>
						</xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="TAmbitoNota">
		<xsd:annotation>
			<xsd:documentation xml:lang="es">Definición de un ámbito o nota del informe</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:group ref="grpElementos" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="TDatosInforme">
		<xsd:annotation>
			<xsd:documentation xml:lang="es">Datos de un informe. Contiene un conjunto de datos del informe</xsd:documentation>
		</xsd:annotation>
		<xsd:group ref="grpElementos" maxOccurs="unbounded"/>
	</xsd:complexType>
	<xsd:complexType name="TTabla">
		<xsd:annotation>
			<xsd:documentation xml:lang="es">Tabla de datos</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Cabecera" type="TCabeceraTabla" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation xml:lang="es">Cabecera de la tabla</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Filas" type="TFilas" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="TCabeceraTabla">
		<xsd:annotation>
			<xsd:documentation xml:lang="es">Cabecera de la tabla</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Fila" maxOccurs="unbounded">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="Celda" maxOccurs="unbounded">
							<xsd:annotation>
								<xsd:documentation xml:lang="es">El contenido de una celda es un conjunto de elementos</xsd:documentation>
							</xsd:annotation>
							<xsd:complexType>
								<xsd:sequence>
									<xsd:group ref="grpElementos" minOccurs="0" maxOccurs="unbounded"/>
								</xsd:sequence>
							</xsd:complexType>
						</xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="TFilas">
		<xsd:annotation>
			<xsd:documentation xml:lang="es">Un conjunto de filas de datos que comparten alguna característica</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:choice maxOccurs="unbounded">
				<xsd:element name="Fila" type="TFila">
					<xsd:annotation>
						<xsd:documentation xml:lang="es">Una fila de datos</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="Filas" type="TFilas">
					<xsd:annotation>
						<xsd:documentation xml:lang="es">Un conjunto de filas</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
			</xsd:choice>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="TFila">
		<xsd:annotation>
			<xsd:documentation xml:lang="es">Una fila de datos</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Celda" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation xml:lang="es">El contenido de una celda es un conjunto de elementos que se representarán separados entre sí por un salto de línea</xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:group ref="grpElementos" minOccurs="0" maxOccurs="unbounded"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="TTexto">
		<xsd:annotation>
			<xsd:documentation xml:lang="es">Una cadena</xsd:documentation>
		</xsd:annotation>
		<xsd:simpleContent>
			<xsd:extension base="xsd:string"/>
		</xsd:simpleContent>
	</xsd:complexType>
	<xsd:complexType name="TLista">
		<xsd:annotation>
			<xsd:documentation xml:lang="es">Lista de elementos. Se implementa como una tabla de filas (una por elemento), cada una de las cuales tiene dos columnas: la de la izquierda que contienen la marca, y la de la derecha que contiene el elemento de la lista</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="EntradaLista" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation xml:lang="es">Cada una de las entradas de la lista (una fila que incluye una marca y un elemento)</xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="MarcaElementoLista">
							<xsd:annotation>
								<xsd:documentation xml:lang="es">La marcas del elemento de la lista</xsd:documentation>
							</xsd:annotation>
							<xsd:complexType>
								<xsd:sequence>
									<xsd:choice minOccurs="0">
										<xsd:annotation>
											<xsd:documentation xml:lang="es">El tipo de marca a utilizar</xsd:documentation>
										</xsd:annotation>
										<xsd:element name="Texto" type="TTexto"/>
									</xsd:choice>
								</xsd:sequence>
							</xsd:complexType>
						</xsd:element>
						<xsd:element name="ElementoLista">
							<xsd:complexType>
								<xsd:sequence>
									<xsd:group ref="grpElementos" minOccurs="0" maxOccurs="unbounded"/>
								</xsd:sequence>
							</xsd:complexType>
						</xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:simpleType name="TContenidoObligatorio">
		<xsd:annotation>
			<xsd:documentation xml:lang="es">Tipo que permite cualquier cadena, pero obliga  a que exista</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="1"/>
		</xsd:restriction>
	</xsd:simpleType>
</xsd:schema>
