我有一个使用JAXB/XJC编译模式的应用程序。当我们要在应用服务器中部署web服务代码时,我想确定真正的问题。在这里,我们的模式包含元素,它确实具有类型导致问题。我想检查我们是否给编译器提供了正确的模式。假设下面给出的XSD定义。这导致了问题。真正的区别在于标准定义生成的类文件web服务没有得到部署。但是,如果我们完全删除该元素,则web服务将成功部署。有人能给我指路吗?
问题模式(根据w3schools)
<xsd:complexType name="PersonType">
<xsd:sequence>
<xsd:element name="nom" type="xsd:string" />
<xsd:element name="prenom" type="xsd:string" />
<xsd:element name="date_naissance" type="xsd:date" />
<xsd:element name="etablissement" type="xsd:string" />
<xsd:element name="num_tel" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="row" type="PersonType"/>
工作模式,(Webservice get deployment)
<xsd:complexType name="PersonType">
<xsd:sequence>
<xsd:element name="nom" type="xsd:string" />
<xsd:element name="prenom" type="xsd:string" />
<xsd:element name="date_naissance" type="xsd:date" />
<xsd:element name="etablissement" type="xsd:string" />
<xsd:element name="num_tel" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
应该为xsd定义一个名称空间,并为每个复杂类型定义一个前缀。
XSD应为
<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema elementFormDefault="qualified"
targetNamespace="http://yournamespace"
xmlns:your_prefix="http://yournamespace"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="PersonType">
<xsd:sequence>
<xsd:element name="nom" type="xsd:string" />
<xsd:element name="prenom" type="xsd:string" />
<xsd:element name="date_naissance" type="xsd:date" />
<xsd:element name="etablissement" type="xsd:string" />
<xsd:element name="num_tel" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="row" type="your_prefix:PersonType"/>
</xsd:schema>