Xslt 请解释一下,当存在关联的模式时,为什么会出现无模式错误?

Xslt 请解释一下,当存在关联的模式时,为什么会出现无模式错误?,xslt,schema,metadata,Xslt,Schema,Metadata,嗯。所以我仍然在学习XSLT和关联模式的细节。在我的公司,我们以一种非常特殊的方式使用XSLT,将XML元数据从一种模式转换为另一种模式。(即都柏林核心到PBCore,我们的房屋标准元数据到大都会,等等)我有一个带有标准元数据标记的普通XML文件。我使用具有以下声明的XSLT对其进行转换: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:output met

嗯。所以我仍然在学习XSLT和关联模式的细节。在我的公司,我们以一种非常特殊的方式使用XSLT,将XML元数据从一种模式转换为另一种模式。(即都柏林核心到PBCore,我们的房屋标准元数据到大都会,等等)我有一个带有标准元数据标记的普通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">


在文档的顶部。但当我尝试根据reVTMD模式验证文档时,仍然会在Oxygen中得到一个“没有与文档关联的模式或DTD”。我做错了什么?

属性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"

复印件,谢谢。我试过这个,但是当我使用这个的时候,我会出现各种各样的错误。我开始认为问题在于这个特定的模式本身。似乎没有人在开发它,也没有人经常使用它。名称空间也不再有效。您尝试的方式肯定是错误的。至于各种各样的错误,如果你学到了这些东西并且需要帮助,那么从小事做起,举一些简单的例子,然后逐渐发展到更复杂的例子。一般来说,如果在XSLT样式表中使用特定XML格式的模式,XML编辑器或IDE可能确实会引发错误,即与XML本身的有效性无关,而是由样式表中使用的XSLT元素和结果元素的混合引起的。因此,如果您想学习模式,我建议您从纯XML和XSD开始,不要将它们都放入XSLT中。不幸的是,我在一份很久以前创建了这些XSLT的工作中担任了一个角色,公司中没有人知道它们是如何工作的,也没有人知道如何构建它们。我想从小处做起,从那里开始建设,但这不是我现在的选择。