* @copyright 2007-2010 Dan Scott
* @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1
* @version CVS: $Id: MARCXML.php 301727 2010-07-30 17:30:51Z dbs $
* @link http://pear.php.net/package/File_MARC
* @example read.php Retrieve specific fields and subfields from a record
* @example subfields.php Create new subfields and add them in specific order
* @example marc_yaz.php Pretty print a MARC record retrieved via yaz extension
*/
require_once 'File/MARC/Record.php';
// {{{ class File_MARCBASE
/**
* The main File_MARCBASE class provides common methods for File_MARC and
* File_MARCXML - primarily for generating MARCXML output.
*
* @category File_Formats
* @package File_MARC
* @author Dan Scott
*
*
*
* @param string $source Name of the file, or a raw MARC string
* @param int $type Source of the input: SOURCE_FILE or SOURCE_STRING
* @param string $record_class Record class, defaults to File_MARC_Record
*/
function __construct($source, $type, $record_class)
{
$this->xmlwriter = new XMLWriter();
$this->xmlwriter->openMemory();
$this->xmlwriter->startDocument('1.0', 'UTF-8');
$this->record_class = $record_class ?: File_MARC_Record::class;
}
// }}}
// {{{ toXMLHeader()
/**
* Initializes the MARCXML output of a record or collection of records
*
* This method produces an XML representation of a MARC record that
* attempts to adhere to the MARCXML standard documented at
* http://www.loc.gov/standards/marcxml/
*
* @return bool true if successful
*/
function toXMLHeader()
{
$this->xmlwriter->startElement("collection");
$this->xmlwriter->writeAttribute("xmlns", "http://www.loc.gov/MARC21/slim");
return true;
}
// }}}
// {{{ getXMLWriter()
/**
* Returns the XMLWriter object
*
* This method produces an XML representation of a MARC record that
* attempts to adhere to the MARCXML standard documented at
* http://www.loc.gov/standards/marcxml/
*
* @return XMLWriter XMLWriter instance
*/
function getXMLWriter()
{
return $this->xmlwriter;
}
// }}}
// {{{ toXMLFooter()
/**
* Returns the MARCXML collection footer
*
* This method produces an XML representation of a MARC record that
* attempts to adhere to the MARCXML standard documented at
* http://www.loc.gov/standards/marcxml/
*
* @return string representation of MARC record in MARCXML format
*/
function toXMLFooter()
{
$this->xmlwriter->endElement(); // end collection
$this->xmlwriter->endDocument();
return $this->xmlwriter->outputMemory();
}
// }}}
}
// }}}