Поддержка назначения условных типов xsd в jaxb2 - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь получить Java классов, сгенерированных из XSD. Я сейчас использую jaxb2, он работал нормально, пока я использовал его с XSD 1.0. Теперь я получил 1.1 XSD с этим:

  <xsd:complexType name="Extensions">
    <xsd:sequence>
      <xsd:element name="extension" type="xsd:anyType" minOccurs="0" maxOccurs="unbounded">
        <xsd:alternative test="(@manufacturer = 'Me') and (@name = 'MyProduct')" type="MyExtension"/>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>

Конечно, «MyExtension» определяется как сложный тип где-то внизу файла. Я не уверен, что этот XSD действителен, но, похоже, это из того, что я понимаю в 1.1. Тем не менее, при компиляции я получаю эту ошибку:

org.xml.sax.SAXParseException: s4s-elt-must-match.1: The content of 'extension' must match (annotation?, (simpleType | complexType)?, (unique | key | keyref)*)). A problem was found starting at: alternative

Ясно, что здесь что-то не так. Может ли быть так, что jaxb2 не поддерживает эту функцию? или это ошибка XSD? ошибка конфигурации maven?

Спасибо за вашу помощь, прекрасный человек, вы.

...