В ответе WS нет содержимого элемента. В верхнем элементе есть только xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" - PullRequest
0 голосов
/ 25 января 2019

Я использую Java и Spring-ws для веб-сервисов. Я использую контракт первый подход. Поэтому я генерирую классы Java Jaxb.

В определении xsd ответа службы ws у меня есть это определение для элемента "Risk"

<xs:complexType name="Risk">
  <xs:complexContent>
     <xs:extension base="ns26311:Risk">
        <xs:sequence>
          <xs:group ref="ns26311:RiskData"/>
        </xs:sequence>
     </xs:extension>
  </xs:complexContent>
</xs:complexType>

"ns26311: Риск" определяется таким образом в разных XSD

<xs:complexType name="Risk" abstract="true">
    <xs:sequence/>
</xs:complexType>

"ns26311: RiskData" определяется (в этом другом XSD) таким образом

<xs:group name="RiskData">
    <xs:sequence>
      <xs:element name="reRisk" type="ns29421:riskByEval" minOccurs="1"    maxOccurs="1"/>
    </xs:sequence>
</xs:group>

"ns29421: riskByEval" определяется таким образом в разных XSD

<xs:simpleType name="riskByEval">
    <xs:restriction base="xs:string">
      <xs:maxLength value="10"/>
      <xs:minLength value="1"/>
    </xs:restriction>
</xs:simpleType>

А в XML-ответе веб-службы для элемента "reRisk" есть этот фрагмент кода

<ns3:risk xsi:type="ns6:Risk" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>

И в элементе «риск» отсутствует содержимое элемента.

Фрагмент содержимого элемента «риск» должен выглядеть следующим образом:

<ns2:risk>
  <ns13:reRisk>some value</ns13:reRisk>
</ns2:risk>

В объектах Java Jaxb (которые представляют ответ) есть значение в поле reRisk.

Кто-нибудь знает, почему элемент reRisk не заполняется в ответе (и это странно xsi: type = "ns6: Risk" xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" фрагмент кода в ответе XML)?

Большое спасибо за ваши предложения.

1 Ответ

0 голосов
/ 31 января 2019

Проблема была в другом месте.

Когда я установил свойство Risk всего объекта ответа Java с помощью myBatis, я установил для этого свойства объект другого типа (из другого пакета).

Вот почему я получаю странный ответ в XML: -)

...