Skip to content

XML Data Checker es ES

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

Descripción

datachecker es una herramienta de línea de comandos que valida el contenido de archivos XML para garantizar que cumplan con los estándares requeridos. Se realizan las siguientes comprobaciones:

  • Validación de datos de accesibilidad
  • Validación de datos de afiliación
  • Validación de alternativas
  • Validación de grupo de aplicaciones
  • Validación de resumen del artículo
  • Validación de artículo y subartículos
  • Validación de colaboradores del artículo
  • Validación de DOI del artículo
  • Validación de licencia del artículo
  • Validación de notas del autor
  • Validación de referencias cruzadas
  • Validación de disponibilidad de datos
  • Validación de fechas
  • Validación de erratas
  • Validación de figuras
  • Validación de notas al pie
  • Validación de fórmulas
  • Validación de grupo de financiación
  • Validación de metadatos del fascículo
  • Validación de metadatos de la revista
  • Validación de idioma
  • Validación de medios
  • Validación de revisión por pares
  • Validación de preprint
  • Validación de referencias
  • Validación de artículos relacionados
  • Validación de material suplementario
  • Validación de secciones del sumario
  • Validación de tablas

Tecnologías

  • Python 3.x
  • lxml

Funcionalidades

  • Validación por lotes: Valida un solo archivo XML o todos los archivos XML en una carpeta.
  • Informe de errores: Genera un archivo CSV que resume los errores de validación.
  • Registro de excepciones: Genera un archivo JSONL con información detallada sobre las excepciones.
  • Gestión de salida: Crea automáticamente el directorio de salida si no existe.
  • Salida flexible: Opción para generar un archivo CSV por XML con --csv_per_xml.
  • Interfaz de línea de comandos: Uso sencillo con argumentos obligatorios y opcionales.

Versiones futuras

  • Interfaz web para validación de XML

Requisitos previos

Para usar XML Data Checker, es necesario tener Python 3.9 o superior instalado. Puedes descargarlo directamente en este enlace o visitar el sitio web de Python.

Instalación

Packtools puede instalarse usando pip. Las siguientes secciones proporcionan instrucciones paso a paso para la instalación en sistemas Linux y Windows.

Linux

Crea una carpeta, entra en ella, crea un entorno virtual llamado .venv, actívalo e instala packtools:

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

Windows

Crea una carpeta, entra en ella, crea un entorno virtual llamado .venv e instala packtools:

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

Uso

Antes de usar la herramienta, asegúrate de que tu entorno virtual esté activo. Accede al directorio scielo-packtools y activa el entorno si es necesario. Al ejecutar el comando, especifica la ruta del archivo o carpeta XML y el directorio de salida deseado. Recuerda que estos dos parámetros son obligatorios y deben proporcionarse en el orden especificado (primero el archivo o carpeta XML, luego el directorio de salida).

Para Linux:

cd scielo-packtools
source .venv/bin/activate

Para Windows:

cd scielo-packtools
.venv\Scripts\activate

Para validar un solo archivo XML:

data_checker.py ruta/al/articulo.xml ruta/a/salida

Para validar todos los archivos XML en una carpeta:

data_checker.py ruta/a/carpeta ruta/a/salida

Para validar todos los archivos XML en una carpeta creando un archivo CSV por XML:

data_checker.py ruta/a/carpeta ruta/a/salida --csv_per_xml

Argumentos de la línea de comandos

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

Validador de datos XML

argumentos posicionales:
  xml_path       Ruta del archivo o carpeta XML
  output_path    Ruta de la carpeta de salida

opciones:
  -h, --help     muestra este mensaje de ayuda y sale
  --csv_per_xml  Crea un csv por xml

Ejemplos reales

# Validar un solo archivo XML
python packtools/data_checker.py ~/WX7Vm7ZQm6k6d9DCQ3dXnDH.xml ~/results

En este caso, se crearán dos archivos en la carpeta ~/results:

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

El primer archivo proporciona un resumen de los errores detectados en el archivo XML, mientras que el segundo incluye información detallada sobre las excepciones del proceso de validación. A continuación se muestra un ejemplo del archivo 2025-06-02T105237913325-errors.csv, que es un CSV con cinco columnas:

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'}]}"

El archivo CSV contiene cinco columnas: xml, response, context, advice y detail. La columna xml muestra la ruta del archivo XML validado. La columna response indica la gravedad o tipo del resultado de la validación. La columna context describe dónde en el XML se encontró el problema. La columna advice proporciona una breve recomendación o explicación. La columna detail ofrece información adicional sobre el hallazgo de la validación.

A continuación, un ejemplo de comando para validar todos los archivos XML en una carpeta:

# Validar todos los archivos XML en una carpeta
python packtools/data_checker.py ~/xml_folder ~/results

Clone this wiki locally