&引用;架构必须以a开头<;模式>;名称空间中的元素';http://www.w3.org/2001/XMLSchema'&引用;错误?

&引用;架构必须以a开头<;模式>;名称空间中的元素';http://www.w3.org/2001/XMLSchema'&引用;错误?,xml,xsd,Xml,Xsd,当试图在XMLSpy中显示XML模式时,我得到以下错误“架构必须以命名空间“”中的元素开头” 我用一个简单的xml示例进行了尝试,得到了相同的错误 <?xml version="1.0"?> <Book xmlns:lib="http://www.library.com"> <lib:Title>Sherlock Holmes</lib:Title> <lib:Author>Arthur Conan Doyle</lib:

当试图在XMLSpy中显示XML模式时,我得到以下错误“架构必须以命名空间“”中的元素开头”

我用一个简单的xml示例进行了尝试,得到了相同的错误

<?xml version="1.0"?>
<Book xmlns:lib="http://www.library.com">
  <lib:Title>Sherlock Holmes</lib:Title>
  <lib:Author>Arthur Conan Doyle</lib:Author>
</Book>

福尔摩斯
阿瑟·柯南·道尔

有什么想法吗?

您包含的示例是一个实例文档;它不是一个模式。模式将以以下内容开始:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
   xmlns:lib="http://www.library.com"
   targetNamespace="http://www.library.com"
   elementFormDefault="qualified">

您的示例文档不一定格式不正确,但不同寻常的是,它需要两个模式来验证:一个用于名称空间,另一个用于Book元素的无名称空间


我建议阅读。

您包含的示例是一个实例文档;它不是一个模式。模式将以以下内容开始:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
   xmlns:lib="http://www.library.com"
   targetNamespace="http://www.library.com"
   elementFormDefault="qualified">

您的示例文档不一定格式不正确,但不同寻常的是,它需要两个模式来验证:一个用于名称空间,另一个用于Book元素的无名称空间


我建议您阅读。

您的xml验证器正在尝试验证文档。 文档说它在某个位置符合模式。 验证器获取该模式。 但是omg:它获取的文档根本不是xml模式!它只是一些随机的xml

要解决此问题,请执行以下操作:

xml命名空间名称只是一个名称。在这种情况下,
http://www.library.com
。模式验证器应用程序需要知道如何获取该名称的xml+模式文档+。在没有任何其他东西的情况下,它可能只是执行一个http获取并获取一个html页面

您需要告诉验证器名称空间
http://www.library.com
由位于
http://www.library.com/static/theschema.xsd
(或其他)。将xml名称空间与架构文档关联依赖于应用程序。大多数使用XML的应用程序都有某种缓存,您必须对其进行配置和设置


如果您使用java,那么您需要实现一个EntityResolver(我认为),当解析器要求
http://www.library.com
,返回包含XML的输入流。您通常将其作为java资源文件来执行

您的xml验证程序正在尝试验证文档。 文档说它在某个位置符合模式。 验证器获取该模式。 但是omg:它获取的文档根本不是xml模式!它只是一些随机的xml

要解决此问题,请执行以下操作:

xml命名空间名称只是一个名称。在这种情况下,
http://www.library.com
。模式验证器应用程序需要知道如何获取该名称的xml+模式文档+。在没有任何其他东西的情况下,它可能只是执行一个http获取并获取一个html页面

您需要告诉验证器名称空间
http://www.library.com
由位于
http://www.library.com/static/theschema.xsd
(或其他)。将xml名称空间与架构文档关联依赖于应用程序。大多数使用XML的应用程序都有某种缓存,您必须对其进行配置和设置


如果您使用java,那么您需要实现一个EntityResolver(我认为),当解析器要求
http://www.library.com
,返回包含XML的输入流。您通常将其作为java资源文件来执行

这篇文章增加了混乱。帕比戈特的回答是正确的。这篇文章增加了困惑。帕比戈特的回答是正确的。