tns出现在Web服务架构中

Vic*_*cky 24 xml xsd wsdl web-services jax-ws

我正在使用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>
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么'tns'出现在元素声明中?例如:

<xs:element name="getTimeAsElapsed" type="TNS:getTimeAsElapsed"/>

我没有在架构文档中看到'tns'被声明为名称空间前缀,架构文档只是以

<xs:schema version="1.0" targetNamespace="http://ts.ch01/">
Run Code Online (Sandbox Code Playgroud)

那么为什么'tns'在引用其他元素时出现?这是JAX-WS生成的XML模式的默认行为吗?

Sco*_*key 43

根据w3,tns表示"此命名空间",指的是当前文档.

资料来源:http://www.w3.org/TR/wsdl#_notational