行。所以我仍在学习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中。我做错了什么?
答案 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"