Custom Refactoring Operations

If none of the predefined operations will help you accomplish a particular refactoring task, you can create a custom operation that is specific to your needs. For example, if you want to convert an attribute to an element and insert the element as the first child of the parent element, a custom refactoring operation needs to be created.
Note: The custom refactoring operations are only available in the Enterprise edition.
An XML Refactoring operation is defined as a pair of resources:

Figure: Diagram of an XML Refactoring Operation

All the defined operations are loaded by the XML Refactoring tool and presented in the Refactoring operations wizard page.

After the user chooses an operation and specifies its parameters, an XQuery Update transformation is processed over the input file. This transformation is executed in a safe mode, which implies the following:
The result of this transformation overrides the initial input file.
Note: To achieve some of the previous goals, the XML Refactoring mechanism adds several attributes that are interpreted internally. The attributes belong to the http://oxygenxml.com/app/xml_refactory/additional_attributes namespace. These attributes should not be taken into account when processing the input XML document, since they are discarded when the transformed document is serialized.
Restriction: Comments or processing instructions that are in any node before or after the root element cannot be modified by an XML Refactoring operation. In other words, XML Refactoring operations can only be performed on comments or processing instructions that are inside the root element.

Creating a Custom Refactoring Operation

To create a custom refactoring operation, follow these steps:
  1. Create an XQuery Update script file.
  2. Create an XML Refactoring Operation Descriptor file.
  3. Store both files in one of the locations that Oxygen XML Editor scans when loading the custom operations.

    Once you run the XML Refactoring tool again, the custom operation appears in the Refactoring operations wizard page.

Related information
Storing and Sharing Refactoring Operations