---
name: "Image::ExifTool::TagInfoXML"
section: "3pm"
platform: "linux"
package: "perl-image-exiftool"
version: "13.55-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Image::ExifTool::TagInfoXML"
---

# Image::ExifTool::TagInfoXML(3pm)

Read/write tag information XML database

## 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-2026, 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/3pm.md), [**Image::ExifTool::TagNames**(3pm)](/Image::ExifTool::TagNames/3pm.md)
