XmlMessage

Crée un message localisable (voir Prise en charge de la localisation) à partir du contenu XML à structure libre.

Le message créé correspond au contenu XML littéral dans l'élément XmlMessage, à une exception près : le contenu d'un élément replace est défini sur l'expression qu'il contient.

L'élément replace comme simple mécanisme de remplacement de jeton ; si vous avez besoin d'un formattage complexe des jetons, ou de modifier le texte de message sans modifier les règles, pensez à utiliser ResourceMessage à la place.

Remarque : Avant Cúram V6, XmlMessage supprimait les espaces entourant les caractères XML intégrés. Dans Cúram V6 et versions ultérieures, XmlMessage ne supprime plus les espaces et préserve le format source des caractères XML (en supprimant les commentaires XML).

Si vous avez besoin du comportement de suppression antérieur à Cúram V6 de XmlMessage, vous devez alors définir la variable d'environnement d'application curam.creole.XmlFormat.enableWhitespaceTrimming sur la valeur true dans votre environnement de développement.

Dans un environnement de production, vous devez vous assurer que si la valeur de la variable d'environnement curam.creole.XmlFormat.enableWhitespaceTrimming est modifiée de manière dynamique, vous devez prendre des mesures pour vérifier que les données dérivées dans votre système qui dépendent d'attributs de règles utilisant l'expression XmlMessage doivent être forcées pour recalculer toutes les instances de la valeur d'attribut stockées.

<?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>
        <!-- contains no XML at all -->
        <XmlMessage/>
      </derivation>
    </Attribute>

    <Attribute name="simpleHtmlMessage">
      <type>
        <javaclass name="curam.creole.value.Message"/>
      </type>
      <derivation>
        <!-- L'utilisation de XmlMessage peut permettre de s'assurer que
             les éléments XML sont démarrés et
             terminés correctement, par exemple, <b> et </b> -->
        <XmlMessage>Le texte suivant s'affiche en gras dans un
          navigateur : <b>Eléments en texte gras.</b>
        </XmlMessage>
      </derivation>
    </Attribute>

    <Attribute name="tokenReplacementHtmlMessage">
      <type>
        <javaclass name="curam.creole.value.Message"/>
      </type>
      <derivation>
        <XmlMessage><p/>Ce nombre calculé s'affiche en
          italique et est mis en forme en fonction des préférences locales :<i>
            <replace>
              <arithmetic operation="+">
                <Number value="1.23"/>
                <Number value="3.45"/>
              </arithmetic>
            </replace>
          </i>
          <p/>Et voici un message de ressource : <replace>
            <ResourceMessage key="simpleGreeting"
              resourceBundle="curam.creole.example.Messages"/>
          </replace>
        </XmlMessage>
      </derivation>
    </Attribute>

  </Class>

</RuleSet>