Parses, compares, and merges XML file versions



Command type






  • Start the GUI without specifying an operation:
  • Parse one file:
    xmldiffmrg [ –xview ] [ –visible_blank ] [ pname1 ]
  • Compare files:
    xmldiffmrg –xcompare [ –blank_ignore –visible_blank ]
    [ –hstack |–vstack ] [ pname1 ... pname7 ]
  • Merge files:
    xmldiffmrg –xmerge [ –out pname | –to to-version ] [ –query | –abort
    | –qall ] [ –encoding { utf-16 | utf-8 | iso-8859-1 | ascii } ]

    [ –hstack |–vstack ] [ –visible_blank ] [ –base base_contributor ]

    [ pname1 ... pname7 ]


The xmldiffmrg command starts a GUI in which you compare and merge versions of XML elements. xmldiffmrg parses XML, which enables you to do the following:

  • Compare and merge XML structure and content without understanding XML markup.
  • Expand, collapse, browse, and filter the data tree resulting from a comparison or merge operation.

For general information about comparing and merging element versions, see Developing Software.



For all operations except creating a merge arrow, no special identity is required. To create a merge arrow, you must have one of the following identities:

  • Element owner
  • Element group member
  • VOB owner
  • Member of the VersionVault administrators group (VersionVault)


An error occurs if one or more of these objects are locked: VOB, element type, element, branch type, branch, hyperlink type.


(Replicated VOBs only) No mastership restrictions.

Options and arguments

Specifying the operation to be performed

For a single pname argument, –xview; for multiple contributors, none.
Parses a single contributor.
Compares contributors.
Merges contributors.

Treatment of white space

The default behavior differs according to whether the nodes contain white space only, or both white space and other characters, as follows:
  • In white-space-only nodes, white space is ignored unless there's a difference in the nodes being compared or merged.
  • In nodes that contain white space and other characters, a white-space character is treated the same as any other character.
White-space characters are made visible by alternate glyphs representing the white space.
Ignores white-space characters in white-space-only nodes. This option does not affect the comparison of nodes that contain both white space and other characters.

Contributor pane stacking

Each contributor being compared or merged is displayed in a separate contributor pane that is stacked horizontally (side by side), with the base contributor on the left.
Specifies contributor panes are to be stacked vertically, with the base contributor on top.

Destination of the merge output

None; the GUI prompts for a destination if none is specified in the command line.
–out pname
Specifies the pathname to which the merge output is written after all conflicts are resolved. Use this option to perform a merge that does not overwrite any of its contributors.
–to to-version
Specifies the file that is to be the merge target. to-version is both a contributor to the merge and the destination of the merged output.

Controlling user interaction

Performs merges as automatically as possible, prompting you to make a choice only when two or more contributors differ from the base contributor.
Changes in the to-version are accepted unless a conflict exists. Turns off automatic merging for nontrivial merges and prompts you to proceed with every change in the other contributors.
Cancels the command instead of engaging in a user interaction; a merge takes place only if it is completely automatic. If two or more contributors differ from the base contributor, a warning is issued and the command is canceled. This command is useful in shell scripts that batch many merges (for example, all file elements in a directory) into a single procedure.
Turns off automated merging. You are prompted to make a choice every time a contributor differs from the base contributor. This option is turned on when xmldiffmrg cannot determine a common ancestor (or other base contributor), and you do not use –base.

Character encoding

–encoding { utf-16 | utf-8 | iso-8859-1 | ascii}
If an output file is generated, use the specified (case-insensitive) encoding type. The generated output contains an XML Declaration statement containing the specified encoding attribute if required. If a character code cannot be represented in the specified encoding, it is written out as an XML character reference in the form


where nnnn is a hexadecimal character index.

Specifying the base contributor

–base base_contributor
Specifies the base contributor; typically, but not always, this is the closest common ancestor of the contributors.

Specifying the contributors

None; if no contributor is specified on the command line, a dialog box prompts for contributors.
pname1 ... pname7
Specifies the contributors. A maximum of seven contributors may be specified, inclusive of a contributor specified by –base.