-
Notifications
You must be signed in to change notification settings - Fork 25
XML Data Checker pt BR
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
- Python 3.x
- lxml
- 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.
- Interface web para validação de XML
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.
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.
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.0Crie 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.0Antes 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/activatePara Windows:
cd scielo-packtools
.venv\Scripts\activatedata_checker.py caminho/para/artigo.xml caminho/para/saidadata_checker.py caminho/para/pasta caminho/para/saidadata_checker.py caminho/para/pasta caminho/para/saida --csv_per_xmlusage: 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# Validar um único arquivo XML
python packtools/data_checker.py ~/WX7Vm7ZQm6k6d9DCQ3dXnDH.xml ~/resultsNeste caso, dois arquivos serão criados na pasta ~/results:
2025-06-02T105237913325-errors.csv 2025-06-02T105237913325-exceptions.jsonlO 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