Schemas should only included when there is a "schemaLocation" attribute

This commit is contained in:
Christian Scheb 2012-07-31 16:57:35 +02:00
parent ef0361df59
commit 5b4f19d032
1 changed files with 10 additions and 8 deletions

View File

@ -189,14 +189,16 @@ class WsdlDownloader
$nodes = $xpath->query($query); $nodes = $xpath->query($query);
if ($nodes->length > 0) { if ($nodes->length > 0) {
foreach ($nodes as $node) { foreach ($nodes as $node) {
$schemaLocation = $node->getAttribute('schemaLocation'); if ( $node->hasAttribute('schemaLocation') ) {
if ($this->isRemoteFile($schemaLocation)) { $schemaLocation = $node->getAttribute('schemaLocation');
$schemaLocation = $this->download($schemaLocation); if ($this->isRemoteFile($schemaLocation)) {
$node->setAttribute('schemaLocation', $schemaLocation); $schemaLocation = $this->download($schemaLocation);
} elseif (!is_null($parentFile)) { $node->setAttribute('schemaLocation', $schemaLocation);
$schemaLocation = $this->resolveRelativePathInUrl($parentFile, $schemaLocation); } elseif (!is_null($parentFile)) {
$schemaLocation = $this->download($schemaLocation); $schemaLocation = $this->resolveRelativePathInUrl($parentFile, $schemaLocation);
$node->setAttribute('schemaLocation', $schemaLocation); $schemaLocation = $this->download($schemaLocation);
$node->setAttribute('schemaLocation', $schemaLocation);
}
} }
} }
} }