Update documentation WRT backendelementset
[yazproxy-moved-to-github.git] / doc / reference.xml
index 5fa7146..caebaf1 100644 (file)
     <para>
      The proxy config file must have a root element called
      <literal>proxy</literal> and scoped within namespace
-     <literal> xmlns="http://indexdata.dk/yazproxy/schema/0.9/</literal>.
+     <literal> xmlns="http://indexdata.dk/yazproxy/schema/0.9/"</literal>.
      All information except an optional XML header must be stored
      within the <literal>proxy</literal> element.
     </para>
      equivalent to command line option <literal>-t</literal>.
     </para>
     <para>
-     <screen>
-     &lt;?xml version="1.0"?>
-     &lt;proxy xmlns="http://indexdata.dk/yazproxy/schema/0.9/">
-      &lt;target name="server1" default="1">
-       &lt;!-- description of server1 .. -->
-      &lt;/target>
-      &lt;target name="server2">
-       &lt;!-- description of server2 .. -->
-      &lt;/target>
-     &lt;/proxy>
+      <screen><![CDATA[
+     <?xml version="1.0"?>
+     <proxy xmlns="http://indexdata.dk/yazproxy/schema/0.9/">
+      <target name="server1" default="1">
+       <!-- description of server1 .. -->
+      </target>
+      <target name="server2">
+       <!-- description of server2 .. -->
+      </target>
+     </proxy>
+      ]]>
      </screen>
     </para>
    </section>
     </para>
    </section>
 
+   <section id="proxy-config-max-sockets">
+    <title>max-sockets</title>
+    <para>
+     The element <literal>max-sockets</literal> is the child of element
+     <literal>target</literal> and specifies the maximum number of sockets
+     to use for the target for all sessions using it. In other words: maximum
+     number of Z39.50 session to the target.
+    </para>
+   </section>
+
    <section id="proxy-config-keepalive">
     <title>keepalive</title>
     <para>The <literal>keepalive</literal> element holds information about
     <title>syntax</title>
     <para>
      The <literal>syntax</literal> element specifies accept or reject
-     or a particular record syntax request from the client.
+     or a particular record syntax request from the client. It also
+     allows record conversion of XML records via XSLT.
     </para>
     <para>
      The <literal>syntax</literal> has one required attribute:
      record to OPACXML.
     </para>
     <para>
+      When <literal>marcxml</literal> is used, yazproxy assumes
+      that records retrieved from the backend are encoded in the
+      <ulink url="&url.marc8;">MARC-8</ulink> character set.
+      This is correct for most MARC21 based systems, but not for 
+      other MARC variants or UTF-8 based MARC21 systems.
+      The <literal>backendcharset</literal> attribute specifies
+      the character set of the MARC records to be converted.
+    </para>
+    <para>
      If attribute <literal>backendtype</literal> is given, that holds the
      record syntax to be transmitted to backend.
     </para>
     <para>
+     If attribute <literal>backendelementset</literal> is given, that holds
+     elementset to be transmitted to backend. If
+     <literal>backendelementset</literal> is omitted, the element
+     set from client is used, except if <literal>marcxml</literal> is used.
+     If no <literal>backendelementset</literal> is given and
+     <literal>marcxml</literal> is used, the elementset is omitted in
+     request to backend.
+    </para>
+    <para>
      If attribute <literal>stylesheet</literal> is given, the proxy
      will convert XML record from server via XSLT. It is important
      that the content from server is XML. If used in conjunction with
    <screen><![CDATA[
 <?xml version="1.0"?>
 <!-- XML Schema for YAZ proxy config file.
-    $Id: reference.xml,v 1.20 2006-06-14 10:12:26 adam Exp $
 -->
 <xs:schema
   xmlns:xs="http://www.w3.org/2001/XMLSchema"
      <xs:element ref="url" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="target-timeout" minOccurs="0"/>
      <xs:element ref="client-timeout" minOccurs="0"/>
+     <xs:element ref="max-sockets" minOccurs="0"/>
      <xs:element ref="keepalive" minOccurs="0"/>
      <xs:element ref="limit" minOccurs="0"/>
      <xs:element ref="attribute" minOccurs="0" maxOccurs="unbounded"/>
  <xs:element name="url" type="xs:string"/>
  <xs:element name="target-timeout" type="xs:integer"/>
  <xs:element name="client-timeout" type="xs:integer"/>
+ <xs:element name="max-sockets" type="xs:integer"/>
  <xs:element name="bandwidth" type="xs:integer"/>
  <xs:element name="pdu" type="xs:integer"/>
  <xs:element name="retrieve" type="xs:integer"/>
    <xs:attribute name="backendcharset" type="xs:string" />
    <xs:attribute name="usemarconstage1" type="xs:string" />
    <xs:attribute name="usemarconstage2" type="xs:string" />
+   <xs:attribute name="backendelementset" type="xs:string" />
   </xs:complexType>
  </xs:element>