ExifTool Forum

ExifTool => The "exiftool" Application => Topic started by: herb on November 03, 2019, 09:55:01 AM

Title: Flattened tags in version 11.74
Post by: herb on November 03, 2019, 09:55:01 AM
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
Title: Re: Flattened tags in version 11.74
Post by: Phil Harvey on November 03, 2019, 07:48:02 PM
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
Title: Re: Flattened tags in version 11.74
Post by: herb on November 04, 2019, 04:13:35 AM
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
Title: Re: Flattened tags in version 11.74
Post by: Phil Harvey on November 04, 2019, 07:22:04 AM
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