Возможно, то, что вы пытаетесь сделать, лучше всего сделать с помощью модуля XML :: Validator :: Schema . Технически, правильный ответ - XML :: Validator :: Schema :: Parser (который, как вы догадываетесь, анализирует схему в структуре данных), но это внутренний модуль. Но, может быть, его анализ тоже будет полезен.