This is a simple question: Why does a simple archetype slot like this (ADL)

allow_archetype ELEMENT[at0001] occurrences matches {0..*} matches {
-- Archetype slot
                include
                    archetype_id/value matches {/.*/}
}

ends up like this?

<children xsi:type="ARCHETYPE_SLOT">
        <rm_type_name>ELEMENT</rm_type_name>
        <occurrences>
          <lower_included>true</lower_included>
          <upper_included>false</upper_included>
          <lower_unbounded>false</lower_unbounded>
          <upper_unbounded>true</upper_unbounded>
          <lower>0</lower>
        </occurrences>
        <node_id>at0001</node_id>
        <includes>
          <tag />
          <string_expression>archetype_id/value matches
{/.*/}</string_expression>
          <expression xsi:type="EXPR_BINARY_OPERATOR">
            <type>BOOLEAN</type>
            <operator>2007</operator>
            <precedence_overridden>false</precedence_overridden>
            <left_operand xsi:type="EXPR_LEAF">
              <type>STRING</type>
              <item xsi:type="xsd:string">archetype_id/value</item>
              <reference_type>CONSTANT</reference_type>
            </left_operand>
            <right_operand xsi:type="EXPR_LEAF">
              <type>String</type>
              <item xsi:type="C_STRING">
                <pattern>.*</pattern>
              </item>
              <reference_type>CONSTANT</reference_type>
            </right_operand>
          </expression>
        </includes>

I'm not complaining about the ultra-verbose occurrences (surely can be
improved, but there was already a discussion about this on this
mailing list).
I don't get the point of putting the 'expression' tags on this case.
It's like putting the same thing twice.
Is the 'operator' tag supposed to be understandable?

Reply via email to