Я использую 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)?
Большое спасибо за ваши предложения.