Add supplementary material validations for SPS 1.10#1129
Draft
Add supplementary material validations for SPS 1.10#1129
Conversation
- Add validate_id: @id presence in supplementary-material (CRITICAL) - Add validate_sec_title: <title> in sec (CRITICAL) - Add validate_content: <graphic>/<media> presence (WARNING) - Add validate_id_uniqueness: unique @id values (ERROR) - Update inline error level from CRITICAL to ERROR - Fix validate_label to use suppl_label (preserved from model) - Add suppl_label, suppl_caption, has_content to model data - Update rules JSON with new error level configs - Rewrite tests: 16 tests covering all validations Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Implement validations for supplementary-material element
Add supplementary material validations for SPS 1.10
Mar 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
O que esse PR faz?
Implementa validações para
<supplementary-material>e<sec sec-type="supplementary-material">conforme SPS 1.10, cobrindo 7 de 10 regras (70%):@idem<supplementary-material><label>em<supplementary-material>(fix: usava label do media)<title>em<sec sec-type="supplementary-material"><inline-supplementary-material><graphic>ou<media>@idCorrige bug no modelo onde
media.datasobrescrevia olabeldo<supplementary-material>— novo camposuppl_labelpreserva o valor original. Corrige testetest_validate_full_workflowque falhava porNoneem resultados de validação.Onde a revisão poderia começar?
packtools/sps/validation/supplementary_material.py— contém toda a lógica de validação nova.Como este poderia ser testado manualmente?
27 testes (16 validação + 11 modelo), todos passando.
Algum cenário de contexto que queira dar?
Modelo (
supplementary_material.py):SupplementaryMaterial.datafazbase_data.update(self.media.data)que sobrescrevelabel/captioncom os valores do<media>(geralmenteNone). Campossuppl_labelesuppl_captionforam adicionados para preservar os valores do<supplementary-material>.Validações que retornam None: Métodos como
validate_transcript()emaccessibility_data.pyretornamNonepara casos não aplicáveis. Oxml_validator.pyjá filtra comif not item: continue. O testetest_validate_full_workflowfoi corrigido para seguir o mesmo padrão.Screenshots
N/A
Quais são tickets relevantes?
N/A
Referências
Original prompt
This section details on the original issue you should resolve
<issue_title>Criar validações para o elemento </issue_title>
<issue_description>## Objetivo
Implementar validações para o elemento
<supplementary-material>e a seção<sec sec-type="supplementary-material">conforme a especificação SPS 1.10, aumentando a conformidade de X% para 70% (7 de 10 regras).Nota: Algumas validações para
<supplementary-material>podem já estar parcialmente implementadas no repositório. Este Issue visa reavaliar, complementar e garantir cobertura completa das regras SPS 1.10.Contexto
Material suplementar corresponde a todo conteúdo enviado separadamente do PDF do documento que complementa o trabalho publicado. No XML, deve ser representado por uma seção
<sec sec-type="supplementary-material">contendo elementos<supplementary-material>individuais. Validações corretas garantem presença de elementos obrigatórios, estrutura adequada, e conformidade com recomendações PMC/JATS.Conformidade atual: X de 10 regras implementadas (X%)
Meta após implementação: 7 de 10 regras (70%)
Documentação SPS
Referência oficial: https://docs.google.com/document/d/1GTv4Inc2LS_AXY-ToHT3HmO66UT0VAHWJNOIqzBNSgA/edit?tab=t.0#heading=h.supplementarymaterial
Regras principais conforme SPS 1.10:
Ocorrência:
<supplementary-material>pode aparecer zero ou mais vezes em<sec>e<article-meta><sec sec-type="supplementary-material">deve ser a última seção de<body>ou aparecer em<back>Atributos obrigatórios:
@sec-type="supplementary-material"em<sec>(obrigatório)@idem<supplementary-material>(obrigatório)<media>:@id,@mime-type,@mime-subtype,@xlink:href(obrigatórios)<graphic>:@xlink:href(obrigatório)Elementos obrigatórios:
<sec sec-type="supplementary-material">requer<title>(obrigatório)<supplementary-material>requer<label>(obrigatório)Estrutura:
<sec sec-type="supplementary-material">como container<supplementary-material>para cada item suplementar<supplementary-material>:<graphic>para figuras<media>para outros tipos (PDF, Word, Excel, vídeo, etc.)Elementos opcionais:
<caption>com<title>(opcional em<supplementary-material>)Restrições:
<inline-supplementary-material>Regras de links externos:
<supplementary-material><ext-link>adicional no textoDistinções importantes:
<app-group>e<app>, não material suplementarRegras a Implementar
P0 – Críticas (implementar obrigatoriamente)
@idem<supplementary-material>@idé obrigatório em<supplementary-material><label>em<supplementary-material><label>é obrigatório em cada<supplementary-material><title>em<sec sec-type="supplementary-material"><title>é obrigatório em<sec sec-type="supplementary-material"><inline-supplementary-material><inline-supplementary-material>não é permitidoP1 – Importantes (implementar se possível)
<graphic>ou<media>)<supplementary-material>deve conter<graphic>(para figuras) ou<media>(para outros tipos)<sec sec-type="supplementary-material">quando há<supplementary-material><sec sec-type="supplementary-material">@idem<supplementary-material><supplementary-material>deve ter um@idúnicoP2 – Futuras (fora do escopo deste Issue)
Arquivos a Criar/Modificar
Avaliar existentes (podem ter validações parciais):
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.