Skip to main content

Struct construct: [$tags on scalar member]

  • May 27, 2021
  • 2 replies
  • 0 views

Gianni Sandigliano
Forum|alt.badge.img

Hi All,

Analyzing a Uniface struct, obtained from an xml, I have found this construct:

[theStruct]
   [$tags]
      [nametag] = value_nametag
      [typetag] = value_typetag
      [reference] = value_reference
   [name] = "value_name"
      [$tags on scalar member]
         [namescalartag] = value_namescalartag
      [$tags]
         2ndnametag = "2ndnametag_value"

Being my first time to focus on [$tags on scalar member] I was wondering which could be the correct syntax to refer to them. I've found the obvious:
a) pointing to [$tags on scalar member] collection:
    name->$scalar->$tags
         or
    *{1}->$scalar->$tags
b) to get [$tags on scalar member] collection size:
    name->$scalar→$tags->$collSize
         or
    *{1}->$scalar->$tags->$collSize
c) to point to a specific [$tags on scalar member] name:
    name->$scalar->$tags->namescalartag->$name
         or
    *{1}->$scalar→$tags->*{1}->$name
d) to point to a specific [$tags on scalar member] value:
    name->$scalar->$tags->namescalartag->$scalar
         or
    *{1}->$scalar->$tags->*{1}->$scalar

I am writing this post because I did NOT find any reference to this possible $tags level into current Uniface documentation. But..., as always, I could be wrong! So, please point me to an available docu reference if available.

I suppose also a complete set of examples referring to [$tags on scalar member] could be an help for all Unifacers.

Thanks in advance for any reply. 🙂

Regards,
Gianni

2 replies

Ingo Stiller
Forum|alt.badge.img+3
  • Participating Frequently
  • June 1, 2021

Hi All,

Analyzing a Uniface struct, obtained from an xml, I have found this construct:

[theStruct]
   [$tags]
      [nametag] = value_nametag
      [typetag] = value_typetag
      [reference] = value_reference
   [name] = "value_name"
      [$tags on scalar member]
         [namescalartag] = value_namescalartag
      [$tags]
         2ndnametag = "2ndnametag_value"

Being my first time to focus on [$tags on scalar member] I was wondering which could be the correct syntax to refer to them. I've found the obvious:
a) pointing to [$tags on scalar member] collection:
    name->$scalar->$tags
         or
    *{1}->$scalar->$tags
b) to get [$tags on scalar member] collection size:
    name->$scalar→$tags->$collSize
         or
    *{1}->$scalar->$tags->$collSize
c) to point to a specific [$tags on scalar member] name:
    name->$scalar->$tags->namescalartag->$name
         or
    *{1}->$scalar→$tags->*{1}->$name
d) to point to a specific [$tags on scalar member] value:
    name->$scalar->$tags->namescalartag->$scalar
         or
    *{1}->$scalar->$tags->*{1}->$scalar

I am writing this post because I did NOT find any reference to this possible $tags level into current Uniface documentation. But..., as always, I could be wrong! So, please point me to an available docu reference if available.

I suppose also a complete set of examples referring to [$tags on scalar member] could be an help for all Unifacers.

Thanks in advance for any reply. 🙂

Regards,
Gianni

Hi Gianni

A $scalar does not have any inner structur, as "scalar" say 🙂
But what about
name->$tags
The node "name" does have a scalar context and attributes ($tags)

Ingo


Gianni Sandigliano
Forum|alt.badge.img

Hi All,

Analyzing a Uniface struct, obtained from an xml, I have found this construct:

[theStruct]
   [$tags]
      [nametag] = value_nametag
      [typetag] = value_typetag
      [reference] = value_reference
   [name] = "value_name"
      [$tags on scalar member]
         [namescalartag] = value_namescalartag
      [$tags]
         2ndnametag = "2ndnametag_value"

Being my first time to focus on [$tags on scalar member] I was wondering which could be the correct syntax to refer to them. I've found the obvious:
a) pointing to [$tags on scalar member] collection:
    name->$scalar->$tags
         or
    *{1}->$scalar->$tags
b) to get [$tags on scalar member] collection size:
    name->$scalar→$tags->$collSize
         or
    *{1}->$scalar->$tags->$collSize
c) to point to a specific [$tags on scalar member] name:
    name->$scalar->$tags->namescalartag->$name
         or
    *{1}->$scalar→$tags->*{1}->$name
d) to point to a specific [$tags on scalar member] value:
    name->$scalar->$tags->namescalartag->$scalar
         or
    *{1}->$scalar->$tags->*{1}->$scalar

I am writing this post because I did NOT find any reference to this possible $tags level into current Uniface documentation. But..., as always, I could be wrong! So, please point me to an available docu reference if available.

I suppose also a complete set of examples referring to [$tags on scalar member] could be an help for all Unifacers.

Thanks in advance for any reply. 🙂

Regards,
Gianni

Hi Ingo,

Here where I find the situation I've described:


The field with light blue background is just showing myStruct→$dbgstring.

References to reach that scalar tag are:
html->head->script->$scalar->$tags->*{1}->$name is giving back "xmlClass"
html->head->script->$scalar->$tags->*{1}->$scalar is giving back "CDATA"
References to reach "standard" tags on the whole member are
html->head->script->$tags->*{1}->$name is giving back "xmlClass"
html->head->script->$tags->*{1}->$scalar is giving back "element"
html->head->script->$tags->*{2}->$name is giving back "xmlNamespaceURI"
html->head->script->$tags->*{2}->$scalar is giving back "http://www.w3.org/1999/xhtml"

I did NOT built the struct! It was generated via an xmltostruct instruction.

IMHO [$tags on scalar member] could be recognized as "attributes" of the scalar part of the member they are referring to.

Gianni