Skip to content

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

Description

@samuelveigarangel

Contexto

O exportador articlemeta/export_crossref.py gera o XML de depósito no schema Crossref 4.4.0 (SetupDoiBatchPipe, linhas 29-32). A Crossref lançou o schema 5.5.0 em julho/2026 (bundle 0.6.0), que é a versão recomendada para novos depósitos. A 4.4.0 continua aceita, mas a migração permite aproveitar novos metadados (afiliações estruturadas com ROR, roles CRediT, tipo de citação, versão de artigo).
Entre 4.4.0 e 5.5.0 existe uma breaking change: a estrutura de afiliações (introduzida no schema 5.3.0).

Mudanças obrigatórias

1. Cabeçalho do doi_batch (articlemeta/export_crossref.py, linhas 29-32)

  • version: 4.4.05.5.0
  • xmlns: http://www.crossref.org/schema/4.4.0http://www.crossref.org/schema/5.5.0
  • schemaLocation: → http://www.crossref.org/schema/5.5.0 https://data.crossref.org/schemas/crossref5.5.0.xsd (note o novo host data.crossref.org)

2. Afiliações — breaking change (articlemeta/export_crossref.py, linhas 467-490)

O elemento <affiliation> (texto livre) foi removido do schema; XML com ele falha na validação 5.5.0. Reescrever para:

<affiliations>
  <institution>
    <institution_name>Universidade de São Paulo</institution_name>
    <institution_id type="ror">https://ror.org/036rp1748</institution_id> <!-- opcional -->
    <institution_place>São Paulo</institution_place> <!-- opcional -->
  </institution>
</affiliations>

Regras:

  • Cada <institution> exige no mínimo institution_name ou institution_id.
  • institution_id exige atributo type (ror | isni | wikidata) e valor como URL https completa.
  • Uma <institution> por afiliação (hoje o código concatena tudo com '; ' em texto único).
  • addr_line e country não têm equivalente direto (institution_place é só a cidade) — decidir o mapeamento.
  • Posição no XML: dentro de person_name, após surname/suffix (e <role>, se usado) e antes de ORCID. A ordem é validada pelo XSD.

Melhorias opcionais disponíveis na 5.5.0

  • <role type="..." vocab="crossref|credit"/> repetível em person_name: múltiplos roles por contribuidor, novo tipo corresponding-author e suporte à taxonomia CRediT (14 roles). O atributo contributor_role atual (linhas 447-449) continua válido e pode coexistir com <role>.
  • Atributo type em <citation> (XMLCitation, linha 827+): identificar citações como journal-article, dataset, software, etc.
  • Elemento <version> em journal_article para versionamento de artigos.
  • language passa a aceitar ISO 639-2 (os códigos de 2 letras atuais continuam válidos).
  • Demais novidades (posted content blog/poster, CINES, clinical trials estendidos) não se aplicam — só depositamos journal_article.

Impacto nos testes

  • Os XSDs da 5.5.0 usam XSD 1.1; o lxml (libxml2) só suporta XSD 1.0, então ET.XMLSchema (tests/test_export_crossref.py, linhas 699-734) não compila o crossref5.5.0.xsd. Substituir a validação local pela biblioteca xmlschema (suporta XSD 1.1).
  • Baixar o bundle 0.6.0 do GitLab da Crossref para tests/xsd/scielo_crossref/: crossref5.5.0.xsd, common5.5.0.xsd, languages5.5.0.xsd, mediatypes5.5.0.xsd e as versões atualizadas de fundref.xsd, AccessIndicators.xsd, relations.xsd, clinicaltrials.xsd.
  • Atualizar asserções com valores fixos: namespace/schemaLocation (tests/test_export_crossref.py, linhas 2619-2628) e XMLs esperados contendo <affiliation> (ex.: linha 613).

Referências

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions