What are the appropriate names and structure for multiple code/description pairs of elements?

Working with this scenario below:

An IEPD with an existing extension element that is a code for widget capabilities (a widget can have multiple capabilities), and an inclusion in the information exchange XML not only the widget capability codes, but also a description of each code used. There are two options-

  1. The name should be WidgetCapabilityText, and assuming you can have more than one widget capability in an instance, the example below is a common way to do it:
    <my-ext:Widget>
    <my-ext:WidgetCapabilityCode>WD</my-ext:WidgetCapabilityCode>
    <my-ext:WidgetCapabilityCode>SY</my-ext:WidgetCapabilityCode>
    <my-ext:WidgetCapabilityText>Washes the dishes</my-ext:WidgetCapabilityText>
    <my-ext:WidgetCapabilityText>Sweeps the yard</my-ext:WidgetCapabilityText>
    </my-ext:Widget>
  2. Another way to get this done is to use the metadata element nc:DescriptionText to hold the literal and apply that metadata element to WidgetCapabilityCode.

    <nc:Metadata s:id="WD">
    <nc:DescriptionText>Washes the dishes</nc:DescriptionText>
    </nc:Metadata>
    <nc:Metadata s:id="SY">
    <nc:DescriptionText>Sweeps the yard</nc:DescriptionText>
    </nc:Metadata>

    <my-ext:Widget>
    <my-ext:WidgetCapabilityCode s:metadata="WD">WD</my-ext:WidgetCapabilityCode>
    <my-ext:WidgetCapabilityCode s:metadata="SY">SY</my-ext:WidgetCapabilityCode>
    </my-ext:Widget>

    (note the choice of the id values are arbitrarily the same as the code values)