Marcación XML JATS SciELO, CrossRef, DOAJ y otros: Errores frecuentes de validación

XML JATS SciELO

El 2020 llegó con novedades en el entorno de la publicación de revistas electrónicas para revistas indizadas en SciELO Perú. Se trata de la obligatoriedad de envíos de marcación de artículos según metodología SciELO basados en el estándar XML JATS.

Los documentos resultados de un procesamiento del texto completo bajo este formato tienen una estructura que responden a la DTD de SciELO, para cuya validación de estructura de etiquetas y atributos se puede emplear en validador StyleChecker. 

Al momento de realiza la validación (parsing) de los XML resultantes del SciELO Markup, se presentan algunos errores frecuentes que mencionamos a continuación:

Versión SPS: sps-1.8

Nivel: Mensaje:: Apariciones:
DTD ERROR Element sec content does not follow the DTD, expecting (sec-meta? , ((label , title?) | title) , (address | alternatives | array | boxed-text | chem-struct-wrap | fig | fig-group | graphic | media | preformat | supplementary-material | table-wrap | table-wrap-group | disp-formula | disp-formula-group | def-list | list | tex-math | mml:math | p | related-article | related-object | disp-quote | speech | statement | verse-group)* , sec* , (fn-group | glossary | ref-list)*), got (p title p p p p p p p p p p p p p p) 1


Este mensaje puede obedecer, por lo que pudimos evidenciar y corregir, cuando se presentan casos de:
  • Presencia de caracteres o espacios sin marcar  .%<p>
  • Ausencia de contenido o palabras en entre etiquetas <p>%<p>
  • Los espacios del Word con formato sin texto <sup>%<sup>

Versión SPS 1.9

Histórico del artículo

Uno de los cambios que se presenta al pasar a esta nueva versión del SciELO Publishing Schema tiene que ver con la etiqueta <hist> con el siguiente mensaje al pasar el pasar del Markup:

Message: El contenido del tipo de elemento "history" debe coincidir con "(date)+".


