Skip to main content

University Library, University of Illinois at Urbana-Champaign


An introduction to the MARC record editing software MarcEdit


This section of the documentation will describe specifically how to move in and out of MARC and MARCXML either for one record or a batch of records as well as mapping from MARC to another XML schema (Dublin Core, MODS, RDF, etc.). For those interested in simply examining MARC records without exporting them, MarcEdit’s MarcEditor application allows users to view a MARC record in MARC Mnemonic MarcEdit format. To do so, see Creating File for Editing in MarcEdit.  This section will also cover the Character Conversion functionality and principles within MarcEdit. 


While MarcEdit allows users to convert between schemas, this conversion schemas requires some configuration. In the interest of brevity, we will walk through the registering of XML functions in general rather than for each schema specifically. Essentially MarcEdit performs translations by converting an XML document written according to one schema into a MARCXML document and then out of MARCXML into a different schema. As long as MarcEdit understands how to move into MARCXML from a schema, that schema can typically be converted into MARC and from there either to MARCXML or MARC Mnemonic format. MarcEdit also allows for flexibility in how one schema is mapped to the other, but some setting of preferences is required. While there are a number of XSLT sheets which perform this transformation, there is often data loss as one might expect with this sort of transformation. This documentation will begin by walking through the registration of a given XML function and then provide more specific information for particular schemas in subsequent workflows. 

Registering an XML Function

While there are some XSLT sheets that come with MarcEdit, they are not accessible unless manually imported into the Marc Tools functions menu. This outlines how a function can be added for future use within the MarcTools window.

  1. Open MarcEdit from Start Menu
  2. Select MARC Tools then select Tools->Edit XML functions list from the top of the dialog box.  
  3. From the dialog box (see below) you can search for functions which are published on the web or select “Add” to see the functions which are native to MarcEdit when installed but must be registered. Using the Add function is recommended in most cases because there are not many stylesheets which have been made available using the “Search” functionality.


  1. Upon selecting Add, the following dialog box will appear:

Give the transformation a name, typically outlining the transformation you would like to perform. For the purpose of this demonstration, we will map OAI_DC to MARCXML, but the procedure will be similar for any mapping.

  1. Give your function a name which indicates the type of transformation being performed. This name will appear in the functions list in MARCTools.
  2. Next choose a stylesheet path by clicking on the yellow folder. Once you click it, a folder window will appear:


These XSLT style sheets come installed with MarcEdit, though you cannot make use of them until you register the function. Select the stylesheet which relates to the transformation being performed. NOTE: some will use the “[SchemaName]to[SchemaName]” format and some will use “[SchemaName]2[SchemaName].” Click open to select the stylesheet.

  1. The next selection involves designating the original format. For this example, the original format should be selected as “Other.” Unless you are moving out of MARC or MARCXML you will select “Other” for the original format. Similarly, “Other” should be selected unless you are transforming into MARC or MARCXML.
  2. If you would like MarcEdit to resolve and validate the XML file based on a link to a schema within the XML file or a DTD file within the XML document, select the “Resolve Remote Entities.” If this is not selected, MarcEdit will assume that the document is valid and proceed with the transformation without pushing validation. If you are likely to work with documents where the schema would not be available because it did not travel with the file(s) you are working with, it is recommended that you leave this unchecked. The XSLT engine is MSXML by default, but you can set it to SAXON locally by checking the box here. The MSXML engine, according to the developer of MarcEdit, is typically faster though there are certain aspects that are easier to control depending what version of XSLT or XQuery you are using. For more information, watch the second webinar on the Webinars page.
  3. Once you are finished, the dialog box will look like this:


Once you click OK, it will be set as a function in the menu so you should not have to establish these settings again. You can also modify the function at a later date. The function you just registered can be found in the menu of transformations in MARC Tools as well as in the Batch Processing menu. You can now use the same steps below to transfer between this new XML function (or any existing functions) to MARC. In the process of creating this documentation, these functions were somewhat inconsistent in how much data loss occurred, though the MARCXML to MARC translation is typically very accurate. While some data loss in crosswalking often occurs, it is worth noting that the amount of data loss varies depending on the crosswalk used. 

Converting Record from XML to MARC

This function allows users to compile a MARCXML file to MARC. Because MarcEdit does not conform to a particular MARC standard by default, changes in the order of fields or subfields within the MARCXML document will not be sorted when compiled back into MARC.

  1. Open MarcEdit from Start Menu
  2. Select MARC Tools
  3. Highlight MARC21XML => MARC21 in the Functions menu
  4. Click the yellow folder to select the MARC file you would like to convert into MARC. Once you hit open in the folder window the directory will appear next to the folder icon.
  5. Click the yellow folder next to Output file to designate the filename for the MARC file you will use after the conversion. If the previous transformation converted a file to .mrc or .mrk you may have to change this manually.
  6. MarcEdit will automatically encode the new file using UTF-8. If you need the converted file to be encoded in MARC-8 select the “Translate to MARC-8” box. If the file is in MARC-8 and you would like it encoded using UTF-8 select “Translate to UTF8.”
  7. Once you are ready, click Execute.
  8. The converted file can now be found in the directory specified in step 5.