私は要求がシリアル化されたXMLとして送信代わりにJAXBクラス名注釈
は、ここで例
このことからhttps://localhost:9985/fr_FR/api.ReceiveXMLmessage?xmlString=<TDetails_XCC OpeType="SOME_OPERATION"><TeamID>SOME_ID</TeamID></TDetails_XCC>
あるオブジェクトされているREST Webサービスを消費しようとしているの複合型の名前を使用してマーシャリング、私は、次のXSDスキーマ
<complexType name="TDetails_XCC">
<annotation>
<appinfo>
<jaxb:class name="TeamDetailsRequestType"/>
</appinfo>
<documentation>Request team details</documentation>
</annotation>
<complexContent>
<extension base="local:SimpleRESTRequestType"/>
</complexContent>
</complexType>
<complexType name="SimpleRESTRequestType">
<sequence>
<element name="TeamID" minOccurs="0" type="long">
<annotation>
<appinfo>
<jaxb:property name="teamId"/>
</appinfo>
</annotation>
</element>
</sequence>
<attribute name="OpeType" type="string" default="some_operation">
<annotation>
<appinfo>
<jaxb:property name="operationType"/>
</appinfo>
</annotation>
</attribute>
</complexType>
これで生成されたJava Beanに
012を作成しましたこれはXMLにBeanをシリアル化するために使用されるコード
TeamDetailsRequestType request = new TeamDetailsRequestType();
request.setTeamId(546464L);
request.setOperationType("SomeOperation");
StringWriter writer = new StringWriter();
JAXBContext context = JAXBContext.newInstance("com.mycompany.myproject.message.team");
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, false);
marshaller.marshal(request, writer);
System.out.println(writer.toString());
これは、マーシャリングさBeanは
私は<TDetails_XCC OpeType="SomeOperation">
<TeamID>546464</TeamID>
</TDetails_XCC>
を得たかったものを
<teamDetailsRequestType OpeType="SomeOperation">
<TeamID>546464</TeamID>
</teamDetailsRequestType>
そして、このように見えるものです
QNameクラスを使用して動作させることができました
JAXBElement jx = new JAXBElement(new QName("TDetails_XCC"), request.getClass(), request);
marshaller.marshal(jx, System.out);
しかし、私が知りたいことは、これをXSDスキーマから単独で実行できるかどうかです。
は問題が@XmlAccessorType(XmlAccessType.FIELD)
@XmlType
@XmlRootElement(name = "TDetails_XCC")
public class TeamDetailsRequestType
extends SimpleRESTRequestType
implements Serializable
{
}
だから、どのように以下の豆で解決されているので、私は、問題が発生した豆から来ていることを推測している
更新
お時間をいただき、ありがとうございます私はXSDをJAXBに変更することができます名前の中のプロパティ@ XmlRootElement私は@XmlTypeのnstead?ここ
おかげで再び