请解释为什么在实际存在关联模式时我会得到无模式错误?

时间:2018-02-22 19:23:58

标签: xslt schema metadata

行。所以我仍在学习XSLT的细节和关联模式。在我的公司中,我们以非常特定的方式使用XSLT,将XML元数据从一个模式转换为另一个模式。 (即,到PBCore的都柏林核心,METS的房屋标准元数据等)我有一个带有标准元数据标签的普通XML文件。我使用具有这些声明的XSLT对其进行转换:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
<xsl:template match="/">
    <reVTMD xmlns="http://nwtssite.nwts.nara/schema/"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="https://www.archives.gov/preservation/products/reVTMD.xsd"
        recordCreation="2016-03-24T18:13:51.0Z" profile="profile1" 
version="version1">

输出XML包括:

<?xml version="1.0" encoding="UTF-8"?>
<reVTMD xmlns="http://nwtssite.nwts.nara/schema/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="https://www.archives.gov/preservation/products/reVTMD.xsd"
    recordCreation="2016-03-24T18:13:51.0Z"
    profile="profile1"
    version="version1">

位于文档顶部。但我仍然得到“没有与该文档相关的架构或DTD。”在我尝试根据reVTMD架构验证文档时在Oxygen中。我做错了什么?

1 个答案:

答案 0 :(得分:0)

xsi:schemaLocation属性作为其值需要一个将名称空间与模式位置相关联的对的列表,因此输入位于名称空间http://nwtssite.nwts.nara/schema/中,模式位于https://www.archives.gov/preservation/products/reVTMD.xsd位置你需要

xsi:schemaLocation="http://nwtssite.nwts.nara/schema/ https://www.archives.gov/preservation/products/reVTMD.xsd"