在Mirage主题page-structure.xsl
中,我看到包含match="dri:body"
的模板会在其</apply-templates>
案例中调用<xsl:otherwise>
。
这最终如何导致item-view.xsl
中的模板被调用/生成? item-view.xsl
中的大多数模板都匹配dim:
命名空间中的元素(即match="dim:..."
),这些元素来自mets.xml
,而不是DRI xml。
我没有看到与dri
命名空间(即match="dri:..."
)匹配的任何.xsl文件中的任何模板,这些模板显式调用item-view.xsl
中的模板,例如模板匹配{ {1}}或dim:dim
。
答案 0 :(得分:3)
查看项目页面的DRI: http://demo.dspace.org/xmlui/DRI/handle/10673/5
您会发现对mets.xml
的引用是在referenceSet
元素中进行的:
<referenceSet id="aspect.artifactbrowser.ItemViewer.referenceSet.collection-viewer" n="collection-viewer" type="summaryView">
<reference repositoryID="10673" type="DSpace Item" url="/metadata/handle/10673/5/mets.xml">
<referenceSet rend="hierarchy" type="detailList">
<head>This item appears in the following Collection(s)</head>
<reference repositoryID="10673" type="DSpace Collection" url="/metadata/handle/10673/2/mets.xml"/>
</referenceSet>
</reference>
</referenceSet>
这些referenceSets与.../aspect/artifactbrowser/common.xsl文件中的模板匹配。
如果是“summaryView”,则会发生以下情况:
<xsl:apply-templates select="document($externalMetadataURL)" mode="summaryView"/>
将匹配(仍然在common.xsl中)
<xsl:template match="mets:METS[mets:dmdSec/mets:mdWrap[@OTHERMDTYPE='DIM']]" mode="summaryView">
反过来会调用
<xsl:call-template name="itemSummaryView-DIM"/>
是item-view.xsl
中的顶级模板模板之一。
答案 1 :(得分:1)
Mirage.xsl包含
<xsl:import href="../dri2xhtml-alt/dri2xhtml.xsl"/>
该模块包含以下代码
<xsl:import href="aspect/artifactbrowser/artifactbrowser.xsl"/>
在该模块中,进行“cocoon:”调用,打开/metadata/handle/xxx/yyy/mets.xml。您可以在浏览器中打开此URL以查看正在处理的标记。
此处构建外部呼叫。
<xsl:variable name="externalMetadataURL">
<xsl:text>cocoon://metadata/handle/</xsl:text>
<xsl:value-of select="$handle"/>
<xsl:text>/mets.xml</xsl:text>
<!-- Since this is a summary only grab the descriptive metadata, and the thumbnails -->
<xsl:text>?sections=dmdSec,fileSec&fileGrpTypes=THUMBNAIL</xsl:text>
<!-- An example of requesting a specific metadata standard (MODS and QDC crosswalks only work for items)->
<xsl:if test="@type='DSpace Item'">
<xsl:text>&dmdTypes=DC</xsl:text>
</xsl:if>-->
</xsl:variable>