2011-06-06 6 views
19

Estoy usando JAX-WS para ejecutar algunos ejemplos de servicios web. Después de publicar los servicios web, cuando escribí la URL WSDL, pude ver el documento WSDL. documento WSDL se refiere un documento de esquema que dice así:tns que aparecen en el esquema de servicios web

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

Mi pregunta es ¿por qué 'de TNS que aparece en la declaración de elemento? Por ejemplo:

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

tengo ninguna parte es el documento de esquema de ver 'de TNS para ser declarado como prefijo de espacio, el documento de esquema simplemente comienza con

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

Entonces ¿Por qué 'tns' aparece cuando se hace referencia a otros elementos? ¿Es esto por comportamiento predeterminado del esquema XML generado por JAX-WS?

+1

Solo un control de cordura aquí (esos guiones en su ejemplo me hacen sospechar): Si miro un documento XML (esquema o no) en Firefox, le da cierto estilo al documento, por ejemplo, elimina las declaraciones del espacio de nombres. Haga clic con el botón derecho -> Ver fuente de página devuelve el original –

+0

@Per, tenía razón. Pude ver el prefijo y otros detalles mirando la fuente. Cuando cambié a IE, pude ver todas las demás declaraciones del espacio de nombres también ... – Vicky

Respuesta

0

Es necesario pensar en todo el documento WSDL como un archivo de una gran XML. En ese caso, es válido utilizar un prefijo de espacio de nombres declarado en el elemento raíz (elemento Definición) en el elemento secundario.

No es obligatorio tener espacio de nombres de tns declarado en el elemento raíz de esquema (elemento de esquema). Pero si separa el esquema a un archivo, entonces necesita tener el prefijo tns.