Skip to content

XML Data Checker pt BR

Rafael JPD edited this page Jun 2, 2025 · 1 revision

Descrição

datachecker é uma ferramenta de linha de comando que valida o conteúdo de arquivos XML para garantir que atendam aos padrões exigidos. As seguintes verificações são realizadas:

  • Validação de dados de acessibilidade
  • Validação de dados de afiliação
  • Validação de alternativas
  • Validação de grupo de aplicativos
  • Validação de resumo do artigo
  • Validação de artigo e subartigos
  • Validação de colaboradores do artigo
  • Validação de DOI do artigo
  • Validação de licença do artigo
  • Validação de notas do autor
  • Validação de referências cruzadas
  • Validação de disponibilidade de dados
  • Validação de datas
  • Validação de erratas
  • Validação de figuras
  • Validação de notas de rodapé
  • Validação de fórmulas
  • Validação de grupo de financiamento
  • Validação de metadados do fascículo
  • Validação de metadados do periódico
  • Validação de idioma
  • Validação de mídia
  • Validação de revisão por pares
  • Validação de preprint
  • Validação de referências
  • Validação de artigos relacionados
  • Validação de material suplementar
  • Validação de seções do sumário
  • Validação de tabelas

Tecnologias

  • Python 3.x
  • lxml

Funcionalidades

  • Validação em lote: Valida um único arquivo XML ou todos os arquivos XML em uma pasta.
  • Relatório de erros: Gera um arquivo CSV resumindo os erros de validação.
  • Registro de exceções: Gera um arquivo JSONL com informações detalhadas sobre exceções.
  • Gerenciamento de saída: Cria automaticamente o diretório de saída, se não existir.
  • Saída flexível: Opção para gerar um arquivo CSV por XML com --csv_per_xml.
  • Interface de linha de comando: Uso simples com argumentos obrigatórios e opcionais.

Versões futuras

  • Interface web para validação de XML

Pré-requisitos

Para usar o XML Data Checker, é necessário ter Python 3.9 ou superior instalado. Você pode baixá-lo diretamente neste link ou visitar o site do Python.

Instalação

O Packtools pode ser instalado usando o pip. As seções a seguir fornecem instruções passo a passo para instalação em sistemas Linux e Windows.

Linux

Crie uma pasta, entre nela, crie um ambiente virtual chamado .venv, ative-o e instale o packtools:

mkdir scielo-packtools
cd scielo-packtools
python3 -m venv .venv
source .venv/bin/activate
pip install packtools>=4.10.0

Windows

Crie uma pasta, entre nela, crie um ambiente virtual chamado .venv e instale o packtools:

md scielo-packtools
cd scielo-packtools
python3 -m venv .venv
.venv\Scripts\activate
pip install packtools>=4.10.0

Uso

Antes de usar a ferramenta, certifique-se de que seu ambiente virtual está ativo. Acesse o diretório scielo-packtools e ative o ambiente, se necessário. Ao executar o comando, especifique o caminho do arquivo ou pasta XML e o diretório de saída desejado. Lembre-se de que esses dois parâmetros são obrigatórios e devem ser fornecidos na ordem especificada (primeiro o arquivo ou pasta XML, depois o diretório de saída).

Para Linux:

cd scielo-packtools
source .venv/bin/activate

Para Windows:

cd scielo-packtools
.venv\Scripts\activate

Para validar um único arquivo XML:

data_checker.py caminho/para/artigo.xml caminho/para/saida

Para validar todos os arquivos XML em uma pasta:

data_checker.py caminho/para/pasta caminho/para/saida

Para validar todos os arquivos XML em uma pasta criando um arquivo CSV por XML:

data_checker.py caminho/para/pasta caminho/para/saida --csv_per_xml

Argumentos da linha de comando

usage: data_checker.py [-h] [--csv_per_xml] xml_path output_path

Validador de dados XML

argumentos posicionais:
  xml_path       Caminho do arquivo ou pasta XML
  output_path    Caminho da pasta de saída

opções:
  -h, --help     mostra esta mensagem de ajuda e sai
  --csv_per_xml  Cria um csv por xml

Exemplos reais

# Validar um único arquivo XML
python packtools/data_checker.py ~/WX7Vm7ZQm6k6d9DCQ3dXnDH.xml ~/results

Neste caso, dois arquivos serão criados na pasta ~/results:

2025-06-02T105237913325-errors.csv  2025-06-02T105237913325-exceptions.jsonl

O primeiro arquivo fornece um resumo dos erros detectados no arquivo XML, enquanto o segundo inclui informações detalhadas de exceções do processo de validação. Abaixo está um exemplo do arquivo 2025-06-02T105237913325-errors.csv, que é um CSV com cinco colunas:

xml,response,context,advice,detail
/home/rafaeljpd/WX7Vm7ZQm6k6d9DCQ3dXnDH.xml,WARNING,bibliographic strip,Unable to check if issue is registered,"{'volume': '38', 'number': None, 'supplement': None}"
/home/rafaeljpd/WX7Vm7ZQm6k6d9DCQ3dXnDH.xml,WARNING,subject,"Unable to check if Original Article (<subject-group subj-group-type=""heading""><subject>Original Article</subject></subject-group>) is a valid table of contents section because the journal (ABCD. Arquivos Brasileiros de Cirurgia Digestiva (São Paulo)) sections were not informed","{'parent': 'article', 'parent_id': None, 'parent_lang': 'en', 'parent_article_type': 'research-article', 'original_article_type': 'research-article', 'journal': 'ABCD. Arquivos Brasileiros de Cirurgia Digestiva (São Paulo)', 'article_title': 'FECAL CALPROTECTIN AND INTESTINAL METABOLITES: WHAT IS THEIR IMPORTANCE IN THE ACTIVITY AND DIFFERENTIATION OF PATIENTS WITH INFLAMMATORY BOWEL DISEASES?', 'subject': 'Original Article', 'subj_group_type': 'heading', 'section': 'Original Article', 'subsections': []}"
/home/rafaeljpd/WX7Vm7ZQm6k6d9DCQ3dXnDH.xml,CRITICAL,contrib,Lucas Correia LINS : Mark the contrib role. Consult SPS documentation for detailed instructions,"{'contrib-group-type': None, 'parent': 'article', 'parent_id': None, 'parent_lang': 'en', 'parent_article_type': 'research-article', 'original_article_type': 'research-article', 'contrib_type': 'author', 'contrib_ids': {'orcid': '0000-0001-6355-2775'}, 'contrib_name': {'surname': 'LINS', 'given-names': 'Lucas Correia'}, 'contrib_full_name': 'Lucas Correia LINS', 'contrib_xref': [{'rid': 'aff1', 'ref_type': 'aff', 'text': '1'}]}"

O arquivo CSV contém cinco colunas: xml, response, context, advice e detail. A coluna xml mostra o caminho do arquivo XML validado. A coluna response indica a gravidade ou tipo do resultado da validação. A coluna context descreve onde no XML o problema foi encontrado. A coluna advice fornece uma breve recomendação ou explicação. A coluna detail oferece informações adicionais sobre o achado da validação.

Veja abaixo um exemplo de comando para validar todos os arquivos XML em uma pasta:

# Validar todos os arquivos XML em uma pasta
python packtools/data_checker.py ~/xml_folder ~/results

Clone this wiki locally