dot.case converter
dot.case lowercases the words and joins them with full stops: parse.xml.file, app.database.url, checkout.button.label. Unlike the other styles here it is rarely used for a single identifier — the dot almost always means hierarchy, so dot.case names a path through a namespace rather than one thing.
That is why it dominates configuration. Spring and Micronaut property keys, log4j and logback logger names, Java package names, i18n message keys, feature-flag identifiers and metrics names are all dot-separated, and the separator is load-bearing: a logger named com.example.service inherits the level configured for com.example, and a config key app.db.host maps onto nested YAML or JSON structure by splitting on the dot.
It is not an identifier style in any mainstream language, because the dot is the member-access operator — parse.xml.file is three property accesses, not a name. Use it for keys, namespaces and paths; convert to snake_case or camelCase when the same concept has to become a variable, which is exactly the translation a configuration binder performs.
dot.case — worked through
Every line below is produced by the same converter that runs on this page, so the example and the tool cannot disagree.
| Input | dot.case | Note |
|---|---|---|
| parse xml file | parse.xml.file | The canonical shape of this style. |
| parse the XML file from the ERP API | parse.the.xml.file.from.the.erp.api | Acronym preservation on — the converter’s default. |
| parse the XML file from the ERP API | parseTheXMLFileFromTheErpAPI | Converted back to camelCase. Listed acronyms are restored; anything not on the list returns as an ordinary word. |
Where dot.case is the convention
| Ecosystem | What it applies to |
|---|---|
Spring / application config | Property keys such as spring.datasource.url. Binders split on the dot to build nested structure, and the same key works in YAML, properties files and environment variables. |
Logging frameworks | Logger names mirror package hierarchy, and level configuration is inherited down the dotted path — which is the entire reason the separator matters. |
i18n message keys | checkout.button.submit groups translations by screen and component, so a namespace can be extracted or overridden as a unit. |
Metrics & feature flags | Dotted names give hierarchy that dashboards and flag systems can aggregate or filter on — http.server.requests rolls up under http.server. |
The acronym trap
Output is lowercase, so XML becomes xml and app.xml.parser is unambiguous. The thing to watch is that many systems treat the dot as a structural delimiter, so an acronym is never the problem — an unexpected dot inside a word is. Product names and versions are the usual culprits: a key like app.v1.2.url splits into four levels rather than three, which silently changes the shape of the parsed configuration.
مرحبا بالعالم. The Unicode slug keeps the original script.FAQ
Where is dot.case used?
Configuration keys (Spring properties), Java package names, logger names, internationalisation message keys, metric names and feature flags — anywhere the separator is expressing hierarchy rather than just joining words.
Can I use dot.case for variable names?
No. The dot is the member-access operator in essentially every mainstream language, so it reads as a chain of property accesses. Convert to snake_case or camelCase when the name becomes code.
How does dot.case map to environment variables?
Most frameworks uppercase it and replace dots with underscores: spring.datasource.url becomes SPRING_DATASOURCE_URL. That is a documented mapping in Spring Boot and similar systems, not something you should invent per project.