Descrição da nova funcionalidade
Como operador da migração de plataforma, eu quero uma função que corrija automaticamente elementos inline-graphic incorretamente posicionados dentro de caption para que os XMLs fiquem conformes com o SPS e sejam processados corretamente pelos sistemas SciELO.
Critérios de aceitação
- A função deve receber um objeto xmltree (lxml.etree) como parâmetro
- Deve identificar todos os elementos
inline-graphic que estejam dentro de label ou caption
- Deve verificar se já existe um elemento
graphic no pai (fig, table-wrap, boxed-text, etc) antes de fazer a correção
- Quando não existir
graphic no pai, deve mover o inline-graphic para fora do label/caption e renomeá-lo para graphic
- Deve preservar todos os atributos do elemento (xlink:href, id, etc) e namespaces
- Deve retornar uma lista de dicionários documentando cada modificação realizada com campos: xpath, action, old_parent, new_parent
- A função deve estar localizada em
/packtools/sps/utils/xml_fixer.py
- Deve ter docstring completa seguindo padrão do projeto
- Não deve modificar o XML se o elemento
graphic já existir no pai
- Deve ter testes unitários cobrindo: casos simples, múltiplos inline-graphics, graphic já existente, diferentes contextos (fig, table-wrap)
Anexos
Exemplo de XML antes da correção:
<fig id="f1">
<label>Figura 1 </label>
<caption><title>Título da figura<inline-graphic xlink:href="img1.jpg"/></title></caption>
</fig>
Exemplo de XML após a correção:
<fig id="f1">
<label>Figura 1</label>
<caption><title>Título da figura</title></caption>
<graphic xlink:href="img1.jpg"/>
</fig>
Referências
Descrição da nova funcionalidade
Como operador da migração de plataforma, eu quero uma função que corrija automaticamente elementos inline-graphic incorretamente posicionados dentro de caption para que os XMLs fiquem conformes com o SPS e sejam processados corretamente pelos sistemas SciELO.
Critérios de aceitação
inline-graphicque estejam dentro delabeloucaptiongraphicno pai (fig, table-wrap, boxed-text, etc) antes de fazer a correçãographicno pai, deve mover oinline-graphicpara fora dolabel/captione renomeá-lo paragraphic/packtools/sps/utils/xml_fixer.pygraphicjá existir no paiAnexos
Exemplo de XML antes da correção:
Exemplo de XML após a correção:
Referências