Я успешно просматриваю контрактную веб-службу JAX-WS по контракту в контейнере сервлетов Tomcat с Jax-WS Spring support. Тем не менее, у меня есть troulbes с типами xs:idref
. Исходный файл XSD содержит сложный типКак изменить привязку Jax-WS WSDL @IDREF
<xs:complexType name="DocumentScopeOptionalTypeReferenceIdentifier">
<xs:simpleContent>
<xs:extension base="DocumentScopeReferenceIdentifierContent">
...
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="DocumentScopeReferenceIdentifierContent">
<xs:restriction base="xs:IDREF">
<xs:minLength value="1"/>
<xs:maxLength value="64"/>
</xs:restriction>
</xs:simpleType>
который XJC правильно компилирует в
public class DocumentScopeOptionalTypeReferenceIdentifier {
@XmlValue
@XmlIDREF
protected Object value;
...
}
Когда я развернуть WebService, однако, @XmlIDREF
аннотацию игнорируется, и я в конечном итоге с xs:anyType
в пространстве имен декларирование полученного WSDL
<xs:complexType name="DocumentScopeOptionalRoleReferenceIdentifier">
<xs:simpleContent>
<xs:extension base="xs:anyType">
...
</xs:extension>
</xs:simpleContent>
</xs:complexType>
Клиенты WebService в докладе вопрос, что они не могут генерировать Cli (используя C#) с этим anyType
. Как я могу изменить это на xs:idref
? Благодарю.