public void openDocument(TextDocumentItem document) {
        String fileURI = FileUtils.decodeURL(document.getUri());
        logger.info("Opening document: " + fileURI);

        Optional<DocumentType> documentType = getDocumentTypeFromURI(fileURI);

        if (workspaceURI == null && documentType.isPresent() && (
            documentType.get() == DocumentType.SCHEMA ||
            documentType.get() == DocumentType.PROFILE
        )) {
            Optional<URI> workspaceURI = FileUtils.findSchemaDirectory(URI.create(fileURI));
            if (workspaceURI.isEmpty()) {
                messageHandler.sendMessage(MessageType.Warning, 
                    "The file " + fileURI + 
                    " does not appear to be inside a 'schemas' directory. " + 
                    "Language support will be limited.");
            } else {
                setupWorkspace(workspaceURI.get());
            }
        }

        updateFile(fileURI, document.getText(), document.getVersion());
        workspaceFiles.get(fileURI).setIsOpen(true);
    }
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