UPDATE: DDRparser version 1.3.2 released

DDRparser is a free tool for FileMaker developers that converts XML exports from FileMaker Pro — either Database Design Report (DDR) or SaveAsXML — into a well-organised set of text files. This makes it easy to search, compare, and track changes in your solution using standard text editors or Git version control.

Now supports both Database Design Report (DDR) XML and SaveAsXML files

We have completed a major development effort to implement parsing of the new SaveAsXML format. This release also includes several DDR-format bug fixes.

The SaveAsXML support is marked as beta, but it now exports all the same components as the DDR parser. DDRparser will automatically detect the file type and apply the correct parser.

Changes since 1.1.0: Both formats now exports the Theme catalog. Also we have optimized file writing for repetitive parsing. It now verify if content in previous files is modified, and only writes files that have altered content. In this way we reduce wear of SSD drives, not rewriteing files with the same content as before.

The 1.2.0 release can also scan for multilingual tags used in FileMaker, to produce/update translation source files used to make your FileMaker solution multilingual. The option “-t” instructs DDR parser to do this. Together with ACF-plugin 1.7.6.1 that can load translation files and show layouts in any target labguage. Read the blog post about this.

The 1.3.0 release, we have improved the translation workflow. New commands lets you automatically update all your translation files with new strings from the updated POT file. It also allows auto translations using OpenAI for misshing or translations marked as fuzzy. See the video about this.

The 1.3.2 release is an update release. It only contains the command line DDRparser application itself. Use the GUI tool from 1.3.0. It contains changes to layout and script files, the heading now shows group hierarchy. The relationship graph has also been updated to include Cascade Create/Cascade Delete (CC/CD) markings on each side of a relationship.

This new format support also enables full automation — from FileMaker export to DDRparser processing — including Git auto-commit for tracking changes over time.

NamePlatformDescriptionDownloadDocsMore
DDRparser 1.4.1Mac (Intel+Arm)

FileMaker tool for GIT integration, searching, and translations.

DownloadDocumentation
DDRparser 1.4.1Windows

FileMaker tool for GIT integration, searching, and translations.

DownloadDocumentation

Automating exports with the FMDeveloperTool

To automate DDRparser runs, you can use the Claris FMDeveloperTool to export solutions in XML format. This allows you to create a bash script that performs both the FileMaker Pro export and the DDRparser run in one go.

Important: If your solution uses plugins, you need the FMDeveloperTool included with FileMaker Server 2025. Earlier versions do not load plugins, and any plugin calls in your scripts will appear as <Function Missing>. If you export directly from FileMaker Pro, plugin info is included correctly.

The developer tool is located here:

/Library/FileMaker Server/Database Server/bin/FMDeveloperTool

Command syntax:

FMDeveloperTool --saveAsXML <source_filename> <username> <password> \
  [-target_filename | -t <path>] [-encryption_key | -e <key>]

Example:

FMDeveloperTool --saveAsXML "~/Desktop/MyDatabase.fmp12" "Admin" "MyPassword" \
  -t "~/Desktop/XMLoutput/MyDatabase.xml"

DDRparser --clean -i "~/Desktop/XMLoutput/MyDatabase.xml" \
  -f "~/Desktop/XMLoutput/MyDatabaseFiles"

The DDR GUI tool

The DDR GUI tool has also received a facelift. In the first version, we used the ACF plugin mainly for selecting files and folders in the GUI. In the new version, the plugin plays a much bigger role.

We’ve created a set of ACF functions that are now used in various scripts and buttons throughout the solution, including:

  • Verifying file existence
  • Generating the command block from selected parameters and options
  • Checking the DDRparser version
  • Detecting if Git is installed
  • Finding the latest released version
  • Probing the XML type of supplied files

A new table has been added for plugin installation. This allows the app to install the ACF plugin if it’s missing or outdated (version 1.7.5.6 is required). You’ll be alerted before any plugin is installed.

If you have projects from a previous version, you can simply import the data. If the FileFormat field is empty, enable the SelectedFileFormat field in Browse mode and use Replace Field Contents with the formula:

ACF_run ( "ProbeXMLtype" ; DDRprojects::DDR_SumaryPath )

Differences between DDR and SaveAsXML parsing

We have made the outputs as similar as possible, but structural differences in the XML mean some variations are unavoidable.

  • BaseTables: Very similar; however, the timestamp field name changed from TimeStamp to Timestamp, which will appear in diffs.
  • Layouts: Object order differs; SaveAsXML includes extra part-info not present in DDR. Files will show many diffs despite containing largely the same data.
  • Relationship Graph: Nearly identical.
  • Scripts: Mostly identical with minor formatting differences.
  • MenuSets: Mostly identical.
  • Custom Menus: Mostly identical.
  • Custom Functions: Identical
  • Theme Catalog: (new in version 1.1.1) The available info in DDR files and SaveAsXML files are different. Both generates a CSS file, and a list of styles in the Theme. SaveAsXML format also export the Theme Preview image. Comparing DDR and SaveAsXML shows many differences when it comes to Themes. Most importantly, using GIT will show if there is any change to Themes used in the application.

Tip: If you use Git, stick to one export method consistently. Switching between DDR and SaveAsXML will produce many diffs unrelated to real changes in your solution.

You may also like...