Atom.xsd的JAXB解析产生验证错误

Atom.xsd的JAXB解析产生验证错误,xsd,jaxb,atom-feed,Xsd,Jaxb,Atom Feed,我正在寻求使用JAXB解析从调用Sharepoint 2010的REST服务返回的Atom反馈,并在eclipse中进行JAXB绑定和编译。我在网上下载了两个不同版本的atom xsd(它们只在某些头属性上有所不同),包括这个(http://www.kbcafe.com/rss/atom.xsd.xml)但无论我使用哪种方法,我始终会出现以下错误: [xjc] [WARNING] schema_reference.4: Failed to read schema document 'h

我正在寻求使用JAXB解析从调用Sharepoint 2010的REST服务返回的Atom反馈,并在eclipse中进行JAXB绑定和编译。我在网上下载了两个不同版本的atom xsd(它们只在某些头属性上有所不同),包括这个(http://www.kbcafe.com/rss/atom.xsd.xml)但无论我使用哪种方法,我始终会出现以下错误:

     [xjc] [WARNING] schema_reference.4: Failed to read schema document 'http://www.w3.org/2001/03/xml.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>.
     [xjc]   line 14 of file:/C:/rest_workspace/eDocs/src/gov/afms/edocs/rest/jaxb/schemas/AtomSchema2.xsd
     [xjc] [ERROR] src-resolve: Cannot resolve the name 'xml:base' to a(n) 'attribute declaration' component.
     [xjc]   line 292 of file:/C:/rest_workspace/eDocs/src/gov/afms/edocs/rest/jaxb/schemas/AtomSchema2.xsd
     [xjc] [ERROR] s4s-elt-must-match.1: The content of 'commonAttributes' must match (annotation?, ((attribute | attributeGroup)*, anyAttribute?)). A problem was found starting at: attribute.
     [xjc]   line 292 of file:/C:/rest_workspace/eDocs/src/gov/afms/edocs/rest/jaxb/schemas/AtomSchema2.xsd
[xjc][WARNING]架构\u引用。4:无法读取架构文档'http://www.w3.org/2001/03/xml.xsd,因为1)找不到该文档;2) 文件无法读取;3) 文档的根元素不是。
[xjc]文件第14行:/C:/rest_workspace/eDocs/src/gov/afms/eDocs/rest/jaxb/schemas/AtomSchema2.xsd
[xjc][ERROR]src resolve:无法将名称“xml:base”解析为(n)“属性声明”组件。
[xjc]文件第292行:/C:/rest_workspace/eDocs/src/gov/afms/eDocs/rest/jaxb/schemas/AtomSchema2.xsd
[xjc][错误]s4s elt必须匹配。1:“commonAttributes”的内容必须匹配(注释?,((属性|属性组)*,anyAttribute?)。发现从:属性开始的问题。
[xjc]文件第292行:/C:/rest_workspace/eDocs/src/gov/afms/eDocs/rest/jaxb/schemas/AtomSchema2.xsd
我看到一些评论说TAHTJava5Xerces有一些问题,但我从我的ant脚本中呼应出我的java版本,并使用1.6。第14行的节点是:

<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/03/xml.xsd" />

第292行的节点是:

        <xs:attribute ref="xml:base" />

请注意,eclipse也将这些标记为错误。对于警告,eclipse说“XSD:the location”http://www.w3.org/2001/03/xml.xsd“尚未解决”,错误行显示“XSD:Attribute reference”http://www.w3.org/XML/1998/namespace#base“尚未解决”。它在293上也出现了错误,与上面类似,但指向lang而不是base

对我来说,解析器正在尝试解析对名称空间文档的引用,因为这似乎只是一个解释名称空间的HTML文档,而不是XSD或DTD。但是这个Atomschema2.xsd不是我编的,它是下载的


我应该在这里干什么?有更好的atom模式吗?我是否应该修改下载的模式以更改引用?第三件事?

该错误通常是由xml.xsd文件顶部的DTD DOCTYPE引起的;我从未试图用JAXB解决这个问题,但我可以保证,如果您下载、修复引用并从xml.xsd文件中删除,JAXB将与您所指的模式一起开箱即用(我只是在NetBeans 7.1中尝试过,没有任何问题)。我想现在一个好问题是如何让JAXB的xjc忽略DTD


更新:-命令行中的目录可能会这样做,请阅读。

您可能会发现以下帖子很有用: