<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:simpleType name="DataCF">
		<xs:restriction base="Data"/>
	</xs:simpleType>
	<xs:complexType name="DataCessouFuncoes">
		<xs:simpleContent>
			<xs:extension base="DataCF">
				<xs:attribute name="MotivoCessouFuncoes">
					<xs:simpleType>
						<xs:restriction base="xs:integer">
							<xs:minInclusive value="1"/>
							<xs:maxInclusive value="9"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="TipoIdent">
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="32"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="N_Ident">
		<xs:simpleContent>
			<xs:extension base="TipoIdent">
				<xs:attribute name="Tipo" use="required">
					<xs:simpleType>
						<xs:restriction base="xs:integer">
							<xs:enumeration value="1"/>
							<xs:enumeration value="2"/>
							<xs:enumeration value="3"/>
							<xs:enumeration value="4"/>
							<xs:enumeration value="5"/>
							<xs:enumeration value="9"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="Data">
		<xs:restriction base="xs:date">
			<xs:pattern value="(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="Identificacao">
		<xs:sequence>
			<xs:element name="Nome" type="Nome"/>
			<xs:element name="BI" type="N_Ident"/>
			<xs:element name="DataNascimento" type="Data"/>
			<xs:element name="Nacionalidade">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:pattern value="[A-Z]{2}"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="Sexo">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="M"/>
						<xs:enumeration value="F"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="NIF" type="NIF"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Contacto">
		<xs:sequence>
			<xs:element name="Residencia">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Morada">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:maxLength value="256"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
						<xs:element name="CodigoPostal">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:maxLength value="64"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
						<xs:element name="Freguesia">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:length value="6"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
						<xs:element name="Concelho">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:length value="4"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
						<xs:element name="Distrito">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:length value="2"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="Telefone" type="TelefoneFax" nillable="true"/>
			<xs:element name="Email" type="Email" nillable="true"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="HabilitacaoDoc">
		<xs:sequence>
			<xs:element name="FormacaoAcademica">
				<xs:simpleType>
					<xs:union>
						<xs:simpleType>
							<xs:restriction base="xs:integer">
								<xs:minInclusive value="1"/>
								<xs:maxInclusive value="12"/>
							</xs:restriction>
						</xs:simpleType>
						<xs:simpleType>
							<xs:restriction base="xs:integer">
								<xs:pattern value="\d{2}"/>
								<xs:enumeration value="99"/>
							</xs:restriction>
						</xs:simpleType>
					</xs:union>
				</xs:simpleType>
			</xs:element>
			<xs:element name="DesignacaoCurso" type="xs:string"/>
			<xs:element name="Universidade_Faculdade">
				<xs:simpleType>
					<xs:union>
						<xs:simpleType>
							<xs:restriction base="xs:string">
								<xs:maxLength value="64"/>
								<xs:pattern value="\d{4}\s*.*"/>
							</xs:restriction>
						</xs:simpleType>
						<xs:simpleType>
							<xs:restriction base="xs:integer">
								<xs:minInclusive value="0110"/>
								<xs:maxInclusive value="9999"/>
								<xs:pattern value="\d{4}"/>
							</xs:restriction>
						</xs:simpleType>
					</xs:union>
				</xs:simpleType>
			</xs:element>
			<xs:element name="ClassificacaoCurso">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:maxLength value="32"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="DataConclusao" type="Data"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="HabilitacaoNDoc">
		<xs:sequence>
			<xs:element name="FormacaoAcademica">
				<xs:simpleType>
					<xs:restriction base="xs:integer">
						<xs:minInclusive value="1"/>
						<xs:maxInclusive value="99"/>
						<xs:fractionDigits value="0"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="DesignacaoCurso" type="xs:string" minOccurs="0"/>
			<xs:element name="Universidade_Faculdade" type="xs:string" minOccurs="0"/>
			<xs:element name="ClassificacaoCurso" minOccurs="0">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:maxLength value="32"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="DataConclusao" type="Data" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="TelefoneFax">
		<xs:restriction base="xs:integer">
			<xs:totalDigits value="9"/>
			<xs:fractionDigits value="0"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Montante">
		<xs:restriction base="xs:decimal">
			<xs:totalDigits value="10"/>
			<xs:fractionDigits value="2"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="NIF">
		<xs:restriction base="xs:integer">
			<xs:maxInclusive value="999999999"/>
			<xs:minExclusive value="99999999"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Email">
		<xs:restriction base="xs:string">
			<xs:maxLength value="64"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Codigo">
		<xs:restriction base="xs:string">
			<xs:length value="6"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Nome">
		<xs:restriction base="xs:string">
			<xs:maxLength value="128"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ClassEconomica">
		<xs:restriction base="xs:string">
			<xs:length value="6"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Alinea">
		<xs:restriction base="xs:string">
			<xs:length value="2"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Actividade">
		<xs:restriction base="xs:string">
			<xs:length value="3"/>
			<xs:enumeration value="190"/>
			<xs:enumeration value="191"/>
			<xs:enumeration value="192"/>
			<xs:enumeration value="197"/>
			<xs:enumeration value="198"/>
			<xs:enumeration value="199"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="FonteFinanciamento">
		<xs:restriction base="xs:string">
			<xs:length value="3"/>
			<xs:enumeration value="111"/>
			<xs:enumeration value="112"/>
			<xs:enumeration value="123"/>
			<xs:enumeration value="230"/>
			<xs:enumeration value="242"/>
			<xs:enumeration value="280"/>
			<xs:enumeration value="129"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="AnoEscolar">
		<xs:restriction base="xs:string">
			<xs:enumeration value="2005/2006"/>
			<xs:enumeration value="2006/2007"/>
			<xs:enumeration value="2007/2008"/>
			<xs:enumeration value="2008/2009"/>
			<xs:enumeration value="2009/2010"/>
			<xs:enumeration value="2010/2011"/>
			<xs:enumeration value="2011/2012"/>
			<xs:enumeration value="2012/2013"/>
			<xs:enumeration value="2013/2014"/>
			<xs:enumeration value="2014/2015"/>
			<xs:enumeration value="2016/2017"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Ano">
		<xs:restriction base="xs:gYear">
			<xs:enumeration value="2006"/>
			<xs:enumeration value="2007"/>
			<xs:enumeration value="2008"/>
			<xs:enumeration value="2009"/>
			<xs:enumeration value="2010"/>
			<xs:enumeration value="2011"/>
			<xs:enumeration value="2012"/>
			<xs:enumeration value="2013"/>
			<xs:enumeration value="2014"/>
			<xs:enumeration value="2015"/>
			<xs:enumeration value="2016"/>
			<xs:enumeration value="2017"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Mes">
		<xs:restriction base="xs:integer">
			<xs:minInclusive value="1"/>
			<xs:maxInclusive value="12"/>
			<xs:fractionDigits value="0"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="TipoAtestado">
		<xs:simpleContent>
			<xs:extension base="TipoCedula">
				<xs:attribute name="CSaude" type="TipoCentroSaude" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="TipoCentroSaude">
		<xs:restriction base="xs:string">
			<xs:length value="6"/>
			<xs:pattern value="\d\d\d\d\d\d"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="TipoCedula">
		<xs:restriction base="xs:string">
			<xs:length value="5"/>
			<xs:pattern value="\d\d\d\d\d"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="ComponenteLectiva">
		<xs:simpleContent>
			<xs:extension base="xs:integer">
				<xs:attribute name="Ciclo0" type="xs:integer"/>
				<xs:attribute name="Ciclo1" type="xs:integer"/>
				<xs:attribute name="Ciclo2" type="xs:integer"/>
				<xs:attribute name="Ciclo3" type="xs:integer"/>
				<xs:attribute name="Ciclo4" type="xs:integer"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="TipoCategN">
		<xs:union>
			<xs:simpleType>
				<xs:restriction base="xs:integer">
					<xs:minInclusive value="1"/>
					<xs:maxInclusive value="5"/>
					<xs:pattern value="\d"/>
				</xs:restriction>
			</xs:simpleType>
			<xs:simpleType>
				<xs:restriction base="xs:integer">
					<xs:minInclusive value="8"/>
					<xs:maxInclusive value="9"/>
					<xs:pattern value="\d"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:union>
	</xs:simpleType>
	<xs:complexType name="TipoCategoriaNova">
		<xs:simpleContent>
			<xs:extension base="TipoCategN">
				<xs:attribute name="vbase" type="Montante"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="SubsTemp">
		<xs:simpleContent>
			<xs:extension base="xs:boolean">
				<xs:attribute name="NIFSubs" type="NIF"/>
				<xs:attribute name="Inicio">
					<xs:simpleType>
						<xs:restriction base="xs:date">
							<xs:pattern value="(201\d)[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
				<xs:attribute name="Fim">
					<xs:simpleType>
						<xs:restriction base="xs:date">
							<xs:pattern value="(201\d)[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
</xs:schema>
