XSLT将一个模式嵌套在另一个模式中

时间:2017-10-25 19:38:22

标签: xslt metadata

我使用XSLT人行横道将我们标准的内部元数据XML转换为PBCore。 我在xslt顶部的序幕看起来像这样:

mYourListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        YourListData data = (YourListData) parent.getItemAtPosition(position);
        String cat = data.getCatagory();
        String date = data.getDate();
        //...

        //Send data to your fragment
    }
});

现在我有一个客户要求将我们的PBCore元数据添加到他们提供给我们的他们自己的MODS元数据中。我知道要在他们的MODS中正确地接下来我们的PBCore,我的所有标签都必须有一个pbcore:前缀。所以我的问题是:我如何调整运行标准XML的PBCore XSLT以在输出文件中包含前缀?如果我能做到那么我就可以复制PBCore元数据并将其粘贴到他们的MODs元数据中,然后添加

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">  
<xsl:output method="xml" indent="yes"/>
<xsl:template match="MediaAsset">
    <pbcoreCollection 
        xmlns="http://www.pbcore.org/PBCore/PBCoreNamespace.html"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.pbcore.org/PBCore/PBCoreNamespace.html 
http://pbcore.org/xsd/pbcore-2.0.xsd">

到最终输出XML的序言。

1 个答案:

答案 0 :(得分:1)

为什么不在管道中添加另一个修改现有样式表输出以满足新要求的步骤,而不是修改现有的XSLT代码?

我并不完全清楚新要求是什么。您谈到需要更改名称空间前缀,但一般来说,名称空间前缀纯粹是装饰性的:它的名称空间URI很重要。