xmldiffreport¶
Diff estrutural e semântico de XML, N-way, que produz relatórios em Markdown legíveis — guiado por recipes por dialecto.
O xmldiffreport compara dois ou mais ficheiros XML ao mesmo tempo — exports
BMC Control-M, POMs Maven, relatórios JUnit/xUnit, sitemaps, ou
qualquer dialecto que lhe ensines com uma recipe — e diz-te o que mudou de
facto, elemento a elemento, atributo a atributo, em vez de um diff de texto
linha-a-linha ruidoso. Alinha os elementos por uma chave natural
(não pela posição), ignora atributos voláteis e escreve um relatório
Markdown limpo.
Nasceu para detetar diferenças entre patches de jobs BMC Control-M ao longo de
test → uat → bench → prod, e generalizou-se num motor guiado por recipes que
funciona com qualquer dialecto XML (exports Control-M, POMs Maven, relatórios
JUnit, sitemaps, …).
Quickstart¶
# Comparar dois (ou mais) ficheiros XML — usa a recipe generic por omissão
xmldiffreport old.xml new.xml -o report.md
from xmldiffreport import diff
result = diff(["old.xml", "new.xml"], recipe="sitemap") # um ficheiro, vários, ou dir(s)
print(result.render()) # Markdown — ou .render("html")
Porquê não um diff normal?¶
Um diff de texto sobre XML mente — atributos voláteis (VERSION,
CREATION_TIME, JOBISN), filhos reordenados e a ordem dos atributos criam
falsas diferenças. O xmldiffreport é estrutural, N-way (3+ ficheiros de
uma vez) e gera um relatório pronto a rever.
Próximos passos¶
- Começar — instalar e correr o primeiro diff.
- Como funciona — o modelo do motor e o que é reportado.
- Escrever recipes — ensinar-lhe um novo dialecto XML.
- Harness de uso — correr nas tuas pastas de ambiente.
- Referência API — a API da biblioteca.