1 <chapter id="alvis-xml-record-model">
2 <!-- $Id: alvisxmlrecordmodel.xml,v 1.1 2006-01-19 09:27:00 marc Exp $ -->
3 <title>ALVIS XML Record Model and Filter Module</title>
7 The record model described in this chapter applies to the fundamental,
9 record type <literal>alvis</literal>, introduced in
10 <xref linkend="componentmodulesalvis"/>. The ALVIS XML record model
11 is experimental, and it's inner workings might change in future
12 releases of the Zebra Information Server.
19 <sect1 id="alvis-record-filter">
20 <title>ALLVIS Record Filter</title>
22 The experimental, loadable Alvis XM/XSLT filter module
23 <literal>mod-alvis.so</literal> is packaged in the GNU/Debian package
24 <literal>libidzebra1.4-mod-alvis</literal>.
27 <sect2 id="alvis-internal-representation">
28 <title>ALLVIS Internal Record Representation</title>
32 <sect2 id="alvis-canonical-format">
33 <title>ALLVIS Canonical Format</title>
41 <sect1 id="alvis-record-model-config">
42 <title>ALLVIS Record Model Configuration</title>
47 <sect2 id="alvis-exchange-formats">
48 <title>ALLVIS Exchange Formats</title>
60 c) Main "alvis" XSLT filter config file:
61 cat db/filter_alvis_conf.xml
63 <?xml version="1.0" encoding="UTF8"?>
65 <schema name="alvis" stylesheet="db/alvis2alvis.xsl" />
66 <schema name="index" identifier="http://indexdata.dk/zebra/xslt/1"
67 stylesheet="db/alvis2index.xsl" />
68 <schema name="dc" stylesheet="db/alvis2dc.xsl" />
69 <schema name="dc-short" stylesheet="db/alvis2dc_short.xsl" />
70 <schema name="snippet" snippet="25" stylesheet="db/alvis2snippet.xsl" />
71 <schema name="help" stylesheet="db/alvis2help.xsl" />
75 the pathes are relative to the directory where zebra.init is placed
78 The split level decides where the SAX parser shall split the
79 collections of records into individual records, which then are
80 loaded into DOM, and have the indexing XSLT stylesheet applied.
82 The indexing stylesheet is found by it's identifier.
84 All the other stylesheets are for presentation after search.
86 - in data/ a short sample of harvested carnivorous plants
87 ZEBRA_INDEX_DIRS=data/carnivor_20050118_2200_short-346.xml
89 - in root also one single data record - nice for testing the xslt
92 xsltproc db/alvis2index.xsl carni*.xml
96 - in db/ a cql2pqf.txt yaz-client config file
97 which is also used in the yaz-server <ulink url="http://www.loc.gov/standards/sru/cql/">CQL</ulink>-to-PQF process
99 see: http://www.indexdata.com/yaz/doc/tools.tkl#tools.cql.map
101 - in db/ an indexing XSLT stylesheet. This is a PULL-type XSLT thing,
102 as it constructs the new XML structure by pulling data out of the
103 respective elements/attributes of the old structure.
105 Notice the special zebra namespace, and the special elements in this
106 namespace which indicate to the zebra indexer what to do.
108 <z:record id="67ht7" rank="675" type="update">
109 indicates that a new record with given id and static rank has to be updated.
111 <z:index name="title" type="w">
112 encloses all the text/XML which shall be indexed in the index named
113 "title" and of index type "w" (see file default.idx in your zebra
125 <!-- Keep this comment at the end of the file
130 sgml-minimize-attributes:nil
131 sgml-always-quote-attributes:t
134 sgml-parent-document: "zebra.xml"
135 sgml-local-catalogs: nil
136 sgml-namecase-general:t