This page last changed on Apr 18, 2006 by scytacki.

What are Configuration Schemas

A linux computer is configured by editing config files, editing gconf, or using gui tools which edit these files. Almost every piece of software can be configured from the kernel to the web browser to the web server. A configuration schema defines how one of these files can be edited. Or how the gconf tree can be edited. If it is for a file the schema describes the style of the file, for example: key value or nested xml. The schema also describes which keys and values are valid for the file. The same basic format of schema can be used for all types of configuration info. This can be a relaxn or xsd schema.

Benefits of having schemas

Benefits for text file editing

The schema by itself can be used to vlidate config files without running the program being configured. This is what appache does with config test. The can also be used to provide scaffolded editing of config files. This editing would indicate validation and syntax errors as the file is being created or edited. Also the editor could use the schema to provide suggested completions based on the context.

Benefits for documentation

A schema can also be used to generate documenation. The schema would need to be annotated with info about each element of the config file. If the annotations are separate from the schema, then this provides a way to do localization of the docs. These annotaed schema' can be used to generate man pages for the config files. They caould also be used for html. Additionally the annotated schema can be used with the scaffoled editor to provide context sensitive documenation.

Benefits for config file parsing

The schema can also be used to generate code for parsing the config file. This code could be used in the program itself. Or the code can bue useful for programs or scripts that manipulate config files.


A problem with many configuration solutions is their sustainability. In most cases the solution mainly benefits the end user. For example webmin or GST. Additionally the audience being benefitted can't easily improve or fix the tool they are using. Configuraiont schemas can benefit the developers of the the program, the distributions that need to generate doocumented default config files, and the systme admin or advanced user that wants to configure the program. This solution does not directly benefit the end user that wants wizard like configuration, for example YAS, WEBMIN OR gst. But those projects as well as WBEM/CIM, sould be able to use the schem info and tools to more easily maintain and update their manipulations and representations of config files. The schema tools should be be designed to support all of these audiences.

Possible Headings

  • Define configuration schema
  • The benifits
  • How it can be grown and sustained
  • How they are processed for docs and code generation
    • mention potential for argument handling
  • New tools for editing configurations
  • New tools for helping to create schemas
  • Precedence so users can create and use local schemas that override distribution schemas
  • How this can benifit other config tools: YAST, WBEM, CIM, WebConf, GST
Document generated by Confluence on Jan 27, 2014 16:56