From 5b4f19d032ffbf48e292c73efdf16794cbb347ff Mon Sep 17 00:00:00 2001 From: Christian Scheb Date: Tue, 31 Jul 2012 16:57:35 +0200 Subject: [PATCH] Schemas should only included when there is a "schemaLocation" attribute --- src/BeSimple/SoapClient/WsdlDownloader.php | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/BeSimple/SoapClient/WsdlDownloader.php b/src/BeSimple/SoapClient/WsdlDownloader.php index 453eaba..79e8423 100644 --- a/src/BeSimple/SoapClient/WsdlDownloader.php +++ b/src/BeSimple/SoapClient/WsdlDownloader.php @@ -189,14 +189,16 @@ class WsdlDownloader $nodes = $xpath->query($query); if ($nodes->length > 0) { foreach ($nodes as $node) { - $schemaLocation = $node->getAttribute('schemaLocation'); - if ($this->isRemoteFile($schemaLocation)) { - $schemaLocation = $this->download($schemaLocation); - $node->setAttribute('schemaLocation', $schemaLocation); - } elseif (!is_null($parentFile)) { - $schemaLocation = $this->resolveRelativePathInUrl($parentFile, $schemaLocation); - $schemaLocation = $this->download($schemaLocation); - $node->setAttribute('schemaLocation', $schemaLocation); + if ( $node->hasAttribute('schemaLocation') ) { + $schemaLocation = $node->getAttribute('schemaLocation'); + if ($this->isRemoteFile($schemaLocation)) { + $schemaLocation = $this->download($schemaLocation); + $node->setAttribute('schemaLocation', $schemaLocation); + } elseif (!is_null($parentFile)) { + $schemaLocation = $this->resolveRelativePathInUrl($parentFile, $schemaLocation); + $schemaLocation = $this->download($schemaLocation); + $node->setAttribute('schemaLocation', $schemaLocation); + } } } }