PyXB получить порядок подэлементов произвольного определения типа элемента - PullRequest
4 голосов
/ 10 октября 2019

Я работаю с несколькими привязками классов XSD, используя PyXB 1.2.6. Я хочу получить порядок имен подэлементов произвольного определения типа элемента. До сих пор я придумал этот код:

from pyxb.binding.basis import element

def get_sub_elements(type_definition):
    """Returns an ordered list of the respective
    sub-elements of the given PyXB element.
    """

    if isinstance(type_definition, element):
        type_definition = type_definition._element__typeDefinition()

    element_map = type_definition._ElementMap
    return tuple(name.localName() for name in element_map.keys())

Однако, поскольку _ElementMap - это dict, он выдает ключи в случайном порядке. Однако мне нужен порядок элементов, как это определено в соответствующем XSD. Как мне этого добиться?

...