@@ -298,6 +298,13 @@ private void RegisterSchemaIdentifiers(IOpenApiSchema schema, Uri baseUri, ISet<
298298 }
299299
300300 var schemaBaseUri = baseUri ;
301+ if ( ! string . IsNullOrEmpty ( schema . Id ) &&
302+ Uri . TryCreate ( schema . Id , UriKind . RelativeOrAbsolute , out var schemaIdUri ) )
303+ {
304+ schemaBaseUri = schemaIdUri . IsAbsoluteUri ? schemaIdUri : new Uri ( baseUri , schemaIdUri ) ;
305+ RegisterComponent ( schemaBaseUri . AbsoluteUri , schema ) ;
306+ }
307+
301308 if ( schema is IOpenApiSchemaMissingProperties { Anchor . Length : > 0 } schemaWithAnchor )
302309 {
303310 var anchorUriBuilder = new UriBuilder ( schemaBaseUri )
@@ -307,13 +314,6 @@ private void RegisterSchemaIdentifiers(IOpenApiSchema schema, Uri baseUri, ISet<
307314 RegisterComponent ( anchorUriBuilder . Uri . AbsoluteUri , schema ) ;
308315 }
309316
310- if ( ! string . IsNullOrEmpty ( schema . Id ) &&
311- Uri . TryCreate ( schema . Id , UriKind . RelativeOrAbsolute , out var schemaIdUri ) )
312- {
313- schemaBaseUri = schemaIdUri . IsAbsoluteUri ? schemaIdUri : new Uri ( baseUri , schemaIdUri ) ;
314- RegisterComponent ( schemaBaseUri . AbsoluteUri , schema ) ;
315- }
316-
317317 RegisterSchemaIdentifier ( schema . Items , schemaBaseUri , visitedSchemas ) ;
318318 RegisterSchemaIdentifier ( schema . AdditionalProperties , schemaBaseUri , visitedSchemas ) ;
319319 RegisterSchemaIdentifier ( schema . Not , schemaBaseUri , visitedSchemas ) ;
0 commit comments