我的xlc或者像我的目录中的氧气和eclipse xml插件这样的工具没有问题,但似乎找不到与wsimport命令一起使用的风格。
使用命名空间进行解析,以下条目适用于xjc但不适用于wsimport。
< public publicId =“http://schemas.ticomgeo.com/2010/geonet/common/ServiceMessageTypes/v0”uri =“。/ MessageTypes / ServiceMessageTypes.xsd”/>
以下是我发布的命令
xjc /data/catalog.work/wsdefs/HSTypes/HealthAndStatusV1.xsd -catalog/data/catalog.work/wsdefs/catalog3.xml
wsimport -verbose /data/catalog.work/wsdefs/HealthAndStatusServiceV1.wsdl -catalog/data/catalog.work/wsdefs/catalog5.xml
我在wsimport中遇到的错误表明它没有映射架构位置。它只查找它相对于目录或wsdl主目录(它们是相同的)。
[错误] /data/catalog.work/wsdefs/ServiceMessageTypes.xsd(没有此类文件或目录)
以下是wsdl
中的导入声明 <xs:schema>
<xs:import
namespace="http://schemas.ticomgeo.com/2010/geonet/common/ServiceMessageTypes/v0"
schemaLocation="ServiceMessageTypes.xsd"/>
</xs:schema>
再次使用目录文件中的以下条目处理xjc
&lt; systemSuffix systemIdSuffix =“ServiceMessageTypes.xsd”uri =“。/ MessageTypes / ServiceMessageTypes.xsd”/&gt;
但是使用wsimport我会在每个元素上遇到类似于以下内容的错误。第一个错误行号是指endpointStatusEnumType之后的元素开头的行号,第二个错误行号是指EndpointStatusEnumType元素的开头。请注意,它正在解析文件位置以进入架构。
[ERROR]'EndpointStatusEnumType'已经定义 文件的第38行:/data/catalog.work/wsdefs/MessageTypes/ServiceMessageTypes.xsd
[ERROR](与上述错误有关)第一个定义出现在这里 文件的第23行:/data/catalog.work/wsdefs/MessageTypes/ServiceMessageTypes.xsd
23&lt; xs:simpleType name =“EndpointStatusEnumType”&gt; Web服务端点的当前状态。&gt;
</xs:annotation> <xs:restriction base="xs:string"> <xs:enumeration value="NORMAL"/> <xs:enumeration value="COMMS_ERROR"/> <xs:enumeration value="DISABLED"/> </xs:restriction> </xs:simpleType> <!-- Complex Types --> <!-- -->
38&lt; xs:complexType name =“HeaderType”&gt;“
除了使用xjc之外,两种格式都可以与OXYGEN和Eclipse XML编辑器和验证器一起使用。
我假设wsimport调用与xjc相同的代码,所以我猜测我将如何将模式导入到wsdl文件中有一些问题,但它是一个非常直接或我正在使用的wsimport版本中的错误。
wsimport -version JDK 6中的JAX-WS RI 2.1.6
xjc版本“JDK 6中的JAXB 2.1.10” 用于XML绑定的JavaTM体系结构(JAXB)参考实现,(在JDK 6中构建JAXB 2.1.10)
有人建议如何让目录与wsimport一起使用吗?