Tabela de conteúdos

Layout do arquivo de atualização versão 1.0

Um arquivo de atualização é um arquivo XML estruturado para armazenar as informações de uma classe escolar, que serão usadas posteriormente para atualizar um arquivo de diários. Esse arquivo deve conter todas as informações de uma escola, de modo que o mesmo arquivo possa ser utilizado para atualizar qualquer diário daquela escola.

Convenções

Tags XML

As tags XML devem ser escritas todas em maiúsculas, sem caracteres especiais, acentuação ou pontuação de qualquer tipo.

Nome do arquivo

Qualquer nome de arquivo válido, terminado com a extensão ”.update”.

Regras de formatação

Textos

Nenhuma formatação especial é requerida. Caracteres especiais e de acentuação/pontuação podem ser usados livremente.

Datas

Datas devem estar no formado YYYY-MM-DD.

Horas

Horas devem estar no formato HH:MM:SS.

Valores numéricos

Valores numéricos devem ser inseridos com seus separadores, quando necessário. A vírgula (,) deve ser usada como separador decimal, enquanto o ponto (.) deve ser usado como separador de milhar.

Valores booleanos

Valores booleanos devem ser informados como TRUE ou FALSE, sempre em maiúsculas.

Composição do arquivo

Cada elemento do arquivo, bem como sua função e a origem das informações que os compõem, estão detalhados nas sessões seguintes.

DIARIOUPDATE

Este elemento é o elemento raiz do documento. Seus elementos filhos devem ser os elementos que armazenam informações comuns a todos os diários, bem como as informações específicas de cada turma/disciplina.

Elementos filho

Elementos filho Ocorrências Descrição
ESCOLA 1 Dados da escola.
PROFESSORES 1 Dados dos professores.
CURSOS 1 Dados do curso, suas séries, disciplinas e turmas.

Atributos

Atributos Descrição Informações adicionais
VERSAO Versão do layout do arquivo de atualização. Valor do atributo (fixo): 1.0
DATAGERACAO Data em que o arquivo foi gerado. Formato: YYYY-MM-DD
HORAGERACAO Hora em que o arquivo foi gerado. Formato: HH:MM:SS
ORIGEM Software que gerou o arquivo. Valores permitidos: SCHOOL, SCHOOLWEB, DIARIO.

Exemplo

<?xml version="1.0" encoding="utf-8"?>
<DIARIOUPDATE VERSAO="1.1" DATAGERACAO="2016-02-14" HORAGERACAO="14:32:00" ORIGEM="SCHOOL">
 <ESCOLA>...</ESCOLA>
 <PROFESSORES>...</PROFESSORES>   
 ...
</DIARIOUPDATE>

ESCOLA

Este elemento contém as informações da escola a qual o arquivo pertence.

Elementos filho

Elementos filho Ocorrências Descrição
ID 1 Identificação única da escola. Quando os dados forem gerados por outro software (School, School web) o código da escola deve ser utilizado.
CODIGOINEP 1 Identificação única da escola no INEP.
NOME 1 Nome da escola.
ENDERECO 1 Endereço da escola.
BAIRRO 1 Bairro da escola.
MUNICIPIO 1 Município da escola.
UF 1 UF da escola.

Atributos

Este elemento não tem atributos.

Exemplo

...
<ESCOLA>
  <ID>1</ID>
  <CODIGOINEP>32078056</CODIGOINEP>
  <NOME>EMEF DARCY RIBEIRO</NOME>
  <ENDERECO>RUA SAO TOME</ENDERECO>
  <BAIRRO>SAO JOSE</BAIRRO>
  <MUNICIPIO>GUARAPARI</MUNICIPIO>
  <UF>ES</UF>
</ESCOLA>
...

PROFESSORES

Este elemento contém as informações de todos os professores da escola.

Elementos filho

Elementos filho Ocorrências Descrição
PROFESSOR 1:N Dados do professor.
– ID 1 Identificação única do professor. Quando os dados forem gerados por outro software (School, School web) o código do professor deve ser utilizado.
– NOME 1 Nome completo do professor.

Atributos

Nenhum atributo para esse elemento.

Exemplo

...
<PROFESSORES>
  <PROFESSOR>
    <ID>46</ID>   
    <NOME>MARIA DA SILVA SANTOS</NOME>
  </PROFESSOR>
  ...
</PROFESSORES>
...

