Поскольку ответов пока нет. Я опубликую то, что мы сделали, чтобы оно заработало.
Мы открыли файл Typemap.pm
с our $typemap_1
и добавили следующие строки:
'Fault/detail' => 'UPSTrackElements::Errors'
'Fault/detail/Errors' => 'UPSTrackElements::Errors',
'Fault/detail/Errors/ErrorDetail' => 'UPSTrackTypes::ErrorDetailType',
...
wsdl2perl.pl импортировал нужные нам классы ошибок, но он не подключил их должным образом в файле карты типов. В общем, мы должны были добавить 'Fault / detail' в начало, где он отображал все наши классы Error. Я не уверен, почему wsdl2perl.pl не смог правильно отобразить их, когда, очевидно, не было проблем с генерацией классов.
Мы должны были заполнить соответствующий XPath для каждого поля в xml ошибки. Сейчас это работает для нас, но было довольно уродливо, чтобы понять.