Я пытаюсь использовать JAXB для анализа фида Atom, возвращающегося после вызова службы REST Sharepoint 2010, и привязки и компиляции JAXB при сборке в eclipse. Я загрузил пару разных версий атома 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
Я видел некоторые комментарии, в которых говорилось, что у Java5 Xerces были некоторые проблемы, но я повторяю свою версию Java из своего сценария ant и использую 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: местоположение« http://www.w3.org/2001/03/xml.xsd »не было разрешено», для строки ошибки он говорит: «XSD: ссылка на атрибут» http: //www.w3.org/XML/1998/namespace#base' не разрешено". Это также ошибка 293, которая похожа на приведенную выше, но указывает на lang вместо base.
Мне странно, что синтаксический анализатор пытается разрешить ссылку на документ пространства имен, поскольку он выглядит просто документом HTML, объясняющим пространства имен, а НЕ XSD или DTD. Но этот Atomschema2.xsd не я придумал, он был скачан.
Что я должен здесь делать? Есть ли лучшая схема атома? Должен ли я изменить загруженную схему, чтобы изменить ссылки? Что-то третье?