私は、次のJavaクラスがあります。私は、SOAPリクエストを作成し、にトップレベルをモーフィングできるようにしたいクラスをデプロイした後XMLスキーマが検証されないのはなぜですか?
public class input{
@XmlElement(namespace="http://www.example.com/TopLevel")
public TopLevel TopLevel;
}
と
public class TopLevel{
private String attribute;
public void setAttribute(String attribute) {
this.attribute = attribute;
}
public String getAttribute() {
return attribute;
}
}
と
import javax.xml.bind.annotation.XmlType;
@XmlType(namespace="http://org.classes.SubClass", name="SubClass")
public class SubClass extends TopLevel {
private String attribute2;
public String getAttribute2() {
return attribute2;
}
public void setAttribute2(String attribute2) {
this.attribute2 = attribute2;
}
}
をXMLのSubClass私の要求は、次のようななります
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
... xmlns:top1="http://www.example.com/TopLevel"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
<top:TopSubClass_TestRequest>
<par:input>
<input>
<top1:toplevel xsi:type="ns5:subclass" xmlns:ns5="http://org.classes.SubClass">
<attribute2>test</attribute2>
</top1:toplevel>
</input>
</par:input>
</top:TopSubClass_TestRequest>
</soapenv:Body>
</soapenv:Envelope>
私は期待していどのようなサブクラスがトップレベルにマッピングされるということであり、私は、これは検証しません何らかの理由でまだattribute2
を使用することができるだろう。要求内で定義されていないように見える名前空間を気にしないでください。要求をより簡単に読むことができるように、それらをスキップしました。検証トラブルはラインで発生します。
<top1:toplevel xsi:type="ns5:subclass" xmlns:ns5="http://org.classes.SubClass">
は言う:
Invalid xsi:type qname: 'subclass' in element Input
誰もが私が間違っているの何で私を指すことができますか?すべての例によると、これを処理する方法であるとわかった。