python xmlschema, определяющий все вложенные атрибуты
Я пытаюсь пройти через схему xml. Цель состоит в том, чтобы распечатать все сложные типы с их вложенными компонентами. Этот xsd имеет вложенные сложные типы.
Для этого я использую xmlschema. В приведенном ниже коде я мог выбрать только сложные типы в начале, но для того, чтобы углубиться, мне нужно предпринять действия на основе типа элемента \ валидатора. Кажется, я не могу указать утверждение, в котором говорится, что если это сложный тип, сделайте это или если это простой тип, тогда сделайте что-нибудь еще:
import xmlschema
from pprint import pprint
schema = xmlschema.XMLSchema('Schema.xsd')
for t in schema.complex_types:
print(t.name)
for c in t.iter_components():
print('\t', c.name)
print('\t', type(c))
1 ответ
Чтобы просмотреть все определенные сложные типы (глобальные и локальные), вы можете выполнить итерацию компонентов из экземпляра схемы и использовать параметр, который фильтрует возвращаемые типы компонентов XSD:
import xmlschema
from xmlschema.validators import XsdComplexType
schema = xmlschema.XMLSchema('Schema.xsd')
for xsd_type in t.iter_components(xsd_classes=XsdComplexType):
print(xsd_type)