XmlMessage

Dieser Ausdruck erstellt aus frei formatiertem XML-Inhalt eine lokalisierbare Nachricht (siehe Lokalisierungsunterstützung).

Die erstellte Nachricht ist der Inhalt mit XML-Literalcodierung im Element XmlMessage. Es gibt jedoch eine Ausnahme: Als Inhalt eines Elements replace wird der Ausdruck festgelegt, den es enthält.

Das Element replace stellt einen Ersatzmechnismus für einfache Token dar. Falls eine komplexere Tokenformatierung erforderlich ist oder die Möglichkeit bestehen muss, Nachrichtentext ohne die Änderung von Regeln zu ändern, kann es sinnvoll sein, stattdessen den Ausdruck "ResourceMessage" (siehe ResourceMessage) zu verwenden.

Anmerkung: Vor Cúram Version 6 wurden bei Verwendung des Ausdrucks XmlMessage Leerzeichen abgeschnitten, die eingebettete XML-Zeichen umgaben. Ab Cúram Version 6 werden Leerzeichen bei Verwendung von XmlMessage nicht mehr abgeschnitten und das Quellenformat der XML-Zeichen bleibt (unter Entfernung von XML-Kommentaren) erhalten.

Falls Sie das Abschneideverhalten benötigen, das der Ausdruck XmlMessage vor Cúram Version 6 aufwies, müssen Sie die Anwendungsumgebungsvariable curam.creole.XmlFormat.enableWhitespaceTrimming in Ihrer Entwicklungsumgebung auf den Wert true setzen.

In einer Produktionsumgebung sollten Sie bei einer dynamischen Änderung der Umgebungsvariablen curam.creole.XmlFormat.enableWhitespaceTrimming sicherstellen, dass alle abgeleiteten Daten in Ihrem System, die von Regelattributen abhängig sind, bei denen der Ausdruck XmlMessage verwendet wird, zwingend alle gespeicherten Attributwertinstanzen neu berechnen müssen.

<?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>
        <!-- Using XmlMessage can ensure that
             XML elements are started and
             ended correctly, e.g. <b> and </b> -->
        <XmlMessage>The following text will appear in bold in a
          browser: <b>Some in bold text.</b>
        </XmlMessage>
      </derivation>
    </Attribute>

    <Attribute name="tokenReplacementHtmlMessage">
      <type>
        <javaclass name="curam.creole.value.Message"/>
      </type>
      <derivation>
        <XmlMessage><p/>This calculated number will appear in
          italics and formatted according to locale preferences:<i>
            <replace>
              <arithmetic operation="+">
                <Number value="1.23"/>
                <Number value="3.45"/>
              </arithmetic>
            </replace>
          </i>
          <p/>And here's a resource message: <replace>
            <ResourceMessage key="simpleGreeting"
              resourceBundle="curam.creole.example.Messages"/>
          </replace>
        </XmlMessage>
      </derivation>
    </Attribute>

  </Class>

</RuleSet>