Solución:
    • Reemplazar las etiquetas <received> , <revised> y <accepted> por la nueva <histdate> y marcar solo las fechas de cada parte del histórico:

    Recibido: [histdate dateiso="20200611" datetype="received"]11 de junio de 2020[/histdate]

    Aceptado para publicación: [histdate dateiso="20201211" datetype="accepted"]11 de diciembre de 2020[/histdate]

    Publicado: [histdate dateiso="20210223" datetype="pub"]23 de febrero de 2021[/histdate] 

    Formato de publicación

    Otro error se refiere a la fecha del formato de publicación electrónico:

    Al validar el XML con el validador de SCIELO arroja este mensaje:
    • Añadir directamente en el XML la etiqueta pub-date con atributo date-type="pub" antes de: 
    <pub-date date-type="collection" publication-format="electronic">



    Datos de financiación

    La validación con Style Checker también puede mostrar el mensaje siguiente relacionado con la fuente de financiamiento.

    Element 'funding-group': This element has occurrences not declared in fn or ack.


    Solución:
    • Duplicar los datos de financiamiento tanto en la etiqueta <fn-group> como en los agradecimientos <ack>.
    Validación del Body

    Al generarse el marcado automático del XML-BODY puede generar un error en el orden de las etiquetas padre-hijo. El siguiente mensaje de error indica que una etiqueta menor [/p] no puede cerrar después de la etiqueta padre [/subsec] 

     Element sec content does not follow the DTD, expecting (sec-meta? , ((label , title?) | title) , (address | alternatives | array | boxed-text | chem-struct-wrap | code | fig | fig-group | graphic | media | preformat | supplementary-material | table-wrap | table-wrap-group | disp-formula | disp-formula-group | def-list | list | tex-math | mml:math | p | related-article | related-object | disp-quote | speech | statement | verse-group)* , sec* , (fn-group | glossary | ref-list)*), got (title p p p p p sec sec sec sec sec sec sec sec p p p sec p p)

    Solución:
    • Mover la etiqueta padre al lugar correspondiente, luego de la etiqueta hijo (ver Imagen).


    Elementos de apéndice

    Los elementos complementarios como anexos puedes causar errores en la validación de estilo, por lo que un mensaje frecuente es:

       Message: El contenido del tipo de elemento "app" debe coincidir con "(sec-meta?,((label,title?)|title),(address|alternatives|array|boxed-text|chem-struct-wrap|fig|fig-group|graphic|media|preformat|supplementary-material|table-wrap|table-wrap-group|disp-formula|disp-formula-group|def-list|list|tex-math|mml:math|p|related-article|related-object|disp-quote|speech|statement|verse-group)*,sec*,(fn-group|glossary|ref-list)*,permissions?)".


    Solución:
    • No dejar ningún texto sin marcar entre cada elemento padre-hijo.
    <app-group>
          <app id="app01">
              <label>Apéndice 1</label>
              <p>Datos colectados y liberados en archivo CSV disponible en...</p>
          </app>
    </app-group>

    Error al ejecutar XPM
    Luego de validar localmente y superado el validador de SciELO Style Checker, al momento de generar la carpeta scielo_package encontramos este error:

    Exception in Tkinter callback
    Traceback (most recent call last):
      File "C:\Python27\lib\lib-tk\Tkinter.py"


    Una posible solución era actualizar o completar la librería faltante que hace referencia en la imagen, pero para eso debíamos comprobar la existencia de tal directorio:

    Sin embargo, eso no soluciona el problema de raíz, que tampoco es visible mediante las tres validaciones previas realizadas a los ficheros XML.

    Solución 1:
      • Ubicar dentro de las referencias el código con las siguiente etiquetas en el XML generado y proceder a eliminar.
      <day>02</day>
      <month>04</month>
      • Volver a general el XML Package Maker.
      Solución 2:
        • Ubicar y ejecutar el módulo "Tkinter,py" dentro de la carpeta de instalación del Python "C:\Python27\Lib\lib-tk".
        • Volver a general el XML Package Maker.
        Solución 3:
          • Ubicar caracteres especiales que no fueron codificadas en ASCII, por ejemplo: "N°" en Tabla N° 1.
          • Volver a general el XML Package Maker.
          Error al ejecutar XPM: Codificación ASCII

          UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position 34: ordinal not in range(128)

          Solución:
          • Solución pendiente de confirmar, posiblemente corresponda a caracteres especiales: Ž, et ál. o texto entre corchetes [E] [N].

          Enlaces de interés





          XML CrossRef Scheme

          Luego de publicado un artículo en el OJS de la revista, suelen preguntar por qué los DOI no funcionan o al hace clic sobre estos muestra un mensaje de error "DOI NOT FOUND"

          La respuesta es simple, faltan activar los DOI. 

          Esto se realiza inmediatamente después de publicar los artículos en línea a través de diferentes mecanismos, uno de los cuales que es el mas recomendable es vía XML por cada artículo o por cada número publicado.

          Antes de enviar los XML de los metadatos para la activación de los DOI, es sumamente recomendable superar la validación del parser: https://www.crossref.org/02publishers/parser.html

          Errores de validación XML

          [Error] :113:20: cvc-complex-type.2.4.d: Invalid content was found starting with element 'ORCID'. No child element is expected at this point.

          En el caso anterior, la validación no se supera por un problema en la estructura del esquema:


          Solución:
          • Borrar  <alt-name> y todo su contenido, o
          • Mover <ORCID> antes de <alt-name>.








          Comentarios

          Entradas populares de este blog

          10 generadores de referencias bibliográficas en línea

          Revistas científicas peruanas en ESCI-Web of Science (WoS)

          Usos prácticos de APIs CrossRef para obtener métricas de revistas científicas con DOI