> For the complete documentation index, see [llms.txt](https://alex-robenko.gitbook.io/commsdsl-specification/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://alex-robenko.gitbook.io/commsdsl-specification/platforms.md).

# Platforms

The same protocol may be used by multiple *platforms* with a couple of platform specific messages. The **CommsDSL** allows listing of available platforms using optional **\<platform>** node. Every [message](/commsdsl-specification/messages.md) definition may specify a list of supported platforms. A code generator may use this information and generate some platform specific code.

```
<?xml version="1.0" encoding="UTF-8"?>
<schema ...>
    <platform name="Plat1" />
    <platform name="Plat2" />
    <platform name="Plat3" />
</schema>
```

Multiple platforms can (but don't have to) be bundled together as children of **\<platforms>** node.

```
<?xml version="1.0" encoding="UTF-8"?>
<schema ...>
    <platforms>
        <platform name="Plat1" />
        <platform name="Plat2" />
        <platform name="Plat3" />
    </platforms>
</schema>
```
