@VisibleForTesting
    protected static ProtobufSchema parseSchema(String schemaString, Map<String, String> dependencies) {
        ProtoFileElement fileElement = ProtoParser.Companion.parse(
            DEFAULT_LOCATION,
            schemaString
        );
        Map<String, ProtoFileElement> protoDependencies = new HashMap<>();
        dependencies.forEach((importPath, schemaDefinition) -> {
            ProtoFileElement dependencyElement = ProtoParser.Companion.parse(
                DEFAULT_LOCATION,
                schemaDefinition
            );
            protoDependencies.put(importPath, dependencyElement);
        });
        MessageElement firstMessage = null;
        for (TypeElement typeElement : fileElement.getTypes()) {
            if (typeElement instanceof MessageElement) {
                firstMessage = (MessageElement) typeElement;
            }
        }
        if (firstMessage == null) {
            throw new SchemaParsingException("No message found in schema");
        }
        DynamicSchema dynamicSchema = toDynamicSchema(firstMessage.getName(), fileElement, protoDependencies);
        Descriptors.Descriptor messageDescriptor = dynamicSchema.getMessageDescriptor(firstMessage.getName());
        Descriptors.FileDescriptor file = messageDescriptor.getFile();
        return new ProtobufSchema(file, fileElement);
    }
Constructs a new schema parsing exception with the specified detail message.

@param message the detail message
core/src/main/java/kafka/automq/table/deserializer/proto/parse/ProtobufSchemaParser.java