Could you share some examples? Genuinely interested as I really only know those god awful and huge Maven configs as things one would mostly edit by hand
With a nice XSD, the below could be typed with full autocomplete and tab-next-placeholder support for element and attribute names in both neovim/vscode/ intellij.
<proj name="My Biz CLI" url="http://github.com/mybiz/mybizctl" modelVersion="4.0.0">
<coord groupId="com.mybiz" artifactId="mybizctl" version="1.0.0" packaging="jar" />
OR
<coord>com.mybiz:mybizctl:jar:1.0.0</coord> <!-- alt form -->
<deps>
<dep groupId="junit" artifactId="junit" version="5.0.1" scope="test" />
<dep>info.picocli:picocli:4.7.1</dep> <!-- alt form -->
</deps>
</proj>
The above declares a project CLI tool with proj metadata and a defined coordinate producing a jar file with 1 compile time dependency and 1 test dependency. (proj (name "My Biz CLI")
(url "http://github.com/mybiz/mybizctl")
(model-version "4.0.0")
(group-id com.mybiz)
(artifact-id mybizctl)
(version "1.0.0")
(packaging jar)
(deps
(dep (group-id junit)
(artifact-id junit)
(version "5.0.1")
(scope test))))Do S-expressions have a schema standard ?
<proj
name="My Biz CLI"
url="http://github.com/mybiz/mybizctl"
groupId="com.mybiz"
artifactId="mybizctl"
version="1.0.0"
modelVersion="4.0.0">
<deps>
<dep groupId="junit" artifactId="junit" version="5.0.1" scope="test" />
</deps>
</proj>I use XML a lot in favor of JSON because I can pass around a machine readable schema (yes, I know JSON now has some schema support) and because I can represent things like cycles and comments and numbers that are something other than 64-bit floating point values.