How to use MarcEdit's MARCEngine XML Functions:
The XML functions provided in the MarcEdit MARCEngine are really provided to help users of all technical backgrounds perform data crosswalking between MARC, Dublin Core--whatever. The philosophy behind these functions is a simple one -- MarcEdit continues to handle any MARC transactions, but the XML functionality simply acts as mediator between Microsoft's MSXML library and the user's data. In general, there are two methods to work with XML data -- either using DOM or SAX. Internally, MarcEdit handles XML data using the DOM object model because it the object model seems to handle nodal manipulation in a more straightforward manner (my opinion).
So how does it work?
Obviously, it would be somewhat self defeating (and impossible) to have every different metadata crosswalk written into MarcEdit. So in version 4.5+, a model has been developed. There are now only four crosswalks hardcoded into MarcEdit's MARCEngine. These crosswalks are: MARC=>Plain Text, Plain Text=>MARC, MARC=MARC21XMLslim and MARC21XMLslim=>MARC. So how does MarcEdit faciliate crosswalks between different data schemes like MARC and EAD? The answer is using XSLT. MarcEdit gives users a base XML data format when users want to create data crosswalks between MARC and another data format, MARC21XMLslim. Using this as a base data format, users can create XSLT's that will translate the MARCXML data into whatever data format that one would desire. Bundled with MarcEdit are a handful of examples of how this might be done. One of the examples, MARC=>DC, comes straight from the Library of Congress's MARCXML website. The other crosswalks were written for data translation here at Oregon State University. But users don't have to simply move data from MARC or two MARC from other metadata formats. MarcEdit's MARCEngine is smart enough to also manage data crosswalks of XML data to other XML or none MARC formats -- again, its all done via an XSLT stylesheet. In a lot of ways, what MarcEdit is doing really isn't that difficult -- but the main goal of this functionality was to open up the ability to crosswalk data to a wider audience -- not simply those that can create crosswalking programs. For additional help using this functionality, please see the MarcEdit Tutorials.