Ejecutar el ejemplo de Validación XMLNSC

Para poder ejecutar el ejemplo, antes debe haber desplegado el flujo de mensajes y el conjunto de mensajes de ejemplo.

Si encuentra cualquier tipo de problema al ejecutar el ejemplo, consulte Resolución de problemas cuando se ejecutan ejemplos en la documentación de WebSphere Message Broker.

Ejecutar el ejemplo con un mensaje que pasa la validación

Para ejecutar el ejemplo de Validación XMLNSC con un mensaje que pasa la validación:

  1. En la vista Desarrollo de intermediario, expanda el proyecto de flujo de mensajes XMLNSCVALIDATIONMF y luego efectúe una doble pulsación en XMLNSCVALIDATIONMF1.mbtest para abrirlo en el Cliente de prueba.
  2. Pulse con el botón derecho en Invocar flujo de mensajes en el panel Sucesos de prueba en el flujo de mensajes y pulse Invocar.
  3. En el campo Cuerpo, seleccione Importar de archivo externo, pulse Espacio de trabajo y vaya al archivo ValidMessage.xml desde el directorio XMLNSCVALIDATIONMF de su espacio de trabajo.
  4. Pulse Aceptar.
  5. Pulse Enviar mensaje.

    El mensaje de entrada pasa todas las comprobaciones de validación. En el Cliente de prueba se recupera un mensaje de la cola XMLNSCVALIDATIONMF1.OUT y se muestra una copia del mensaje de entrada bajo Mensaje en el Cliente de prueba.

Ejecutar el ejemplo con un mensaje al que le faltan datos

Para ejecutar el ejemplo de Validación XMLNSC cuando el mensaje de entrada no pasa la validación debido a que faltan datos:

  1. Pulse con el botón derecho en Invocar flujo de mensajes en el panel Sucesos de prueba en el flujo de mensajes y pulse Invocar.
  2. En el campo Cuerpo, seleccione Importar de archivo externo, pulse Espacio de trabajo y vaya al archivo MissingElement.xml desde el directorio XMLNSCVALIDATIONMF de su espacio de trabajo. Este mensaje contiene el siguiente fragmento:
    <Header Title="MissingElement"></Header>
    
  3. Pulse Aceptar.
  4. Pulse Enviar mensaje.

    El mensaje de entrada no pasa la validación. En el Cliente de prueba, se recupera un mensaje de la cola XMLNSCVALIDATIONMF1.FAIL y se muestra parte de la Lista de excepciones como un mensaje XML. Este mensaje de Lista de excepciones contiene el siguiente fragmento:

    <Text>Suceso de elemento final no esperado.
    El contenido del elemento 'Header' no está completo.</Text>
    

    El resultado incorrecto de la validación se debe a que el mensaje de entrada debe tener un elemento llamado SaleListCount como hijo de Header. La siguiente sección del esquema XML SampleMessageValidation.xsd es donde se define este requisito:

    <xsd:complexType name="Header">
    <xsd:sequence>
    <xsd:element name="SaleListCount" type="xsd:int"></xsd:element>
    </xsd:sequence>
    <xsd:attribute name="Title" type="xsd:string" use="optional"></xsd:attribute>
    </xsd:complexType>
    

Ejecutar el ejemplo con un mensaje que tiene un campo numérico que está fuera del rango:

Para ejecutar el ejemplo de Validación XMLNSC cuando el mensaje de entrada no pasa la validación debido un campo numérico que está fuera del rango:

  1. Pulse con el botón derecho en Invocar flujo de mensajes en el panel Sucesos de prueba en el flujo de mensajes y pulse Invocar.
  2. En el campo Cuerpo, seleccione Importar de archivo externo, pulse Espacio de trabajo y vaya al archivo NumericOutOfRange.xml desde el directorio XMLNSCVALIDATIONMF de su espacio de trabajo. El mensaje contiene el siguiente fragmento:
    <Quantity>1010</Quantity;>
    
  3. Pulse Aceptar.
  4. Pulse Enviar mensaje.

    El mensaje de entrada no pasa la validación. En el Cliente de prueba, se recupera un mensaje de la cola XMLNSCVALIDATIONMF1.FAIL y se muestra parte de la Lista de excepciones como un mensaje XML. Este mensaje de Lista de excepciones contiene el siguiente fragmento:

    <Text>cvc-maxInclusive-valid: El valor "1010" no es válido con
    respecto a la faceta maxInclusive con el valor "100" para el tipo "#Anonymous".</Text>
    

    El resultado incorrecto de la validación se debe a que el valor de Quantity en el mensaje de entrada debe estar en el rango de 1 a 100, inclusive. La siguiente sección del esquema XML SampleMessageValidation.xsd es donde se define este requisito:

    <xsd:element name="Quantity">
    	<xsd:simpleType>
    		<xsd:restriction base="xsd:int">
       			<xsd:minInclusive value="1"/>
      			<xsd:maxInclusive value="100"/>
      		</xsd:restriction>
    	</xsd:simpleType>
    </xsd:element>
    

