private void reparseSchemaFileDescendants(String fileURI, Set<String> parsedURIs) {
        for (String descendantURI : schemaIndex.getDocumentInheritanceGraph().getAllDescendants(fileURI)) {
            if (parsedURIs.contains(descendantURI)) continue;
            if (workspaceFiles.containsKey(descendantURI)) {
                workspaceFiles.get(descendantURI).reparseContent();
                parsedURIs.add(descendantURI);
            }
        }

        // Reparse documents that holds references to this document
        String schemaIdentifier = ((SchemaDocument)workspaceFiles.get(fileURI)).getSchemaIdentifier();
        Optional<Symbol> documentDefinition = schemaIndex.findSymbol(null, SymbolType.DOCUMENT, schemaIdentifier);

        if (documentDefinition.isPresent()) {
            for (Symbol referencesThisDocument : schemaIndex.getDocumentReferenceGraph().getAllDescendants(documentDefinition.get())) {
                String descendantURI = referencesThisDocument.getFileURI();
                if (!parsedURIs.contains(descendantURI) && workspaceFiles.containsKey(descendantURI)) {
                    workspaceFiles.get(referencesThisDocument.getFileURI()).reparseContent();
                    parsedURIs.add(descendantURI);
                }
            }
        }
        // reparse rank profile files belonging to this document
        for (var entry : workspaceFiles.entrySet()) {
            if (parsedURIs.contains(entry.getKey())) continue;
            if ((entry.getValue() instanceof RankProfileDocument)) {
                RankProfileDocument document  = (RankProfileDocument)entry.getValue();
                if (document.schemaSymbol().isPresent() && document.schemaSymbol().get().fileURIEquals(fileURI)) {
                    entry.getValue().reparseContent();
                    parsedURIs.add(entry.getKey());
                }
            }
        }
    }
Class responsible for maintaining the set of open documents and reparsing them.
When {@link SchemaDocumentScheduler#updateFile} is called, it will call {@link DocumentManager#updateFileContent} on the appropriate file 
and also other files that may have dependencies on the contents of the file.
integration/schema-language-server/language-server/src/main/java/ai/vespa/schemals/schemadocument/SchemaDocumentScheduler.java