|
|
Line 239: |
Line 239: |
| *BrokerXSLT_oai_dc_anylanguage_to_ftRowset_anylanguage | | *BrokerXSLT_oai_dc_anylanguage_to_ftRowset_anylanguage |
| The following XSLT transforms data elements with oai-dc schema to fulltext rowsets: | | The following XSLT transforms data elements with oai-dc schema to fulltext rowsets: |
− | <source lang=xml>
| |
− | <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
| |
− | <xsl:output indent="yes" method="xml" omit-xml-declaration="yes" />
| |
− | <xsl:template match="/">
| |
− | <ROWSET>
| |
− | <ROW>
| |
− | <xsl:for-each select="//*[local-name()='title']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='creator']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='subject']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='description']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='publisher']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='contributor']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='date']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='type']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='format']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='identifier']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='source']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='language']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='relation']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='coverage']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='rights']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='alternative']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='tableOfContents']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='abstract']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='created']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='valid']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='available']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='issued']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='modified']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='dateAccepted']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='dateCopyrighted']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='dateSubmitted']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='extend']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='medium']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='isVersionOf']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='hasVersion']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='isReplacedBy']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='replaces']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='isRequiredBy']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='requires']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='isPartOf']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='hasPart']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='isReferencedBy']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='references']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='isFormatOf']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='hasFormat']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='conformsTo']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='spatial']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='temporal']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='audience']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='accrualMethod']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='accrualPeriodicity']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='accrualPolicy']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='instructionalMethod']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='provenance']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='rightsHolder']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='mediator']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='educationLevel']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='accessRights']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='license']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | <xsl:for-each select="//*[local-name()='bibliographicCitation']">
| |
− | <xsl:if test="normalize-space(.)">
| |
− | <FIELD name="{local-name()}">
| |
− | <xsl:value-of select="normalize-space(.)" />
| |
− | </FIELD>
| |
− | </xsl:if>
| |
− | </xsl:for-each>
| |
− | </ROW>
| |
− | </ROWSET>
| |
− | </xsl:template>
| |
− | </xsl:stylesheet>
| |
− | </source>
| |
| | | |
− | *BrokerXSLT_wrapperFT
| + | [[File:BrokerXSLT_oai_dc_anylanguage_to_ftRowset_anylanguage.xml]] |
− | The following XSLT is applied last upon fulltext rowsets in order to remove duplicate and empty rowsets:
| + | |
− | <source lang=xml>
| + | |
− | <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
| + | |
− | <xsl:output indent="yes" method="xml" omit-xml-declaration="yes" />
| + | |
− | <xsl:template match="/">
| + | |
− | <ROWSET>
| + | |
− | <ROW>
| + | |
− | <xsl:for-each select="//ROWSET/ROW/FIELD">
| + | |
− | <xsl:copy-of select="self::node()[text() and not(@name = preceding::FIELD/@name and text() = preceding::FIELD/text())]" />
| + | |
− | </xsl:for-each>
| + | |
− | </ROW>
| + | |
− | </ROWSET>
| + | |
− | </xsl:template>
| + | |
− | </xsl:stylesheet>
| + | |
− | </source>
| + | |
− | | + | |
− | *BrokerXSLT_dc_anylanguage_to_fwRowset_anylanguage_title_creator_subject_coverage
| + | |
− | The following XSLT transforms data elements with dc schema to forward rowsets:
| + | |
− | <source lang=xml>
| + | |
− | <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
| + | |
− | <xsl:output indent="yes" method="xml" omit-xml-declaration="yes" />
| + | |
− | <xsl:variable name="keys">
| + | |
− | <key>
| + | |
− | <keyName>title</keyName>
| + | |
− | <keyXPath>//*[local-name()='title']</keyXPath>
| + | |
− | </key>
| + | |
− | <key>
| + | |
− | <keyName>creator</keyName>
| + | |
− | <keyXPath>//*[local-name()='creator']</keyXPath>
| + | |
− | </key>
| + | |
− | <key>
| + | |
− | <keyName>subject</keyName>
| + | |
− | <keyXPath>//*[local-name()='subject']</keyXPath>
| + | |
− | </key>
| + | |
− | <key>
| + | |
− | <keyName>coverage</keyName>
| + | |
− | <keyXPath>//*[local-name()='coverage']</keyXPath>
| + | |
− | </key>
| + | |
− | </xsl:variable>
| + | |
− | <xsl:template match="/">
| + | |
− | <xsl:element name="ROWSET">
| + | |
− | <xsl:element name="INSERT">
| + | |
− | <xsl:element name="TUPLE">
| + | |
− | <xsl:element name="VALUE">
| + | |
− | <xsl:for-each select="//*[local-name()='title']">
| + | |
− | <FIELD name="title">
| + | |
− | <xsl:value-of select="." />
| + | |
− | </FIELD>
| + | |
− | </xsl:for-each>
| + | |
− | <xsl:for-each select="//*[local-name()='creator']">
| + | |
− | <FIELD name="creator">
| + | |
− | <xsl:value-of select="." />
| + | |
− | </FIELD>
| + | |
− | </xsl:for-each>
| + | |
− | <xsl:for-each select="//*[local-name()='subject']">
| + | |
− | <FIELD name="subject">
| + | |
− | <xsl:value-of select="." />
| + | |
− | </FIELD>
| + | |
− | </xsl:for-each>
| + | |
− | <xsl:for-each select="//*[local-name()='coverage']">
| + | |
− | <FIELD name="coverage">
| + | |
− | <xsl:value-of select="." />
| + | |
− | </FIELD>
| + | |
− | </xsl:for-each>
| + | |
− | </xsl:element>
| + | |
− | </xsl:element>
| + | |
− | </xsl:element>
| + | |
− | </xsl:element>
| + | |
− | </xsl:template>
| + | |
− | </xsl:stylesheet>
| + | |
− | </source>
| + | |
− | | + | |
− | *BrokerXSLT_wrapperFWD
| + | |
− | The following XSLT is applied last upon forward rowsets in order to remove duplicate and empty rowsets:
| + | |
− | <source lang=xml>
| + | |
− | <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
| + | |
− | <xsl:output indent="yes" method="xml" omit-xml-declaration="yes" />
| + | |
− | <xsl:template match="/">
| + | |
− | <ROWSET>
| + | |
− | <INSERT>
| + | |
− | <TUPLE>
| + | |
− | <xsl:for-each select="//ROWSET/INSERT/TUPLE/KEY">
| + | |
− | <xsl:copy-of select="self::node()[not(KEYNAME = preceding::KEY/KEYNAME and KEYVALUE = preceding::KEY/KEYVALUE)]" />
| + | |
− | </xsl:for-each>
| + | |
− | <VALUE>
| + | |
− | <xsl:for-each select="//ROWSET/INSERT/TUPLE/VALUE/FIELD">
| + | |
− | <xsl:copy-of select="self::node()[text() and not(@name = preceding::FIELD/@name and text() = preceding::FIELD/text())]" />
| + | |
− | </xsl:for-each>
| + | |
− | </VALUE>
| + | |
− | </TUPLE>
| + | |
− | </INSERT>
| + | |
− | </ROWSET>
| + | |
− | </xsl:template>
| + | |
− | </xsl:stylesheet>
| + | |
− | </source>
| + | |
In the first two steps we create generic resources for the Rowset XSLTs and Index Types through the Resource Management portlet . You can find detailed descriptions for the Rowset data (the output of the Rowset XSLT transformation) in the following sections:
For the third step, a definition of an IRBootstrapper job is required. You can find the details for defining such a job in the IR Bootstrapper section. To complete the Index creation, the administrator must go to the IRBootstrapper and run the job. The two examples that follow will clarify the three steps.
The following transformation program is called for fulltext rowset creation. Transformation unit with id="6" takes multiple XSLTs and applies final XSLT at the end.
The following transformation program is called for forward rowset creation. Transformation unit with id="1" takes multiple XSLTs and applies final XSLT at the end.
In this section we present the required IndexTypes for both FullText and Forward Indices.
In order to extract the fields from the OAI-DC payload and build the FullText Index the following FullTextIndexType is required:
In OAI-DC many fields, such as "title" and "creator", have string values, so we just need to create a ForwardIndexType for string-string key-value pairs in order to
be able to create the Forward Index:
Note that, in contrast to the FullTextIndexType in ForwardIndexType there is no field-datatype mapping but just declaration of the datatypes supported in the index.
The IRBootstrapper portlet requires a Generic Resource to be available on the IS with name: IRBootstrapperConfiguration and secondary type: IRBootstrapperConfig.
For more information please refer to this section IRBoostrapperConfiguration Generic Resource
The following XSLT transforms data elements with oai-dc schema to fulltext rowsets: