diff --git a/src/JsonSchema/Uri/UriRetriever.php b/src/JsonSchema/Uri/UriRetriever.php index a1d69043..c723cd97 100644 --- a/src/JsonSchema/Uri/UriRetriever.php +++ b/src/JsonSchema/Uri/UriRetriever.php @@ -150,7 +150,10 @@ public function retrieve($uri, $baseUri = null) // Use the JSON pointer if specified $jsonSchema = $this->resolvePointer($jsonSchema, $resolvedUri); - $jsonSchema->id = $resolvedUri; + + if ($jsonSchema instanceof \stdClass) { + $jsonSchema->id = $resolvedUri; + } return $jsonSchema; } diff --git a/tests/JsonSchema/Tests/RefResolverTest.php b/tests/JsonSchema/Tests/RefResolverTest.php index 49e83ac6..66bdb223 100644 --- a/tests/JsonSchema/Tests/RefResolverTest.php +++ b/tests/JsonSchema/Tests/RefResolverTest.php @@ -287,6 +287,25 @@ public function testFetchRefRelativeAnchor() ); } + public function testFetchRefArray() + { + $retr = new \JsonSchema\Uri\Retrievers\PredefinedArray( + array( + 'http://example.org/array' => <<getUriRetriever()->setUriRetriever($retr); + + $this->assertEquals( + array(1, 2, 3), + $res->fetchRef('http://example.org/array', 'http://example.org/array') + ); + } + public function testSetGetUriRetriever() { $retriever = new \JsonSchema\Uri\UriRetriever;