Hi,

the final proposal how the labels could look like is as follows (RNC format):

Label = 
    element nml:label {
        element nml:parameter {
            attribute name { "type" } &
            text
            } &
        (
            element nml:parameter {
                attribute name { text } &
                text
            } +
        ) |
        anyElement+
    } +

### taken from nmc base schema
anyElement = element * {anyThing }

anyAttribute = attribute * { text }

anyThing = 
    ( 
        anyElement | 
        anyAttribute | 
        text 
    )*

an example:

  <nml:label>
    <nml:parameter name="type">c-vlan</nml:parameter>
    <nml:parameter name="value>42</nml:parameter>
  </nml:label>

  <nml:label>
    <nml:parameter name="type">wavelength</nml:parameter>
    <nml:parameter name="unit">nm</nml:parameter>
    <nml:parameter name="spacing">25GHz</nml:parameter>
    <nml:parameter name="value">1500</nml:parameter>
  </nml:label>


By default, other nemaspaces than nml basic one are not needed but I would not forbid them. Use of a set of nml:parameter elements (flat structure) seems to be enough flexible to cover almost all possible cases but I can imagine a very rare requirement to have a nested structure inside nml:label, for example:

    <nml:label>
        <nml:paremeter name="type">xyz</nml:parameter>
        <nml-ext:something_1>
            <nml-ext:something_2>
                ...
            </nml-ext:something_2>
        </nml-ext:something_1>
    </nml:label>

(that is why I've added anyElement in the RNC snippet)

If you are 100% sure that such a requirement will not come up I'm fine to remove this extension possibility.


Roman