VBZOOMC Change Log
Version 1.2c1.1.2 (2003-05-20)
- Loosened the error checking on the MARC-8 to Unicode conversion. Many MARC records seem to have extraneous
CR and LF characters which are technically not allowed; these will be silently dropped during the conversion. Note
that other illegal characters might also be dropped, so use caution. In a future version, it will be possible to log these
conditions to a file as they occur.
Version 1.2c1.1.1 (2003-05-14)
- Fixed a really stupid bug that was introduced by the code to do MARC-8 to Unicode conversion in Version 1.2c1.1.
Special characters in the XML MARC were not being properly encoded, such as '&', '<', and '>'.
These are now properly encoded as '&', '<', and '>'.
Version 1.2c1.1 (2003-05-05)
- All MARC-8 character encodings, including about 16,000 East Asian characters, are now correctly converted to Unicode when MARC records
are rendered as XML. All MARC 880 fields are now preserved when the MARC is converted to XML. This is accomplished by using the
MARCCharSet.dll, included with this package.
- Some minor enhancements to the MARC XML output now conform more exactly to the Library of Congress MARC XML standard.
- The MARC parser has been made more tolerant of badly formed MARC. Unexpected values in leader/09 (Character coding scheme) are
ignored and MARC-8 encoding is assumed. Unexpected values in leader/20-23 (Entry map) are also ignored. A record terminator used where
a field terminator is expected is also ignored. Future versions will expose these conditions as a list of warnings, but this is
currently not implemented.
- A bug which caused boolean values in the CircRecord of OPAC records to be incorrect has been fixed. False and True are now returned
as 0 and 1, respectively.
- Support for additional YAZ ZOOM Options has been added. Specifically, the options 'lang' and 'charset' have been added for language and character
set negotiation. Options 'targetImplementationID', 'targetImplementationName', and 'targetImplementationVersion' have been added. A 'timeout' option
has also been added to specific the connection timeout in seconds. The default is 15 seconds.
- The ZOOM_TEST program has been simplified, the code cleaned up, and targeted to a Z39.50 server that should actually work.
Version 1.2c1.0 (2002-11-27)
What the heck, lets call this a production quality release:
- This version is not binary compatible with previous versions, so the name has been changed to VBZOOMC. To use this
new version you will have to reference the new VBZOOMC.dll or use the new ProgramIDs, such as VBZOOMC.ZoomFactory.
- The ZoomRecord.RawData property has been modified to support the return of Variant Byte Arrays, as well as other
data types. The default remains as a string data type. This change was in response to this
Bug Report. See the API
document for details.
- The latest YAZ.dll version 1.9.2 is now bundled
- Other bug fixes and minor enhancements:
- The newer versions of YAZ corrected a bug which caused cached records to be improperly returned, even if a
different record syntax or result set is requested. See this
Bug Report.
- The ZoomRecord.Database property wasn't working correctly. This has also been fixed. See this
Bug Report.
- One of the more common cause for support requests was that people had neglected to install the MSXML 4.0 XML parser from
Microsoft. The ZoomFactory object when it is first created will now check that this is installed and return a useful error message
if it is not.
- More MARC funniness has been corrected. It appears that certain MARC records use the Record Terminator character (RT), instead of the
Field Terminator character (FT) between some data fields. The MARC parser will now ignore this condition. See this
Bug Report.
VBZOOM Change Log
Version 1.2b1.0 (2002-08-06)
First beta release
- The ZOOM 1.2 has been frozen
- No significant changes to this API are anticipated, other than support for additional record syntaxes
- The latest YAZ.dll version 1.8.8 is now bundled
- Bug fixes and minor enhancements:
- Bad LEADERs, especially the ENTRY_MAP, seem fairly common in MARC records, so by default the MARC record parser will
ignore invalid ENTRY_MAPs, instead of raising an error.
- If a buffer is obviously too short to be a valid MARC record an error is immediately raised
- The handling of char buffers returned by the various YAZ functions has been improved to more safely
deal with both null terminated strings and non-null terminated strings where the length is given elsewhere
- For those applications which might be able to use it, the RawData property now returns the address of the
Z_External struct (when this is what YAZ returns). This property will still return a string for cases
where YAZ returns a char buffer.
- An error check is no longer performed after a call to the YAZ ZOOM_resultset_destroy function. It appears that YAZ does not reset
previous error values after a successful call to this function.
- Support for the OPAC Record Syntax:
- OPAC records are now supported
- They are converted to an XML Encoding, using (roughly) the XML Encoding Rules for ASN.1
- The ZoomRecord.GetField method works the same as for XML using XPath expressions
- The ZoomRecord.GetNumberOfFields method also works the same as for XML
- The ZoomRecord.RenderRecord method returns an XML string for OPAC records
- The XMLData property returns a DOMDocument for OPAC records
Version 1.2a0.2 (2002-06-20)
Second alpha release
- The ZOOM 1.2 is still subject to change
- This API is subject to change
- Changed version numbers to conform to the ZOOM recommendation
- All public methods and properties now use Variant data types for better support for scripting environments (ASP, WSH)
- Added properties and methods (see the API doc for details):
- ZoomRecord.GetField(spec,opt)
- ZoomRecord.GetNumberOfFields
- ZoomRecord.XMLData -- returns an XML DOMDocument version of the record,
including USmarc records
- ZoomRecord.Database -- returns name of database where record was found
- Record syntax support for ZoomRecord.GetField and .GetNumberOfFields and .XMLData
- USmarc (most MARC-8 Western European characters are supported,
including non-spacing diacritics,
but all 880 fields are stripped out prior to processing to prevent character encoding issues. I will be working to correct this soon.)
- text-XML, XML, or application-XML
- Still some unimplemented functions (once YAZ supports these so will I):
- ZoomScanSet.GetField(n, "attrs")
- ZoomScanSet.GetField(n, "alt")
- ZoomScanSet.GetField(n, "other")
- Testing Status:
- Support for USmarc record syntaxes has been extensively tested
- Support for XML record syntaxes has been tested a little
- ScanSet functionality has not been tested at all
Version 1.2a0.1 (2002-05-20)
Initial alpha release
- The ZOOM 1.2 is still subject to change
- This API is subject to change
- Not all API functions currently implemented:
- ZoomRecord.GetField(spec)
- ZoomRecord.GetNumberOfFields
- ZoomScanSet.GetField(n, "attrs")
- ZoomScanSet.GetField(n, "alt")
- ZoomScanSet.GetField(n, "other")
- Very limited testing completed