sdmx3mdt / public-consultation

0 stars 0 forks source link

MetadataAttributes define minOccurs and maxOccurs twice #38

Closed dosse closed 3 years ago

dosse commented 3 years ago

MetadataAttributes in MSD have direct minOccurs and maxOccurs properties and also the same properties within its localRepresentation, which seems an unnecessary or even confusing duplication.

Example instance:

    <structure:MetadataAttribute minOccurs="1" maxOccurs="1">
        <structure:ConceptIdentity>...</structure:ConceptIdentity>
        <structure:LocalRepresentation minOccurs="1" maxOccurs="1">...<structure:LocalRepresentation>
    </structure:MetadataAttribute>

It should work in the same way as for normal attributes or measures.

sdmx3mdt commented 3 years ago

Advice from J Gager The min/max occurs on local representation will be prohibited. It is necessary to do this to account for container only attributes where local representation is not used.

dosse commented 3 years ago

@sdmx3mdt What is meant with "will be prohibited" Is there still something to be done on this? In this case the ticket should not be closed.

Also, using oXygen, I auto-generated an metadata message instance from the metadata message schema, and it looks as follow:

               <metadata:Attribute id="id40">
                       <metadata:Value>Value12</metadata:Value>
                       <metadata:Value>Value13</metadata:Value>
<!--                   <common:Text xml:lang="en">Text12</common:Text>-->
<!--                   <common:Text xml:lang="en">Text13</common:Text>-->
<!--                   <common:StructuredText xml:lang="en">
                       </common:StructuredText>-->
<!--                   <common:StructuredText xml:lang="en">
                       </common:StructuredText>-->
                       <metadata:Attribute id="id43">
                              <metadata:Value>Value14</metadata:Value>
                              <metadata:Value>Value15</metadata:Value>
<!--                          <common:Text xml:lang="en">Text14</common:Text>-->
<!--                          <common:Text xml:lang="en">Text15</common:Text>-->
<!--                          <common:StructuredText xml:lang="en">
                              </common:StructuredText>-->
<!--                          <common:StructuredText xml:lang="en">
                              </common:StructuredText>-->
                       </metadata:Attribute>
                       <metadata:Attribute id="id46">
<!--                          <metadata:Value>Value16</metadata:Value>-->
<!--                          <metadata:Value>Value17</metadata:Value>-->
                              <common:Text xml:lang="en">Text16</common:Text>
                              <common:Text xml:lang="en">Text17</common:Text>
<!--                          <common:StructuredText xml:lang="en">
                              </common:StructuredText>-->
<!--                          <common:StructuredText xml:lang="en">
                              </common:StructuredText>-->
                       </metadata:Attribute>
               </metadata:Attribute>
               <metadata:Attribute id="id49">
<!--                   <metadata:Value>Value18</metadata:Value>-->
<!--                   <metadata:Value>Value19</metadata:Value>-->
                       <common:Text xml:lang="en">Text18</common:Text>
                       <common:Text xml:lang="en">Text19</common:Text>
<!--                   <common:StructuredText xml:lang="en">
                       </common:StructuredText>-->
<!--                   <common:StructuredText xml:lang="en">
                       </common:StructuredText>-->
                       <metadata:Attribute id="id52">
<!--                          <metadata:Value>Value20</metadata:Value>-->
<!--                          <metadata:Value>Value21</metadata:Value>-->
<!--                          <common:Text xml:lang="en">Text20</common:Text>-->
<!--                          <common:Text xml:lang="en">Text21</common:Text>-->
                              <common:StructuredText xml:lang="en">
                              </common:StructuredText>
                              <common:StructuredText xml:lang="en">
                              </common:StructuredText>
                       </metadata:Attribute>
                       <metadata:Attribute id="id55">
<!--                          <metadata:Value>Value22</metadata:Value>-->
<!--                          <metadata:Value>Value23</metadata:Value>-->
<!--                          <common:Text xml:lang="en">Text22</common:Text>-->
<!--                          <common:Text xml:lang="en">Text23</common:Text>-->
                              <common:StructuredText xml:lang="en">
                              </common:StructuredText>
                              <common:StructuredText xml:lang="en">
                              </common:StructuredText>
                       </metadata:Attribute>
               </metadata:Attribute>

You see that maxOccurs is currently not "prohibited" in the XML metadata message. Could you please clarify?

Note: there is a different approach for modelling Text and StructuredText between measures/attributes in XML data messages and ref metadata in XML metadata messages. Could this be done in a coherent way? It feels like the measures/attributes in XML data messages are the better approach. This is currently be looked at by TF2.

sdmx3mdt commented 3 years ago

Corrected apparent duplication of minOccurs and maxOccurs.