JMRI® is...
By the community of
JMRI tools for working with your layout:
Layout Automation
Use JMRI to automate parts of your layout and operations:
Supported hardware
JMRI supports a wide range of devices, DCC systems, command stations, networks, and protocols.
JMRI Setup and Installation
JMRI environments...

JMRI Help:

Contents Index
Glossary FAQ

Donate to

JMRI: DecoderPro User Guide

Intro to XML

All of the JMRI configuration files use the XML format. This section is a brief explanation of that format to make it a little easier to understand.

Elements and Tags

XML files are made up of "elements", which are delimited by "tags". It's a lot like HTML, if you're familiar with that. A tag is enclosed in angle brackets, for example <decoder>. An element can either begin and end with a tag:

other stuff here

or have both the start and end tags combined:


Note the back-slash characters. They mark the end of the element. The starting tag of an element can also carry attributes:

<decoder name="foo">
other stuff here

This example shows the attribute "name" being set to a value of "foo". Some attributes are required, and some are optional. Note the double-quotes around the attribute value. They are required.

Line Breaks and Indentation

Finally, a word about line-breaks and indentation. Tabs, spaces and line-breaks don't mean anything in XML files except within the double quotes of an attribute value. To make it easier to read the original file, we often use the indenting to show what elements are inside each other. Each time we start a new element, we indent its contents by another four spaces. An example would be:

stuff in the 1st variable element
stuff in the 2nd variable element

You can break the contents of an element across a line, if that makes it easier to read:

fourthAttribute="bing" />