Preciso alimentar dados XML em um sistema como parte de um script de teste.
O próprio script de teste é um script de shell.
Os dados XML contêm carimbos de data/hora em atributos, que precisam estar próximos da hora atual. (Na verdade, existem dois timestamps, um próximo ao horário atual e outro entre alguns minutos e algumas horas no futuro.) O restante dos dados é estático (ou seja, há um conjunto de arquivos XML diferentes, um por teste caso).
Eu estava pensando em resolver isso usando entidades externas e, em seguida, gerando a definição da entidade por meio de um script. Problema: o sistema do consumidor suporta apenas um subconjunto de XML (contando com o analisador de XML glib).
Portanto, minha próxima ideia foi executar o XML por meio de um analisador que resolveria entidades externas e geraria um XML de arquivo simples com todas as entidades e inclusões expandidas. Esses analisadores estão disponíveis como ferramentas de linha de comando (de preferência nos repositórios Debian/Ubuntu)?
xmlstarlet
fará o truque e está disponível nos repositórios do Ubuntu (a partir de 16.04); presumivelmente também dos repositórios Debian.A sintaxe é:
bar.xml
será uma versão canonizada defoo.xml
, com todas as entidades resolvidas.