Skip to content

Migrar exportação Crossref do schema 4.4.0 para 5.5.0 - #341

Open
samuelveigarangel wants to merge 6 commits into
scieloorg:masterfrom
samuelveigarangel:issue-334
Open

Migrar exportação Crossref do schema 4.4.0 para 5.5.0#341
samuelveigarangel wants to merge 6 commits into
scieloorg:masterfrom
samuelveigarangel:issue-334

Conversation

@samuelveigarangel

@samuelveigarangel samuelveigarangel commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

O que esse PR faz?

Migra o depósito Crossref de 4.4.0 para 5.5.0.

  • Atualiza version, xmlns e schemaLocation do doi_batch.
  • Substitui <affiliation> (texto livre, removido no schema 5.3+) por <affiliations><institution>…</institution></affiliations>.
  • institution_name vem de institution; institution_place junta city, state e country quando existem.
  • Remove reference_distribution_opts de journal_article (o 5.5.0 não aceita esse atributo nesse elemento).
  • Troca a validação local de lxml (XSD 1.0) por xmlschema (XSD 1.1) e inclui o bundle 5.5.0.

Melhorias opcionais da 5.5.0 (CRediT, citation/@type, <version>) ficam fora deste PR.

Onde a revisão poderia começar?

articlemeta/export_crossref.py:

  • SetupDoiBatchPipe — cabeçalho 5.5.0
  • XMLArticleContributorsPipe._create_institution — mapeamento das afiliações

Os testes estão em tests/test_export_crossref.py:

  • test_doi_batch_element
  • test_article_contributors_element
  • test_article_affiliations_skip_invalid_entries_and_precede_orcid
  • test_validating_against_schema
  • test_related_articles_validating_against_schema

Como este poderia ser testado manualmente?

  1. Instalar as dependências de teste, incluindo xmlschema.
  2. Rodar: python -m unittest tests.test_export_crossref
  3. Exportar um artigo com afiliações (fmt=xmlcrossref) e conferir:
    • doi_batch@version="5.5.0"
    • um <institution> por afiliação, com institution_place no formato cidade, estado, país
    • <affiliations> antes de <ORCID>
  4. Validar o XML gerado com o schema 5.5.0 (XSD 1.1). O parser web da Crossref (XSDParse) ainda usa XSD 1.0 e pode acusar erro em <xsd:assert> de role/person_name; o depósito em produção aceita o arquivo.

Algum cenário de contexto que queira dar?

O schema 5.5.0 é o recomendado para novos depósitos. A breaking change está nas afiliações: concatenar instituições com '; ' em um único <affiliation> deixa de ser válido.

Não há ROR/ISNI/Wikidata no modelo atual; afiliação sem institution é ignorada. O validador dos testes baixa o JATS de data.crossref.org (os XSDs JATS/standard-modules não foram versionados neste PR).

O parser oficial da Crossref reporta dois erros de s4s-elt-invalid-content.1 por causa dos <xsd:assert> do 5.5.0; isso é um falso positivo do validador XSD 1.0, já confirmado no fórum da Crossref.

Screenshots

N/A

Quais são tickets relevantes?

Closes #334

Referências

samuelveigarangel and others added 6 commits August 26, 2026 12:27
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Remove reference_distribution_opts de journal_article, atributo que
o schema 5.5.0 não aceita nesse elemento.

Co-authored-by: Cursor <cursoragent@cursor.com>
Cada afiliação do autor passa a gerar um institution com nome e
institution_place composto por city, state e country.

Co-authored-by: Cursor <cursoragent@cursor.com>
…adas.

A validação local passa a usar xmlschema (XSD 1.1) e cobre casos de
institution_place, afiliações inválidas e posição antes do ORCID.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Migrar exportação Crossref do schema 4.4.0 para 5.5.0

1 participant