Schema

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsd="undefined">
 
	<xs:simpleType name="booleano">
		<xs:restriction base="xs:string">
			<xs:enumeration value="TRUE"/>
			<xs:enumeration value="FALSE"/>
			<xs:enumeration value="True"/>
			<xs:enumeration value="False"/>
			<xs:enumeration value="true"/>
			<xs:enumeration value="false"/>
		</xs:restriction>
	</xs:simpleType>
 
	<xs:simpleType name="ORIGEMARQUIVO">
		<xs:restriction base="xs:string">
			<xs:enumeration value="SCHOOL"/>
			<xs:enumeration value="SCHOOLWEB"/>
			<xs:enumeration value="DIARIO"/>
		</xs:restriction>
	</xs:simpleType>
 
	<xs:complexType name="PROFESSOR">
		<xs:sequence>
			<xs:element type="xs:positiveInteger" name="ID"/>
			<xs:element type="xs:string" name="NOME"/>
		</xs:sequence>
	</xs:complexType>
 
	<xs:complexType name="ESCOLA">
		<xs:sequence>
			<xs:element type="xs:positiveInteger" name="ID" minOccurs="1"/>
			<xs:element type="xs:unsignedLong" name="CODIGOINEP" minOccurs="1"/>
			<xs:element type="xs:string" name="NOME"/>
			<xs:element type="xs:string" name="ENDERECO" nillable="false"/>
			<xs:element type="xs:string" name="BAIRRO"/>
			<xs:element type="xs:string" name="MUNICIPIO"/>
			<xs:element type="xs:string" name="UF"/>
		</xs:sequence>
	</xs:complexType>
 
	<xs:complexType name="ANOLETIVO">
		<xs:sequence>
			<xs:element type="xs:positiveInteger" name="ANO"/>
			<xs:element type="xs:date" name="DATAINICIAL"/>
			<xs:element type="xs:date" name="DATAFINAL"/>
			<xs:element type="xs:positiveInteger" name="TOTALDIASLETIVOS"/>
			<xs:element type="xs:positiveInteger" name="PESOLETIVO"/>
			<xs:element type="xs:float" name="PORCENTAGEMAPROVACAO"/>
			<xs:element type="xs:float" name="PORCENTAGEMFREQUENCIA"/>
			<xs:element type="xs:positiveInteger" name="CASASDECIMAISNOTA"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="CURSO">
		<xs:sequence>
			<xs:element type="xs:positiveInteger" name="ID"/>
			<xs:element type="xs:string" name="NOME"/>
			<xs:element type="xs:positiveInteger" name="CODIGOENSINO"/>
			<xs:element name="TIPOENSINO">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="EDUCAÇÃO INFANTIL"/>
						<xs:enumeration value="ENSINO FUNDAMENTAL"/>
						<xs:enumeration value="ENSINO MÉDIO"/>
						<xs:enumeration value="EDUCAÇÃO DE JOVENS E ADULTOS"/>
						<xs:enumeration value="EDUCAÇÃO INFANTIL E ENSINO FUNDAMENTAL"/>
						<xs:enumeration value="EDUCAÇÃO PROFISSIONAL"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="ANOLETIVO" type="ANOLETIVO"/>
			<xs:element name="REGRASARREDONDAMENTO" type="REGRASARRED">
			</xs:element>
			<xs:element name="RESULTADOSFINAIS">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="RESULTADOFINAL" maxOccurs="14" minOccurs="12" type="RESULTADOFINAL">
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="SERIES" nillable="false">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="SERIE" type="SERIE" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
 
	<xs:complexType name="REGRASARRED">
		<xs:sequence>
			<xs:element type="booleano" name="UTILIZARREGRASARREDONDAMENTO"/>
			<xs:element type="xs:nonNegativeInteger" name="FINAL0"/>
			<xs:element type="xs:nonNegativeInteger" name="FINAL1"/>
			<xs:element type="xs:nonNegativeInteger" name="FINAL2"/>
			<xs:element type="xs:nonNegativeInteger" name="FINAL3"/>
			<xs:element type="xs:nonNegativeInteger" name="FINAL4"/>
			<xs:element type="xs:nonNegativeInteger" name="FINAL5"/>
			<xs:element type="xs:nonNegativeInteger" name="FINAL6"/>
			<xs:element type="xs:nonNegativeInteger" name="FINAL7"/>
			<xs:element type="xs:nonNegativeInteger" name="FINAL8"/>
			<xs:element type="xs:nonNegativeInteger" name="FINAL9"/>
		</xs:sequence>
	</xs:complexType>
 
	<xs:complexType name="RESULTADOFINAL">
		<xs:sequence>
			<xs:element name="TIPO">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="RENDIMENTO"/>
						<xs:enumeration value="MOVIMENTO"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="RESULTADO">
				<xs:simpleType>
					<xs:restriction base="xs:positiveInteger">
						<xs:minInclusive value="1"/>
						<xs:maxInclusive value="14"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element type="xs:string" name="DESCRICAO"/>
		</xs:sequence>
	</xs:complexType>
 
	<xs:complexType name="BIMESTRE">
		<xs:sequence>
			<xs:element type="xs:positiveInteger" name="ID"/>
			<xs:element type="xs:positiveInteger" name="ORDEM"/>
			<xs:element name="TIPO">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="NORMAL"/>
						<xs:enumeration value="RECUPERAÇÃO"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element type="xs:string" name="NOME"/>
			<xs:element name="FORMAAVALIACAO">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="MÉDIA"/>
						<xs:enumeration value="CONCEITO"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element type="xs:float" name="PESO"/>
			<xs:element type="xs:float" name="MEDIA"/>
			<xs:element type="xs:date" name="DATAINICIAL"/>
			<xs:element type="xs:date" name="DATAFINAL"/>
			<xs:element type="xs:nonNegativeInteger" name="AULASPREVISTAS" nillable="false"/>
			<xs:element type="xs:nonNegativeInteger" name="AULASDADAS" nillable="true"/>
			<xs:element name="CONCEITOS" nillable="true">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="CONCEITO" minOccurs="0" maxOccurs="unbounded" type="CONCEITO"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
 
	<xs:complexType name="CONCEITO">
		<xs:sequence>
			<xs:element name="ID" type="xs:positiveInteger"/>
			<xs:element name="CONCEITO" type="xs:string"/>
			<xs:element name="DESCRICAO" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
 
	<xs:complexType name="DISCIPLINA">
		<xs:sequence>
			<xs:element type="xs:positiveInteger" name="ID"/>
			<xs:element name="TIPO">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="INDIVIDUAL"/>
						<xs:enumeration value="CONJUNTA"/>
						<xs:enumeration value="PRINCIPAL"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element type="xs:nonNegativeInteger" name="CODIGOAREA"/>
			<xs:element type="xs:string" name="NOME"/>
			<xs:element type="booleano" name="VALIDARNOTAS"/>
			<xs:element type="xs:nonNegativeInteger" name="CARGAHORARIA"/>
		</xs:sequence>
	</xs:complexType>
 
	<xs:complexType name="ALUNO">
		<xs:sequence>
			<xs:element type="xs:positiveInteger" name="ID"/>
			<xs:element type="xs:positiveInteger" name="ORDEM"/>
			<xs:element type="xs:string" name="NOME"/>
			<xs:element type="xs:date" name="DATANASCIMENTO"/>
			<xs:element name="DATAMATRICULA" type="xs:date"/>
			<xs:element name="MOVIMENTO">
				<xs:simpleType>
					<xs:restriction base="xs:positiveInteger">
						<xs:enumeration value="1"/>
						<xs:enumeration value="4"/>
						<xs:enumeration value="6"/>
						<xs:enumeration value="7"/>
						<xs:enumeration value="8"/>
						<xs:enumeration value="10"/>
						<xs:enumeration value="11"/>
						<xs:enumeration value="12"/>
						<xs:enumeration value="13"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element type="xs:date" name="DATAMOVIMENTO"/>
			<xs:element type="booleano" name="ISENTOREPROVACAONOTAS"/>
			<xs:element type="booleano" name="ISENTOREPROVACAOFALTAS"/>
		</xs:sequence>
	</xs:complexType>
 
	<xs:complexType name="TURMA">
		<xs:sequence>
			<xs:element type="xs:positiveInteger" name="ID"/>
			<xs:element type="xs:string" name="NOME"/>
			<xs:element name="TURNO">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="MATUTINO"/>
						<xs:enumeration value="VESPERTINO"/>
						<xs:enumeration value="NOTURNO"/>
						<xs:enumeration value="INTEGRAL"/>
						<xs:enumeration value="ALTERNADO"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="VINCULOS">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="VINCULO" maxOccurs="unbounded" minOccurs="0">
							<xs:complexType>
								<xs:attribute name="IDPROFESSOR" type="xs:int" use="required"/>
								<xs:attribute name="IDDISCIPLINA" use="required" type="xs:integer"/>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="ALUNOS">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="ALUNO" type="ALUNO" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
 
	<xs:complexType name="SERIE">
		<xs:sequence>
			<xs:element type="xs:positiveInteger" name="ID"/>
			<xs:element name="MODULO">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="I"/>
						<xs:enumeration value="II"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element type="xs:string" name="NOME"/>
			<xs:element type="xs:string" name="AULASPORDIALETIVO"/>
			<xs:element type="xs:string" name="FORMULAMEDIA" nillable="false"/>
			<xs:element name="CRITERIOMEDIAFINAL">
				<xs:simpleType>
					<xs:restriction base="xs:positiveInteger">
						<xs:minInclusive value="1"/>
						<xs:maxInclusive value="4"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element type="xs:string" name="FORMULAMEDIAFINAL" nillable="true"/>
			<xs:element name="DISCIPLINAS">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="DISCIPLINA" type="DISCIPLINA" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="BIMESTRES">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="BIMESTRE" type="BIMESTRE" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="TURMAS">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="TURMA" type="TURMA" maxOccurs="unbounded" minOccurs="0"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
 
	<xs:element name="DIARIOUPDATE">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="ESCOLA" type="ESCOLA"/>
				<xs:element name="PROFESSORES">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="PROFESSOR" maxOccurs="unbounded" type="PROFESSOR"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="CURSOS">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="CURSO" maxOccurs="unbounded" type="CURSO"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
			<xs:attribute name="DATAGERACAO" type="xs:date" use="required"/>
			<xs:attribute name="HORAGERACAO" type="xs:time" use="required"/>
			<xs:attribute name="VERSAO" type="xs:string" use="required"/>
			<xs:attribute name="ORIGEM" type="ORIGEMARQUIVO" use="required"/>
		</xs:complexType>
	</xs:element>
</xs:schema>