Java 为什么我的XML模式没有验证?
我有以下Java类:Java 为什么我的XML模式没有验证?,java,xml,soap,polymorphism,Java,Xml,Soap,Polymorphism,我有以下Java类: public class input{ @XmlElement(namespace="http://www.example.com/TopLevel") public TopLevel TopLevel; } 及 及 在部署这些类之后,我希望发出一个SOAP请求,并能够在XML中将TopLevel变形为子类。我的要求如下: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelo
public class input{
@XmlElement(namespace="http://www.example.com/TopLevel")
public TopLevel TopLevel;
}
及
及
在部署这些类之后,我希望发出一个SOAP请求,并能够在XML中将TopLevel变形为子类。我的要求如下:
<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
,但由于某些原因,这将无法验证。不要在请求中定义似乎未定义的名称空间。我跳过了它们以使请求更容易阅读。验证故障发生在线路上:
说:
元素输入中的xsi:type qname:'subclass'无效
有人能指出我做错了什么吗?根据所有的例子,我发现这应该是解决问题的方法。我已经找到了解决问题的方法。 我正在使用IBMODM,即使我的所有类都定义了名称空间,ODM也不会将名称空间导入WSDL,除非在输入对象中定义了对象 因此,我需要补充:
@XmlType(namespace = "Some namespace")
public class Input() {
public TopLevel topLevel;
public SubClass subClass;
}
并用
@XmlType
注释顶层和子类。我找到了解决问题的方法。
我正在使用IBMODM,即使我的所有类都定义了名称空间,ODM也不会将名称空间导入WSDL,除非在输入对象中定义了对象
因此,我需要补充:
@XmlType(namespace = "Some namespace")
public class Input() {
public TopLevel topLevel;
public SubClass subClass;
}
并使用@XmlType
注释注释顶级和子类
@XmlType(namespace = "Some namespace")
public class Input() {
public TopLevel topLevel;
public SubClass subClass;
}