XML验证错误:cvc elt.1.a:找不到元素';feed';

XML验证错误:cvc elt.1.a:找不到元素';feed';,xml,xsd,xml-parsing,Xml,Xsd,Xml Parsing,我创建了一个由解析器解析的XML文件。这是一个类似于的RSS atom文件。这是一个第三方java解析器,我不知道其他细节 XML文件是 <?xml version = '1.0' encoding = 'UTF-8' standalone = 'yes'?> <?xml-stylesheet href='http://alerts.weather.gov/cap/capatom.xsl' type='text/xsl'?> <feed xmlns="http://

我创建了一个由解析器解析的XML文件。这是一个类似于的RSS atom文件。这是一个第三方java解析器,我不知道其他细节

XML文件是

<?xml version = '1.0' encoding = 'UTF-8' standalone = 'yes'?>
<?xml-stylesheet href='http://alerts.weather.gov/cap/capatom.xsl' type='text/xsl'?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:cap="urn:oasis:names:tc:emergency:cap:1.2">
  <title type="text">Feeds Test</title>
  <subtitle type="text">Contains feeds generated by Me</subtitle>
  <id>uuid:1f48fcf1-cf2d-40bf-896f-e0f318e0fa52;id=1</id>
  <updated>2015-03-23T10:26:04Z</updated>
  <generator>MNS</generator>
  <link rel="self" type="text/html" title="TestRave Feeds" href="http://111.111.111.111//TestRave_atom_en_US.xml" />
  <entry>
    <id>6e21968e-ec73-46c8-bcf3-7bfb295ff59b</id>
    <title type="text">LAUNCHED : 3/23/2015 10:26:03 AM: Title for CAP notification message in English</title>
    <published>2015-03-23T10:26:03+05:30</published>
    <updated>2015-03-23T10:26:03+05:30</updated>
    <author>
      <email>myname@domain.com</email>
    </author>
    <link rel="alternate" href="http://111.111.111.111//feed_6e21968e-ec73-46c8-bcf3-7bfb295ff59b_en_US.cap" />
    <content type="text">LAUNCHED : 3/23/2015 10:26:03 AM: Short Text for CAP message</content>
    <cap:records>3ae449ba-ec23-4c8d-9ea6-51d0078fd046</cap:records>
  </entry>
</feed>

饲料试验
包含由我生成的提要
uuid:1f48fcf1-cf2d-40bf-896f-e0f318e0fa52;id=1
2015-03-23T10:26:04Z
MNS
6e21968e-ec73-46c8-bcf3-7bfb295ff59b
发布日期:2015年3月23日上午10:26:03:CAP通知信息的英文标题
2015-03-23T10:26:03+05:30
2015-03-23T10:26:03+05:30
myname@domain.com
发布日期:2015年3月23日上午10:26:03:CAP短消息
3ae449ba-ec23-4c8d-9ea6-51d0078fd046
在解析时,解析器在处理XML时抛出以下错误

XML验证错误:cvc elt.1.a:找不到的声明 元素“feed”


对这个问题有什么想法吗?

在您的例子中,该错误消息告诉您解析器在
http://www.w3.org/2005/Atom
名称空间。将XSD与文档实例关联的一种方法是通过
xsi:schemaLocation

<feed xmlns="http://www.w3.org/2005/Atom"
      xmlns:cap="urn:oasis:names:tc:emergency:cap:1.2"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.w3.org/2005/Atom
                          http://exyus.com/xcs/tasklist/source/?f=put_atom.xsd">

请注意,
xsi:schemaLocation
采用名称空间位置对。我冒昧地为您找到了一个有效的Atom XSD。您可能需要另一个或同一个的不同位置


您将发现,您的下一个错误是由于您没有将
urn:oasis:names:tc:emergency:cap:1.2
与XSD关联。您可以类似地解决该问题。

关闭它,因为它是文本的格式。在某些地方,格式是BOM而不是UTF

真想不到能给我们提供一些线索,让我们知道您将此XML输入到哪个解析器和/或您为其提供了哪些选项/参数?嗨,达米恩:我不知道第三方java解析器。该错误消息来自Xerces,但对于任何一致的验证XML解析器,都会出现类似的消息。显然,您必须以某种方式将XSD与XML关联起来。我将在我的示例中使用
xsi:schemaLocation
演示如何执行此操作。这是假设您确实需要验证;另一个选项是将解析器配置为非验证。关闭它,因为它是文本的格式。在某些地方,格式是BOM而不是UTF,您好,谢谢您的回复。这种XML只不过是使用C代码的复制品。在本页的源代码中,我没有找到任何指向任何XSD的链接。我向您保证,您的错误是由于XML文档实例与声明根元素的XSD缺乏关联。建立这种联系有许多机制。如果您不愿意(或不能)修改XML以建立关联,那么可以使用XML目录或其他更适合您的XML处理器的替代方案。