【问题标题】:"not a schema document" when validating XML schema with notepad++ XML tools使用 notepad++ XML 工具验证 XML 架构时出现“不是架构文档”
【发布时间】:2019-12-12 14:27:27
【问题描述】:

我正在尝试为以下 XML 文档创建 XML 模式。 https://www.nationalbanken.dk/_vti_bin/DN/DataService.svc/CurrencyRatesHistoryXML?lang=en

  1. 作为起点,我尝试根据 w3 学校的指南创建一个非常基本的 XML 模式。

https://www.w3schools.com/xml/schema_schema.asp

这导致了这个 - 非常基本的起点。

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.gesmes.org/xml/2002-08-01" targetNamespace="http://www.ecb.int/vocabulary/2002-08-01/eurofxref" xmlns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref" elementFormDefault="qualified">
        <xs:element name="Envelope">

        </xs:element>
</xs:schema>
  1. 然后我将 gesmes:schemaLocation 属性添加到原始 XML 文档的根节点。
<gesmes:Envelope 
    xmlns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref"
    xmlns:gesmes="http://www.gesmes.org/xml/2002-08-01"
    gesmes:schemaLocation="http://www.ecb.int/vocabulary/2002-08-01/eurofxref ..\StockDownloadResources\CurrenciesDownloadMANUAL.XSD">
  1. 然后我已将 XML 工具插件安装到我的 Notepad++ 中,并尝试根据基本模式验证 XML 文档。

验证导致以下错误: 架构文件解析期间发生以下错误:XML 文档“\CurrenciesDownloadMANUAL.XSD”不是架构文档。

我错过了什么?

【问题讨论】:

    标签: xml xsd


    【解决方案1】:

    您的架构文档无效,因为根元素需要具有本地名称 schema 和命名空间 URI http://www.w3.org/2001/XMLSchema。您的文档有一个本地名称 schema 和命名空间 URI http://www.gesmes.org/xml/2002-08-01 的根。

    (在更深的层面上,问题在于您正在尝试从示例中学习,而不是阅读解释概念的内容。W3Schools 就像那些“作弊卡”之一,它提供了一个简单的总结每个命令的效果,但不花时间解释这些示例为什么有效。)

    【讨论】:

    • 感谢您迅速回复迈克尔。如果您能指出比 W3schools 更好的学习资源的方向,我将不胜感激。
    • 有两本关于 XML Schema 的好书 - Priscilla Walmsley 的和 Eric van der Vlist 的。我发现它们相互补充,因此两者兼而有之很有用,但总的来说,Priscilla 更具可读性,而 Eric 更全面。
    猜你喜欢
    • 1970-01-01
    • 2011-11-21
    • 2014-01-22
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多