2009-09-08 67 views
0

我有一个xsd,其中有很多模式限制,这个xsd在我们的wsdl中使用。当我们将耳朵部署到glassfish并在浏览器中调用wsdl和xsd时,我们所有的模式限制都被删除了。为什么?我如何消除我们限制的剥离。 这里是一个片段: XSD,JaxWS和Glassfish

<xsd:complexType name="len"> 
    <xsd:sequence> 
     <xsd:element name="value" type="tns:dms_len"/> 
     <xsd:element name="new_value" type="tns:dms_len" minOccurs="0"></xsd:element> 
    </xsd:sequence> 
    <xsd:attribute name="action" type="tns:update_actions"></xsd:attribute> 
</xsd:complexType> 

这里是它看起来它展开后,如:

<!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.3.1-hudson-749-SNAPSHOT. --> 
... 
<xs:complexType name="len"> 
    <xs:sequence> 
     <xs:element name="value" type="xs:string"></xs:element> 
     <xs:element name="new_value" type="xs:string" minOccurs="0"></xs:element> 
    </xs:sequence> 
    <xs:attribute name="action" type="tns:update_actions"></xs:attribute> 
</xs:complexType> 

注意价值如何,现在NEW_VALUE只是普通的字符串。

更新: 似乎只有当我部署使用netbeans时,当我从glassfish控制台部署它的模式限制仍然存在。为什么选择netbeans?

回答

1

看起来像glassfish在从NetBeans部署并生成它自己时无法识别您的xsd。

因此,首先验证部署的版本是否使用了正确的xsd。从NetBeans部署使用目录部署它不会部署ear文件,而是部署项目目录中的内容。