@@ -367,15 +367,23 @@ function Get-Definition {
367
367
[string ]$Reference
368
368
)
369
369
process {
370
+ Write-Verbose " Reference $ ( $Reference ) "
370
371
if ($Reference.Contains (' #' )) {
372
+ Write-Verbose " Path to definitions"
371
373
$DefinitionName = $Reference.Split (' /' )[2 ]
372
374
$Definition = $Global :RawSchema.definitions .($DefinitionName )
373
375
return (ConvertTo-SchemaElement - object ($Definition ))
374
- } else {
376
+ } elseif ($Reference.Contains (' http' )) {
377
+ write-verbose " Uri to definitions"
375
378
$Reference = [System.Uri ]::new($Reference );
376
379
$DefinitionName = $Reference.Fragment.Substring ($Reference.Fragment.LastIndexOf (' /' ) + 1 , ($Reference.Fragment.Length - $Reference.Fragment.LastIndexOf (' /' )) - 1 )
377
380
$Definition = Get-SchemaDocument - Path $Reference.AbsoluteUri
378
381
return (ConvertTo-SchemaElement - object ($Definition.definitions .($DefinitionName )))
382
+ } else {
383
+ write-verbose " Named definition"
384
+ $DefinitionName = $Reference ;
385
+ $Definition = $Global :RawSchema.definitions .($DefinitionName )
386
+ return (ConvertTo-SchemaElement - object ($Definition ))
379
387
}
380
388
}
381
389
}
@@ -947,12 +955,16 @@ function ConvertTo-Element {
947
955
}
948
956
default {
949
957
if ($Object .(' $ref' )) {
958
+ write-verbose " ConvertTo-Element : Reference : $ ( ($Object .(' $ref' ))| Out-String ) "
950
959
if ($Object .(' $ref' ).contains(' definitions' )) {
951
960
$Result = Get-SchemaDefinition - Reference $Object .(' $ref' )
952
961
}
953
- else {
962
+ elseif ( $Object .( ' $ref ' ).contains( ' http ' )) {
954
963
$Result = Get-SchemaReference - Reference $Object .(' $ref' )
955
964
}
965
+ else {
966
+ $Result = Get-SchemaDefinition - Reference $Object .(' $ref' )
967
+ }
956
968
}
957
969
}
958
970
}
0 commit comments