mathml xsd схема для классов Java с использованием xjc MiOrMoOrMnошибка - PullRequest
0 голосов
/ 22 октября 2019

Jaxb / xjc не будет создавать классы java из файла схемы xsd (Eclipse и командная строка)

При использовании jre1.8.0_191 и JAXB командная строка Eclipse и xjc (и переключатели) выдают ошибки при попыткеконвертировать imsqti_v2p1.xsd (тесты для изучения объектов) в POJO (простые старые объекты Java). В большинстве ошибок говорилось: «Свойство X уже определено. Используйте для разрешения этого конфликта», и я смог аннотировать imsqti_v2p1.xsd до тех пор, пока (как в Eclipse, так и в командной строке xjc) не останется только одна ошибка:

синтаксический анализ схемы. .. [ОШИБКА] Свойство "MiOrMoOrMn" уже определено. Используйте для разрешения этого конфликта. строка 132 из http://www.w3.org/Math/XMLSchema/mathml2/presentation/scripts.xsd

Теперь у imsqti_v2p1.xsd есть много xmlns ', ответственный за ошибку:

<xs:import namespace="http://www.w3.org/1998/Math/MathML" 
schemaLocation="http://www.w3.org/Math/XMLSchema/mathml2/mathml2.xsd"/>

Этот xsd КРАТКИЙ и имеет много локальных ссылок, один изчто вызывает ошибку

Я нашел этот файл scripts.xsd - компилятор пожаловался на строку 132 и свойство "MiOrMoOrMn", но scripts.xsd заканчивается на строке 130! Кроме того, когда я загружаю scripts.xsd в редактор Eclipse, у него появляется десяток ошибок - если они вызваны отсутствием «соседнего» xsd, на который ссылается mathml2.xsd, мне, вероятно, придется искать и загружать и запускать локально 27 локальных xsd! Поэтому я надеялся, что смогу исправить scripts.xsd и сослаться на него локально в xmlns в заголовке mathml2.xsd, но теперь я не уверен, как решить эту проблему. Кроме того, если вы знаете о лучшем способе создания этих POJO, я бы услышал об этом - кто-то должен знать об этой проблеме mathml xsd?!?

====================  imsqti_v2p1.xsd  =============================
<xs:schema xmlns:jxb="http://java.sun.com/xml/ns/jaxb" jxb:version="2.1" 
xmlns="http://www.imsglobal.org/xsd/imsqti_v2p1" 
xmlns:xi="http://www.w3.org/2001/XInclude" 
xmlns:m="http://www.w3.org/1998/Math/MathML" 
xmlns:apip="http://www.imsglobal.org/xsd/apip/apipv1p0/imsapip_qtiv1p0" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:sch="http://purl.oclc.org/dsdl/schematron" 
targetNamespace="http://www.imsglobal.org/xsd/imsqti_v2p1" version="IMS 
QTI 2.1" elementFormDefault="qualified" 
attributeFormDefault="unqualified">
<xs:import namespace="http://www.w3.org/XML/1998/namespace" 
schemaLocation="http://www.imsglobal.org/xsd/w3/2001/xml.xsd"/>
<xs:import namespace="http://www.w3.org/2001/XInclude" 
schemaLocation="http://www.imsglobal.org/xsd/w3/2001/XInclude.xsd"/>
<xs:import namespace="http://www.w3.org/1998/Math/MathML" 
schemaLocation="http://www.w3.org/Math/XMLSchema/mathml2/mathml2.xsd"/>
<xs:import 
namespace="http://www.imsglobal.org/xsd/apip/apipv1p0/imsapip_qtiv1p0" 
schemaLocation="http://www.imsglobal.org/profile/apip/apipv1p0/
apipv1p0_qtiextv2p1_v1p0.xsd"/>

==================== mathml2.xsd ==================
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema 
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns="http://www.w3.org/1998/Math/MathML"
  targetNamespace="http://www.w3.org/1998/Math/MathML"
  elementFormDefault="qualified">
<xs:include schemaLocation="common/math.xsd"/>
<xs:include schemaLocation="common/common-attribs.xsd"/>
<!-- Presentation -->
<xs:include schemaLocation="presentation/common-types.xsd"/>
<xs:include schemaLocation="presentation/common-attribs.xsd"/>
<xs:include schemaLocation="presentation/characters.xsd"/>
<xs:include schemaLocation="presentation/tokens.xsd"/>
<xs:include schemaLocation="presentation/scripts.xsd"/>

=============  scripts.xsd  ========================
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns="http://www.w3.org/1998/Math/MathML" 
targetNamespace="http://www.w3.org/1998/Math/MathML" 
elementFormDefault="qualified"> 

================  compiler error message ==================
parsing a schema...
[ERROR] Property "MiOrMoOrMn" is already defined. Use &lt;jaxb:property> 
to resolve this conflict.  line 132 of 
http://www.w3.org/Math/XMLSchema/mathml2/presentation/scripts.xsd

[ERROR] The following location is relevant to the above error
line 138 of 
http://www.w3.org/Math/XMLSchema/mathml2/presentation/scripts.xsd

Failed to parse a schema.
...