Namespaces
In addition to splitting into multiple files, CommsDSL provides namespaces to help in definition of big protocols. It is possible to define fields, messages, interfaces, and frames in a separate namespace. The code generator must use this information to define relevant classes in a separate namespace(s) (if such feature is provided by the language) or introduce relevant prefixes into the names to avoid name clashes.
The namespace is defined using <ns> node with single name property. It can contain all the mentioned previously nodes.
<?xml version="1.0" encoding="UTF-8"?>
<schema ...>
<ns name="myns">
<fields>
...
</fields>
<message ...>
</message>
<messages>
<message ... />
<message ... />
</messages>
<interface ...>
</interface>
<interfaces>
<interface ... />
<interface ... />
</interfaces>
<frame ...>
</frame>
<frames>
<frame ... />
<frame ... />
</frames>
</ns>
</schema>
The namespace (<ns>) can also contain other namespaces:
<?xml version="1.0" encoding="UTF-8"?>
<schema ...>
<ns name="myns">
<ns name="subns1">
<fields>
...
</fields>
</ns>
<ns name="subns2">
<message ... />
<message ... />
</ns>
</ns>
</schema>
Last updated
Was this helpful?