Я использую JAX-WS для запуска некоторых образцов веб-служб . После публикации Когда я вводил URL-адрес WSDL, я мог видеть документ WSDL. Документ WSDL ссылается на документ схемы, который выглядит следующим образом:
<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'? Например:
Я нигде не могу найти документ схемы, в котором 'tns' будет объявлено как пространство имен префикс, документ схемы просто начинается с
<xs:schema version="1.0" targetNamespace="http://ts.ch01/">
Тогда почему появляется 'tns' при ссылке на другие элементы? Это по умолчанию поведение XML-схемы, созданной JAX-WS?
Согласно w3, tns означает «это пространство имен», ссылаясь на текущий документ.
Источник: http://www.w3.org/TR/wsdl#_notational