XmlMessage

Crea un mensaje traducible (consulte Soporte de localización) a partir de contenido XML de formato libre.

El mensaje creado será el contenido XML literal en el elemento XmlMessage, con una excepción: El contenido de cualquier elemento replace se establecerá en la expresión que contiene.

El elemento replace como mecanismo de sustitución de señal simple; si necesita formato de señal más complejo o la posibilidad de cambiar texto de mensaje sin cambiar reglas, considere la posibilidad de utilizar ResourceMessage en su lugar.

Nota: Antes de Cúram V6, XmlMessage recortaba el espacio en blanco que rodea a los caracteres XML incorporados. A partir de Cúram V6, XmlMessage ya no recorta el espacio en blanco y conserva el formato de origen de los caracteres XML (eliminando los comentarios XML).

Si necesita el comportamiento de recorte anterior a Cúram V6 de XmlMessage, debe establecer la variable de entorno de aplicación curam.creole.XmlFormat.enableWhitespaceTrimming en el valor true en el entorno de desarrollo.

En un entorno de producción, debe asegurarse de que si el valor de la variable de entorno curam.creole.XmlFormat.enableWhitespaceTrimming cambia dinámicamente, toma las medidas para asegurarse de que se fuerza que los datos obtenidos del sistema que dependen de los atributos de regla que utilizan la expresión XmlMessage vuelvan a calcular todas las instancias de valor de atributo almacenadas.

<?xml version="1.0" encoding="UTF-8"?>
<RuleSet name="Example_XmlMessage"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation=
"http://www.curamsoftware.com/CreoleRulesSchema.xsd">
  <Class name="XmlMessageExampleRuleClass">

    <Attribute name="emptyMessage">
      <type>
        <javaclass name="curam.creole.value.Message"/>
      </type>
      <derivation>
        <!-- no contiene XML en absoluto -->
        <XmlMessage/>
      </derivation>
    </Attribute>

    <Attribute name="simpleHtmlMessage">
      <type>
        <javaclass name="curam.creole.value.Message"/>
      </type>
      <derivation>
        <!-- La utilización de XmlMessage puede asegurar que
             los elementos XML se inicien y
             finalicen correctamente, por ejemplo <b> y </b> -->
        <XmlMessage>El texto siguiente aparecerá en negrita en un
          navegador: <b>Texto en negrita.</b>
        </XmlMessage>
      </derivation>
    </Attribute>

    <Attribute name="tokenReplacementHtmlMessage">
      <type>
        <javaclass name="curam.creole.value.Message"/>
      </type>
      <derivation>
        <XmlMessage><p/>Este número calculado aparecerá en
          cursiva y formateado de acuerdo con las preferencias de entorno local:<i>
            <replace>
              <arithmetic operation="+">
                <Number value="1.23"/>
                <Number value="3.45"/>
              </arithmetic>
            </replace>
          </i>
          <p/>Y aquí se muestra un mensaje de recurso: <replace>
            <ResourceMessage key="simpleGreeting"
              resourceBundle="curam.creole.example.Messages"/>
          </replace>
        </XmlMessage>
      </derivation>
    </Attribute>

  </Class>

</RuleSet>