Как получить значение по умолчанию, заданное схемой xml?

У меня есть xml-схема, которая указывает значение по умолчанию для необязательного поля...

Я использую lxml для анализа входящего xml...

root = lxml.etree.XML(xml)

Когда я ищу необязательный элемент, и он не существует, я получаю результат "Нет"...

expiry = root.findtext('expiry')

Как мне получить значение expiry по умолчанию для схемы по умолчанию (86400)?

2 ответа

Не может быть сделано "волшебством". Длинный путь - единственный способ (сегодня).

То есть: прочитайте xmlschema как документ xml, найдите тег элемента с атрибутом "expiry", найдите значение атрибута "default" в этом теге.


Сначала вам нужно включить схему, используя lxml.etree.XMLSchema

Я думаю, что это только проверка, но вы можете попытаться проанализировать свой XML вместе со схемой и посмотреть, появляется ли значение по умолчанию.

licensed under cc by-sa 3.0 with attribution.