【发布时间】:2011-09-09 10:54:58
【问题描述】:
我正在使用 JAX-WS 运行一些示例 Web 服务。发布 Web 服务后,当我键入 WSDL URL 时,我可以看到 WSDL 文档。 WSDL 文档指的是这样的 Schema 文档:
<xs:schema version="1.0" targetNamespace="http://ts.ch01/">
<xs:element name="getTimeAsElapsed" type="tns:getTimeAsElapsed"/>
<xs:element name="getTimeAsElapsedResponse" type="tns:getTimeAsElapsedResponse"/>
<xs:element name="getTimeAsString" type="tns:getTimeAsString"/>
<xs:element name="getTimeAsStringResponse" type="tns:getTimeAsStringResponse"/>
−
<xs:complexType name="getTimeAsString">
<xs:sequence/>
</xs:complexType>
−
<xs:complexType name="getTimeAsStringResponse">
−
<xs:sequence>
<xs:element name="return" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
−
<xs:complexType name="getTimeAsElapsed">
<xs:sequence/>
</xs:complexType>
−
<xs:complexType name="getTimeAsElapsedResponse">
−
<xs:sequence>
<xs:element name="return" type="xs:long"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
我的问题是为什么元素声明中会出现“tns”?例如:
<xs:element name="getTimeAsElapsed" type="tns:getTimeAsElapsed"/>
我没有看到将“tns”声明为命名空间前缀的架构文档,架构文档只是以
开头<xs:schema version="1.0" targetNamespace="http://ts.ch01/">
那么为什么在引用其他元素时会出现“tns”?这是 JAX-WS 生成的 XML 模式的默认行为吗?
【问题讨论】:
-
这里只是一个健全性检查(你的例子中的那些破折号让我怀疑):如果我在 Firefox 中查看一个 XML 文档(模式或其他),它会对文档进行一些样式设置,例如它删除命名空间声明。右键->查看页面源返回原来的
-
@Per,你是对的。我可以通过查看源代码来查看前缀和其他详细信息。当我打开 IE 时,我也可以看到所有其他命名空间声明......
标签: xml web-services wsdl xsd jax-ws