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)
Другие вопросы по тегам