max-threads and stack-size set in installed config
[metaproxy-moved-to-github.git] / doc / record_transform.xml
index 28e13f7..c490d56 100644 (file)
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" 
-    "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd" [
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
+    "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
  <!ENTITY copyright SYSTEM "copyright.xml">
- <!ENTITY % common SYSTEM "common/common.ent">
-     %common;
+ <!ENTITY % idcommon SYSTEM "common/common.ent">
+     %idcommon;
 ]>
-<!-- $Id: record_transform.xml,v 1.4 2007-05-09 21:23:08 adam Exp $ -->
 <refentry id="ref-record_transform">
+ <refentryinfo>
+  <productname>Metaproxy</productname>
+  <info><orgname>Index Data</orgname></info>
+ </refentryinfo>
+
  <refmeta>
   <refentrytitle>record_transform</refentrytitle>
   <manvolnum>3mp</manvolnum>
-   <refmiscinfo>Metaproxy Module</refmiscinfo>
-</refmeta>
+  <refmiscinfo class="manual">Metaproxy Module</refmiscinfo>
+ </refmeta>
+
  <refnamediv>
   <refname>record_transform</refname>
-  <refpurpose>Metaproxy Module that performs Z39.50 presentResponse record transformations</refpurpose>
+  <refpurpose>Metaproxy Module that performs record transformations</refpurpose>
  </refnamediv>
 
  <refsect1><title>DESCRIPTION</title>
   <para>
-   This filter acts only on Z3950 present requests, and let all
-   other types of packages and requests pass untouched. It's use is
-   twofold: blocking Z3950  present requests, which the backend
-   server does not understand and can not honor, and transforming
-   the present syntax and elementset name according to the rules
-   specified, to fetch only existing record formats, and transform
-   them on the fly to requested record syntaxes.
-  </para> 
+   This filter acts on Z39.50 present requests and Z39.50 search requests,
+   and let all other types of packages and requests pass untouched. Its
+   use is twofold: blocking Z39.50 present/search requests that the backend
+   server does not understand or can not honor, and transforming the present
+   syntax and elementset name according to the rules specified, to fetch
+   only existing record formats, and transform them on the fly to requested
+   record syntaxes.
+  </para>
   <para>
-   The allowed record present syntax and 
+   The allowed record present syntax and
    element name are described in multiple
-   <literal>&lt;retrieval&gt;</literal> elements inside the 
+   <literal>&lt;retrieval&gt;</literal> elements inside the
    <literal>&lt;retrievalinfo&gt;</literal>
    element. The <literal>syntax</literal> attribute is mandatory, but
    the <literal>name</literal> attribute
-   may be omitted, in which case any 
+   may be omitted, in which case any
    element name is accepted. An additional
    <literal>identifier</literal> attribute can be added to explicitly
-   describe the Z3950 identifier string.
-  </para>
-  <para>
-  Record transformations are invoked when the optional attributes
-  <literal>backendsyntax</literal> and <literal>backendname</literal>
-  as well as the <literal>&lt;convert&gt;</literal> element are specified.  
-  Record conversions come in two flavors:
-  <literal>&lt;marc&gt;</literal> binary conversions between different
-  binary MARC formats and MarcXML formats, and
-  <literal>&lt;xslt&gt;</literal> stylesheet transformations performed
-  on any kind of XML records. These conversions can be stacked in any
-  order, and are performed linearly in file order. 
+   describe the Z39.50 identifier string.
   </para>
   <para>
-   The binary MARC record transformations
- <literal>&lt;marc&gt;</literal> are defined using the following
-   attributes: <literal>inputformat</literal>, <literal>outputformat</literal>,
-   <literal>inputcharset</literal> and  <literal>outputcharset</literal>.
+    The <literal>&lt;retrieval&gt;</literal> element and the content
+    is described in the
+    <ulink url="&url.yaz.retrieval;">Retrieval Facility</ulink> section
+    of the YAZ manual.
   </para>
   <para>
