Это мой требуемый wsdl: который я хочу, когда я сгенерирую wsdl
<xs:complexType name="library.body">
<xs:sequence>
<xs:element name="library.bank" type="xs:string" />
<xs:element name="library.books.info">
<xs:complexType>
<xs:choice>
<xs:element name="book.type0" type="book.type0" />
<xs:element name="book.type1" type="book.type1"/>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
Теперь, дело в том, что приведенный выше код содержит "xs: complex-type" внутри "xs: complextype: which injava означает класс в классе, то есть:
Ниже приводится Java-код
Код JAVA начинается: >>>
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "library.body")
public class LibBody
{
@XmlElement(nillable = false, required = true, name = "library.bank")
public String librarybank;
//Following code generates the choice
@XmlElements({
@XmlElement(name = "book.type0", type = type0.class),
@XmlElement(name = "book.type1", type = type1.class),
})
public LibBody.libraryobj libraryobj;
//Following code is supposed to add that <xs:complextype>, but
unfortunately.... result is not as expected.
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "")
@XmlRootElement(name = "library.books.info")
public static class libraryobj {
@XmlElement(nillable = false, required = true, name = "book.type0")
type0 hey= new type0();
@XmlElement(nillable = false, required = true, name = "book.type1")
type1 heyy= new type1();
}
}
КОНЕЦ КОДА JAVA
Теперь генерируем wsdl:
<xs:complexType name="library.body">
<xs:sequence>
<xs:element name="library.bank" type="xs:string" />
<xs:choice>
<xs:element name="book.type0" type="book.type0" />
<xs:element name="book.type1" type="book.type1"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
Мой генерируемый wsdl завершается ....
Теперь, как вы можете видеть: мой wsdl не содержит внутреннего "complextype"и этот" элемент "library.books.info.
Может ли кто-нибудь направить меня в правильном направлении?