Web服务架构中出现的tns

问题描述 投票:26回答:2

我正在使用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模式的默认行为吗?

我正在使用JAX-WS运行一些示例Web服务。发布Web服务后,当我键入WSDL URL时,可以看到WSDL文档。 WSDL文档指的是一个Schema文档,......>

xml web-services wsdl xsd jax-ws
2个回答
46
投票

按照w3,tns表示“此名称空间”,指的是当前文档。

来源:https://www.w3.org/TR/wsdl.html#_notational


0
投票

您需要将整个wsdl文档视为一个大xml文件。在这种情况下,使用在子元素的根元素(定义元素)处声明的名称空间前缀有效。

© www.soinside.com 2019 - 2024. All rights reserved.