NAME

Image::ExifTool::TagInfoXML - Read/write tag information XML database

DESCRIPTION

This module is used to generate an XML database from all ExifTool tag information. The XML database may then be edited and used to re-generate the language modules (Image::ExifTool::Lang::*).

METHODS

Write

Print complete tag information database in XML format.

# save list of all tags
$success = Image::ExifTool::TagInfoXML::Write('dst.xml');

# list all IPTC tags to console, including Flags
Image::ExifTool::TagInfoXML::Write(undef, 'IPTC', Flags => 1);

# write all EXIF Camera tags to file
Image::ExifTool::TagInfoXML::Write($outfile, 'exif:camera');
Inputs:

0) [optional] Output file name, or undef for console output. Output file will be overwritten if it already exists.

1) [optional] String of group names separated by colons to specify the group to print. A specific IFD may not be given as a group, since EXIF tags may be written to any IFD. Saves all groups if not specified.

2) [optional] Hash of options values:

Flags   - Set to output 'flags' attribute
NoDesc  - Set to suppress output of descriptions
Lang    - Select a single language for output
Return Value:

True on success.

Sample XML Output:
<?xml version='1.0' encoding='UTF-8'?>
<taginfo>

<table name='XMP::dc' g0='XMP' g1='XMP-dc' g2='Other'>
 <desc lang='en'>XMP Dublin Core</desc>
 <tag id='title' name='Title' type='lang-alt' writable='true' g2='Image'>
  <desc lang='en'>Title</desc>
  <desc lang='de'>Titel</desc>
  <desc lang='fr'>Titre</desc>
 </tag>
 ...
</table>

</taginfo>

Flags (if selected and available) are formatted as a comma-separated list of the following possible values: Avoid, Binary, List, Mandatory, Permanent, Protected, Unknown and Unsafe. See the tag name documentation and lib/Image/ExifTool/README for a description of these flags. For XMP List tags, the list type (Alt, Bag or Seq) is also output as a flag if applicable.

BuildLangModules

Build all Image::ExifTool::Lang modules from an XML database file.

Image::ExifTool::TagInfoXML::BuildLangModules('src.xml');
Inputs:

0) XML file name

1) Update flags:

0x01 = preserve version numbers
0x02 = update all modules, even if they didn't change
0x04 = update from scratch, ignoring existing definitions
0x08 = override existing different descriptions and values
Return Value:

Number of modules updated, or negative on error.

AUTHOR

Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

Image::ExifTool(3pm), Image::ExifTool::TagNames(3pm)