Flattened tags in version 11.74

Started by herb, November 03, 2019, 09:55:01 AM

Previous topic - Next topic

herb

Hello Phil,

I have seen your new version Exiftool 11.74. Thanks for this version.
In history I have seen the following change/enhancement:
QuoteChanged the way the FlatName element works when used in a structure element (the structure name is now added as a prefix to the flattened tag name)

I did some display of my testfiles containing structures and I also compared the output files of -listx command, but it is not clear to me what has really changed with flattened tags.

Thanks for your help in advance
Best regards
Herb

Phil Harvey

Hi Herb,

You shouldn't notice any difference for any of the pre-defined tags, but if you had user-defined tags that used the FlatName parameter in nested structures, you would have to remove the parent structure name from the FlatName value.  (I already did this for the pre-defined tags so that the flattened tag names stayed the same.)

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

herb

Hello Phil,

thanks for your answer. Sorry, but I have problems to see the changes.

I have an user-defined structure in XMP namespace xmp-eixm; please see the following part of  config-file:
    XMPEixmListB2 => {
        Struct => {
            NAMESPACE => { 'test' => 'http://x.y.z/test/' },
            STRUCT_NAME => 'EixmList2',
            TYPE => 'http://x.y.z/test/xystruct',
            ObjectA2 => { },
            ObjectB2 => { List => 'Bag' },
            Things2 => {
                Struct => {
                    NAMESPACE => { thing => 'http://x.y.z/thing/' },
                    What2  => { },
                    Where2 => { List => 'Bag' },
                    Name2 => { Writable => 'lang-alt' },
                },
                List => 'Seq',
            },
            ObjectX2 => { Writable => 'lang-alt' },
        },
        List => 'Seq',
    },


Here the structure Things2 ia a nested structure. But to write it or to read it using flattened tag-names I have not seen any difference.
I always have e.g. to use -xmp-eixm:XmpEixmListB2Things2What2 as tagname.
A tag -xmp-eixm:Things2What2 - name without parent structure name - is unknown.

Best regards
Herb

Phil Harvey

#3
Hi Herb,

You aren't using the "FlatName" parameter in any of your tag definitions, so there should be no difference for you.

  FlatName      : [Struct tags and structure fields only] Name used for
                  automatically-generated flattened tag names, defaults to Name
                  if not specified.  In general, this is used to remove the
                  redundant names found in some specifications.  May be empty
                  ('') for a Struct tag but not for a structure field.


- Phil

Edit: Added FlatName documentation
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).