Для начала вы сказали, что хотите, чтобы программа не была жестко закодирована. Я полагаю, вы имеете в виду, что вы не хотите, чтобы он запускал diff, чтобы проверить отсутствие различий. Вы хотите создать метод, гарантирующий, что документ xml следует «вашим правилам», который может быть документом схемы по умолчанию или просто запрограммированными правилами синтаксиса, проверенными для. Очевидно, что это можно сделать несколькими различными способами. Это сильно зависит от сложности правил, которые нужно проверить. Если у вас есть правила для объектов dog xml, у них должен быть атрибут tail, и вы хотите проверить, что их длина находится в определенном диапазоне. У вас должна быть опция с концепцией структуры xml, имеющей такие объекты, как собака, а затем вам просто нужно запрограммировать правила проверки атрибутов этих объектов. Это руководство дает очень краткие указания о том, как сделать документ XSD. https://www.w3schools.com/xml/schema_example.asp В этом документе показано, как создавать правила в файле.
<xs:simpleType name="orderidtype">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{6}"/>
</xs:restriction>
</xs:simpleType>
Теперь, если вы просто хотите сделать это по-своему в python, вы можете использовать lxml для загрузки документа. Затем используйте lxml.etree.parser()
для разбора правил создания для того, как каждый тип объекта должен быть отформатирован, и проверки каждого отдельного правила. Обязательно используйте все свои знания о том, какой формат и структуру XML-документов вы будете получать, чтобы свести к минимуму сложность правил, которые необходимо запрограммировать для их проверки. https://lxml.de/parsing.html