Ejecutar el ejemplo con un elemento que no sigue el patrón necesario:

Para ejecutar el ejemplo de Validación XMLNSC cuando el mensaje de entrada no pasa la validación debido a que el valor de un elemento no sigue el patrón necesario:

  1. Pulse con el botón derecho en Invocar flujo de mensajes en el panel Sucesos de prueba en el flujo de mensajes y pulse Invocar.
  2. En el campo Cuerpo, seleccione Importar de archivo externo, pulse Espacio de trabajo y vaya al archivo PatternMismatch.xml desde el directorio XMLNSCVALIDATIONMF de su espacio de trabajo. El mensaje contiene el siguiente fragmento:
    <Code>0#</Code>
    
  3. Pulse Aceptar.
  4. Pulse Enviar mensaje.

    El mensaje de entrada no pasa la validación. En el Cliente de prueba, se recupera un mensaje de la cola XMLNSCVALIDATIONMF1.FAIL y se muestra parte de la Lista de excepciones como un mensaje XML. Este mensaje de Lista de excepciones contiene el siguiente fragmento:

    <Text>cvc-pattern-valid: El valor "0#" no es válido con respecto a la faceta
    de patrón para el tipo "#Anonymous".</Text>
    

    El resultado incorrecto de la validación se debe a que el valor de Code en el mensaje de entrada debe ser alfanumérico. La siguiente sección del esquema XML SampleMessageValidation.xsd es donde se define este requisito:

    <xsd:element maxOccurs="3" minOccurs="3" name="Code">
    	<xsd:simpleType>
    		<xsd:restriction base="xsd:string">
    			<xsd:pattern value="[0-9a-zA-Z]{2}"/>
    		</xsd:restriction>
    	</xsd:simpleType>
    

Ejecutar el ejemplo con un campo numérico que contiene datos no numéricos:

Para ejecutar el ejemplo de Validación XMLNSC cuando el mensaje de entrada no pasa la validación debido a un campo numérico que contiene datos no numéricos:

  1. Pulse con el botón derecho en Invocar flujo de mensajes en el panel Sucesos de prueba en el flujo de mensajes y pulse Invocar.
  2. En el campo Cuerpo, seleccione Importar de archivo externo, pulse Espacio de trabajo y vaya al archivo StringInNumeric.xml desde el directorio XMLNSCVALIDATIONMF de su espacio de trabajo. El mensaje contiene el siguiente fragmento:
    <Balance>$00.50</Balance>
    
  3. Pulse Aceptar.
  4. Pulse Enviar mensaje.

    El mensaje de entrada no pasa la validación. En el Cliente de prueba, se recupera un mensaje de la cola XMLNSCVALIDATIONMF1.FAIL y se muestra parte de la Lista de excepciones como un mensaje XML. Este mensaje de Lista de excepciones contiene el siguiente fragmento:

    <Text>cvc-datatype-valid.1.2: El valor "$00.50" no es un valor válido para el tipo de datos "float".</Text>
    El resultado incorrecto de la validación se debe a que el valor de Balance debe ser un valor flotante y el símbolo de dólar no es un carácter válido para el tipo de datos flotante. La siguiente sección del esquema XML SampleMessageValidation.xsd es donde se define este requisito:
    <xsd:element name="Balance" type="xsd:float"></xsd:element>
    

Ejecutar el ejemplo con un campo que es demasiado largo:

Para ejecutar el ejemplo de Validación XMLNSC cuando el mensaje de entrada no pasa la validación debido a que un campo es demasiado largo:

  1. Pulse con el botón derecho en Invocar flujo de mensajes en el panel Sucesos de prueba en el flujo de mensajes y pulse Invocar.
  2. En el campo Cuerpo, seleccione Importar de archivo externo, pulse Espacio de trabajo y vaya al archivo StringTooLong.xml desde el directorio XMLNSCVALIDATIONMF de su espacio de trabajo. El mensaje contiene el siguiente fragmento:
    <Surname>Braithwaaaaaaaaaaaite</Surname>
    
  3. Pulse Aceptar.
  4. Pulse Enviar mensaje.

    El mensaje de entrada no pasa la validación. En el Cliente de prueba, se recupera un mensaje de la cola XMLNSCVALIDATIONMF1.FAIL y se muestra parte de la Lista de excepciones como un mensaje XML. Este mensaje de Lista de excepciones contiene el siguiente fragmento:

    <Text>cvc-maxLength-valid: La longitud del valor "Braithwaaaaaaaaaaaite" es "21", que no es válido respecto a la faceta
    maxLength con el valor "20" para el tipo "#Anonymous".</Text>
    

    El resultado incorrecto de la validación se debe a que la longitud máxima de Surname debe ser 20, mientras que la longitud en el menaje es 21. La siguiente sección del esquema XML SampleMessageValidation.xsd es donde se define este requisito:

    <xsd:element name="Surname">
    	<xsd:simpleType>
    		<xsd:restriction base="xsd:string">
    			<xsd:maxLength value="20"/>
    		</xsd:restriction>
    	</xsd:simpleType>
    </xsd:element>
    