-   XML <literal>&lt;xslt&gt;</literal> transformation instructions
-   accept only one mandatory <literal>stylesheet</literal> attribute,
-   which is either an absolute path, or a relative path from the
-   working directory of <literal>metaproxy</literal> to the location
-   of the requested XSLT stylesheet.
+   From Metaproxy version 1.3.26 and onwards the backend conversion ma
+   also use <ulink url="&url.usemarcon;">USEMARCON</ulink>.
+   If USEMARCON is enabled, the <literal>backend</literal> may include
+   a <literal>usemarcon</literal> element with two attributes:
+   <literal>stage1</literal> and <literal>stage2</literal> that points to
+   conversion files as interpreted by USEMARCON. One or both must be given.
   </para>
  </refsect1>
+
+ <refsect1><title>SCHEMA</title>
+ <para>
+  Schema is in two parts.. One for the filter itself and one for the
+  retrieval info.
+ </para>
+ <literallayout>
+  <xi:include
+      xi:href="../xml/schema/filter_record_transform.rnc"
+      xi:parse="text"
+      xmlns:xi="http://www.w3.org/2001/XInclude" />
+ </literallayout>
+ <literallayout>
+  <xi:include
+      xi:href="../xml/schema/retrievalinfo.rnc"
+      xi:parse="text"
+      xmlns:xi="http://www.w3.org/2001/XInclude" />
+ </literallayout>
+ </refsect1>
+
  <refsect1><title>EXAMPLES</title>
   <para>
    A typical configuration looks like this:
    <screen><![CDATA[
-   <filter type="record_transform">
-     <retrievalinfo>
-        <retrieval syntax="grs-1"/>
-        <retrieval syntax="usmarc" name="F"/>
-        <retrieval syntax="usmarc" name="B"/>
-        <retrieval syntax="xml" name="marcxml"
-                   identifier="info:srw/schema/1/marcxml-v1.1"
-                   backendsyntax="usmarc" backendname="F">
-          <convert>
+    <filter type="record_transform">
+      <retrievalinfo  xmlns="http://indexdata.com/yaz" version="1.0">
+        <retrieval syntax="xml" name="dc"
+                   identifier="info:srw/schema/1/dc-v1.1">
+          <backend syntax="usmarc" name="F">
             <marc inputformat="marc" outputformat="marcxml"
                   inputcharset="marc-8"/>
-          </convert>
+            <xslt stylesheet="../xml/xslt/MARC21slim2DC.xsl"/>
+          </backend>
         </retrieval>
-        <retrieval syntax="xml" name="danmarc"
-                   backendsyntax="usmarc" backendname="F">
-          <convert>
-            <marc inputformat="marc" outputformat="marcxchange"
-                  inputcharset="marc-8"/>
-          </convert>
+        <retrieval syntax="opac"/>
+        <retrieval syntax="xml" name="opac">
+          <backend syntax="opac" name="F">
+          <marc inputformat="marc" outputformat="marcxml"
+                inputcharset="marc-8"/>
+          </backend>
         </retrieval>
-        <retrieval syntax="xml" name="dc"
-                   identifier="info:srw/schema/1/dc-v1.1"
-                   backendsyntax="usmarc" backendname="F">
-          <convert>
-            <marc inputformat="marc" outputformat="marcxml"
-                  inputcharset="marc-8"/>
-            <xslt stylesheet="xml/xslt/MARC21slim2DC.xsl"/>
-          </convert>
+        <retrieval syntax="usmarc">
+          <backend syntax="usmarc" name="F">
+          </backend>
+        </retrieval>
+        <retrieval syntax="usmarc" name="C">
+         <backend syntax="unimarc" name="F">
+            <usemarcon stage1="/etc/usemarcon/uni2us/uni2us.ini"/>
+          </backend>
         </retrieval>
       </retrievalinfo>
-   </filter>
+    </filter>
 ]]>
    </screen>
   </para>
- </refsect1> 
+ </refsect1>
+
  <refsect1><title>SEE ALSO</title>
   <para>
    <citerefentry>
    </citerefentry>
   </para>
  </refsect1>
+
  &copyright;
 </refentry>
 
 <!-- Keep this comment at the end of the file
 Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-sgml-parent-document:nil
-sgml-local-catalogs: nil
-sgml-namecase-general:t
+mode: nxml
+nxml-child-indent: 1
 End:
 -->