XML验证错误:cvc elt.1.a:找不到元素';feed';
我创建了一个由解析器解析的XML文件。这是一个类似于的RSS atom文件。这是一个第三方java解析器,我不知道其他细节 XML文件是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 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处理器的替代方案。