webservice tutorial targetnamespace servicio que partes español web-services soap wsdl

web-services - targetnamespace - wsdl tutorial español



targetNamespace y namespace en WSDL (3)

El espacio de nombres de destino en el archivo WSDL será el espacio de nombres asociado con el servicio SOAP en sí. Por ejemplo, tenemos un servicio al cliente, el espacio de nombres sería algo así como http://www.acme.com/Customer/V1/CustomerService .

La sección de importaciones de XSD es donde usted especifica el espacio de nombres de la XSD que está a punto de importar. Un archivo XSD contendrá los datos que el servicio enviará, es decir, contendrá las definiciones de los objetos que se serializarán en XML y se enviarán hacia arriba y hacia abajo como la solicitud y las respuestas. Un XSD también puede contener las operaciones que expondrá el WSDL.

Un WSDL puede importar uno o más archivos XSD y cada XSD tendrá su propio espacio de nombres. Un XSD contendrá un espacio de nombres tal como:

  1. http://www.acme.com/Customer/V1/GetCustomerRequest para GetCustomerRequest esto definirá la estructura de datos de la operación GetCustomerRequest.
  2. http://www.acme.com/Customer/V1/CustomerObject para CustomerObject, esto definirá la estructura de datos de CustomerObject.

Los espacios de nombres son un poco como los paquetes de Java, solo le permiten definir una jerarquía de objetos. Una cosa importante a entender es que puede tener dos objetos de Cliente, uno que pertenece a su sistema de venta y otro que pertenece a su sistema de CRM, por ejemplo. Al colocar estos en espacios de nombres separados, podrá usar ambos objetos de Cliente en el mismo servicio siempre que tengan espacios de nombres únicos.

Normalmente, estos espacios de nombres formarán parte del catálogo de SOA y su definición formará parte de sus estándares de gobierno de SOA. Son importantes si quieres hacer SOA con éxito.

Estoy estudiando servicios web SOAP y soy realmente nueva en los servicios web. En el WSDL obtuve una pequeña confusión en el elemento targetNamespace en la definición y el espacio de nombres incluido en el xsd:schema .

<definitions .... targetNamespace=" " > <xsd:schema> <xsd:import namespace=" " schemaLocation=""/> </xsd:schema>

¿Qué significa estos dos elementos? Busqué en muchos artículos de la web y no pude identificarlo claramente. ¿Alguien por favor me puede explicar?

¿Estos dos obtienen los mismos valores?


Te lo explicaré utilizando la analogía de Java.

El espacio de nombres es como el espacio de nombres de Java. Cada elemento xml está en un espacio de nombres. Proporcionar un targetNamespace significa que todos los elementos (y tipos) definidos dentro están en ese espacio de nombres. Es similar a que todas las clases de Java están dentro del paquete.

El xsd que se está importando tendrá su propio espacio de nombres de destino, lo que significaría que todos los elementos en el xsd estarán en el espacio de nombres definido.

La importación en el wsdl es como proporcionar una importación de Java que especifica el paquete.

Espero que sea claro y útil: D.


targetNamespace es un "artefacto" de esquema XML. Los tipos de datos definidos por el usuario tienen la posibilidad de conflictos de nombres cuando trabajamos con un equipo diferente. Este atributo del elemento de schema define el espacio de nombres, es decir, el paquete. Por convención, usamos URI / URL, pero podríamos usar cualquier cadena ...

<?xml version="1.0" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="namespace"> ... </xs:schema>

por ejemplo:

xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/beans/spring-mvc.xsd" xmlns:mvc="http://www.springframework.org/schema/mvc" // or if the schema exist in current directory we can declare as follows xsi:schemaLocation="http://www.springframework.org/schema/mvc spring-mvc.xsd" xmlns:mvc="http://www.springframework.org/schema/mvc" //for import xml schema <xsd:import schemaLocation="http://localhost:9999/ws/hello?xsd=1" namespace="http://ws.peter.com/"/>

Nota: xsi:schemaLocation significa que el espacio de nombres y la URL están separados con espacios en blanco. Y xmlns:mvc significa el espacio de nombres http://www.springframework.org/schema/mvc definido como mvc alias.

Por ejemplo: en Spring, el esquema xml de beans tiene el mismo targetNamespace para diferentes versiones de spring-beans.xsd.

analogía del espacio de nombres :

+---------+--------------------------------------------------------+------------------------------+------------------------+ | Context | Name | Namespace identifier | Local name | +---------+--------------------------------------------------------+------------------------------+------------------------+ | Path | /home/user/readme.txt | /home/user (path) | readme.txt (file name) | | XML | xmlns:xhtml="http://www.w3.org/1999/xhtml"<xhtml:body> | http://www.w3.org/1999/xhtml | body | | Java | java.util.Date | java.util | Date | +---------+--------------------------------------------------------+------------------------------+------------------------+

para más detalles