Я столкнулся с той же ошибкой в моей системе: клиент Soap был на PHP (5.3.10), а сторона сервера была написана на .NET:
- Я загрузил wsdl "Foo.wsdl" из PHP
- Затем «Foo.wsdl» сделал импорт «Bar.wsdl»
- затем «Bar.wsdl» снова импортирует «Foo.wsdl»
- Сбой PHP с "SOAP-ERROR: парсинг WSDL: бла бла уже определено
Чтобы избежать этого, я просто использую стандартную функцию без учета регистра .net и вызываю первый wsdl в нижнем регистре ("foo.wsdl") оригинальный случай (Foo.wsdl).
Это сработало, потому что теперь foo.wsdl импортирует Bar.wsdl, а Bar.wsdl импортирует Foo.wsdl, и любопытными вещами, которые я не могу объяснить, PHP это нравится.