Hi Denis You may also want to take a peek at the GeoStyler (https://geostyler.org/) project which attempts to be a babel fish for different style formats, including QGIS QML. I am guessing they have some kind of conceptual mapping, at least between the shared concepts within the various formats they support.
Regards, Tim On Fri, Aug 28, 2026 at 1:17 AM Nyall Dawson via QGIS-Developer < [email protected]> wrote: > On Fri, 28 Aug 2026 at 10:06, Denis Rykov via QGIS-Developer > <[email protected]> wrote: > > > > Hi, > > > > I’m currently exploring how to use an LLM/AI to generate valid QGIS .qml > styles from natural-language prompts. One difficulty I’ve encountered is > that, as far as I know, there is no formal or exhaustive schema for the QML > format describing both the XML hierarchy and the semantics of all elements, > attributes, renderers, symbol layers, labeling settings, etc. I’m currently > investigating whether PyQGIS can be used to discover this information > programmatically. I can create QGIS objects, serialize them using QGIS > itself, and recursively inspect the resulting DOM. This provides > information about the actual XML hierarchy, attributes, default values, and > property definitions. Before going further, however, I wanted to ask the > QGIS developers whether there is a more canonical approach. > > > > In particular: > > > > Is there an existing source of truth for the QML structure/schema that I > may have missed? > > No -- it's considered an internal private detail only, and changes > many times throughout the release cycle (while maintaining > compatibility with existing QML files!). > > > Is the QML format intentionally undocumented/non-schema-based, > > Yes > > > with the QGIS C++ serialization code effectively serving as the > authoritative specification? > > Kind of -- but again, it's intentionally NOT a fixed specification at > all, but just a reflection of what QGIS internal classes need to store > for any particular release. > > > Would using PyQGIS to instantiate the different renderers, symbol > layers, labeling configurations, etc., and then inspecting their > QDomDocument serialization be a reasonable way to generate a > machine-readable schema? > > Possibly, yes, if you're just interested in generating XML that QGIS > will consume. If you're attempting to READ xml that qgis produces then > the recommended approach is always to just use QGIS api directly to > read this, and then extract properties from the resulting symbols > using the stable API. > > Nyall > > > Are there particular QGIS APIs or parts of the source tree that you > would recommend for this purpose? > > > > I’d appreciate any advice on whether this is the right direction, or > whether there is a more appropriate way to obtain or generate such a schema > from QGIS itself. > > _______________________________________________ > > QGIS-Developer mailing list > > [email protected] > > List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer > > Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer > _______________________________________________ > QGIS-Developer mailing list > [email protected] > List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer > Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer > -- Tim Sutton *Kartoza Cofounder*Tim is a member of the QGIS Project Steering Committee *E *: [email protected] *W* : kartoza.com *This email and any attachments are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you * *have received this email in error, please notify the sender immediately and delete it from your system. Unauthorised use, disclosure, or copying* *of the contents is prohibited.*
_______________________________________________ QGIS-Developer mailing list [email protected] List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
