TNS появляется в схеме веб-сервисов - PullRequest
23 голосов
/ 06 июня 2011

Я использую 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' появляется в объявлении элемента? Например:

<xs:element name="getTimeAsElapsed" type=" ТНС: getTimeAsElapsed"/>

У меня нигде нет документа схемы, в котором 'tns' объявлен как префикс пространства имен, документ схемы просто начинается с

<xs:schema version="1.0" targetNamespace="http://ts.ch01/">

Тогда почему «tns» появляется при ссылке на другие элементы? Это поведение по умолчанию XML-схемы, сгенерированной JAX-WS?

Ответы [ 2 ]

41 голосов
/ 24 сентября 2011

Согласно w3, tns означает «это пространство имен», ссылаясь на текущий документ.

Источник: http://www.w3.org/TR/wsdl#_notational

0 голосов
/ 24 сентября 2011

вам нужно рассматривать весь документ wsdl как один большой xml-файл.В этом случае допустимо использование префикса пространства имен, объявленного в корневом элементе (элемент Definition) в дочернем элементе.

Не требуется объявлять пространство имен tns в корневом элементе схемы (элемент схемы).Но если вы разделили схему на один файл, то вам нужен префикс tns.

...