wake-up-neo.net

tns, die im Web Services-Schema angezeigt werden

Ich verwende JAX-WS, um einige Beispiel-Webdienste auszuführen. Nach der Veröffentlichung der Webservices konnte ich das WSDL-Dokument sehen, als ich die WSDL-URL eingab. WSDL-Dokument verweist auf ein Schemadokument, das folgendermaßen lautet:

<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>

Meine Frage ist, warum erscheint 'tns' in der Elementdeklaration? Zum Beispiel:

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

Das Schemadokument kann nirgends mit 'tns' als Namespacepräfix deklariert werden. Das Schemadokument beginnt einfach mit 

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

Warum erscheint dann 'tns', wenn auf andere Elemente verwiesen wird? Ist dies standardmäßig das Verhalten des von JAX-WS generierten XML-Schemas?

22
Vicky

Wie in w3 bedeutet tns "dieser Namespace" und bezieht sich auf das aktuelle Dokument.

Quelle: http://www.w3.org/TR/wsdl#_notational

40
Scott Brickey

sie müssen das gesamte WSDL-Dokument als eine große XML-Datei betrachten. In diesem Fall ist die Verwendung eines Namespace-Präfix, das im Root-Element (Definitionselement) des untergeordneten Elements deklariert ist, gültig. 

Es ist nicht erforderlich, dass tns Namespace im Stammelement schema (schema element) deklariert wird. Wenn Sie das Schema jedoch in eine Datei getrennt haben, müssen Sie das Präfix tns verwenden.

0