Ejecutar el ejemplo con el valor de un elemento que no está en la lista de valores permitidos:

Para ejecutar el ejemplo de Validación XMLNSC cuando el mensaje de entrada no pasa la validación debido a que el valor de un elemento no está en la lista de valores permitidos:

  1. Pulse con el botón derecho en Invocar flujo de mensajes en el panel Sucesos de prueba en el flujo de mensajes y pulse Invocar.
  2. En el campo Cuerpo, seleccione Importar de archivo externo, pulse Espacio de trabajo y vaya al archivo ValueNotInList.xml desde el directorio XMLNSCVALIDATIONMF de su espacio de trabajo. El mensaje contiene el siguiente fragmento:
    <Currency>FRF</Currency>
    
  3. Pulse Aceptar.
  4. Pulse Enviar mensaje.

    El mensaje de entrada no pasa la validación. En el Cliente de prueba, se recupera un mensaje de la cola XMLNSCVALIDATIONMF1.FAIL y se muestra parte de la Lista de excepciones como un mensaje XML. Este mensaje de Lista de excepciones contiene el siguiente fragmento:

    <Text>cvc-enumeration-valid: El valor "FRF" no es válido con respecto a la faceta de enumeración para el tipo "#Anonymous". Debe ser un valor de la enumeración.</Text>
    

    El resultado incorrecto de la validación se debe a que el elemento Currency debe contener uno de los valores permitidos definidos en el esquema. El valor que hay en el mensaje de entrada no coincide con ninguno de los valores de la lista. La siguiente sección del esquema XML SampleMessageValidation.xsd es donde se define este requisito:

    <xsd:element name="Currency">
    	<xsd:simpleType>
    		<xsd:restriction base="xsd:string">
    			<xsd:enumeration value="USD"/>
    			<xsd:enumeration value="GBP"/>
    			<xsd:enumeration value="Sterling"/>
    			<xsd:enumeration value="EUR"/>
    			<xsd:enumeration value="Euros"/>
    			<xsd:enumeration value="JPY"/>
    		</xsd:restriction>
    	</xsd:simpleType>
    </xsd:element>
    

Ejecutar el ejemplo con un mensaje de entrada con el espacio de nombres incorrecto:

Para ejecutar el ejemplo de Validación XMLNSC cuando el mensaje de entrada no pasa la validación debido a que tiene el espacio de nombres incorrecto:

  1. Pulse con el botón derecho en Invocar flujo de mensajes en el panel Sucesos de prueba en el flujo de mensajes y pulse Invocar.
  2. En el campo Cuerpo, seleccione Importar de archivo externo, pulse Espacio de trabajo y vaya al archivo NamespacedMessage.xml desde el directorio XMLNSCVALIDATIONMF de su espacio de trabajo. El mensaje contiene el siguiente fragmento:
    <samp:SaleListMessage xmlns:samp="http://www.samplemessage.broker.hursley.ibm.com" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.samplemessage.broker.hursley.ibm.com/SampleMessageNamespace1.xsd">
    
  3. Pulse Aceptar.
  4. Pulse Enviar mensaje.

    El mensaje de entrada no pasa la validación. En el Cliente de prueba, se recupera un mensaje de la cola XMLNSCVALIDATIONMF1.FAIL y se muestra parte de la Lista de excepciones como un mensaje XML. Este mensaje de Lista de excepciones contiene el siguiente fragmento:

    <Text>Código raíz inesperado. El elemento "samp:SaleListMessage" no es un elemento global.</Text>
    El resultado incorrecto de la validación se debe a que el elemento global SaleListMessage no tiene ningún espacio de nombres de destino definido en el esquema. La instancia en el mensaje de entrada tiene un código raíz llamado SaleListMessage con un espacio de nombres, lo que hace que sea diferente de lo que se espera de la definición de esquema. La siguiente sección del esquema XML SampleMessageValidation.xsd es donde se define este requisito:
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="SaleListMessage" type="RootMessage"></xsd:element>
    

Cuando haya completado estos pasos, habrá ejecutado satisfactoriamente el ejemplo de Validación XMLNSC. Para obtener información sobre la estructura de las excepciones de validación XMLNSC, consulte Propiedades de validación.

Volver a la página inicial del ejemplo