Dieser Ausdruck ermittelt für eine Liste von booleschen Werten, ob alle Listenwerte true lauten.
Die Berechnung wird beim ersten in der Liste gefundenen Wert false gestoppt. Falls die Liste leer ist, gibt dieser Ausdruck das Ergebnis true zurück.
Die Liste der booleschen Werte wird normalerweise durch einen Ausdruck "fixedlist" (siehe fixedlist) oder "dynamiclist" (siehe dynamiclist) bereitgestellt.
Beispiel: Eine feste Liste von drei booleschen Attributen enthält die folgenden Werte:
Die Berechnung des Wertes von all für diese Werte gibt das Ergebnis false zurück, weil mindestens einer der Einträge "false" ist (nämlich der dritte Eintrag in der Liste). Dies ist unabhängig davon, dass der zweite Eintrag einen Fehler zurückgibt.
Beispiel: Eine andere feste Liste von drei booleschen Attributen enthält hingegen die folgenden Werte:
Die Berechnung des Wertes von all für diese Werte gibt den vom zweiten Eintrag in der Liste gemeldeten Fehler zurück, da dieser Fehler die Feststellung verhindert, ob alle Einträge den Wert true aufweisen.
<?xml version="1.0" encoding="UTF-8"?> <RuleSet name="Example_all" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "http://www.curamsoftware.com/CreoleRulesSchema.xsd"> <Class name="Person"> <Attribute name="isLoneParent"> <type> <javaclass name="Boolean"/> </type> <derivation> <!-- Example of <all> operating on a <fixedlist> --> <!-- To be considered a "lone parent", a person must be both unmarried and have at least one child --> <all> <fixedlist> <listof> <javaclass name="Boolean"/> </listof> <members> <!-- We happen to know that most people on our database are married, so we test this condition first. If it so happens that the isMarried value is not specified for a Person, then if that Person has no children then the <all> will return false; otherwise it will return an error indicating that the value of isMarried was not specified. --> <not> <reference attribute="isMarried"/> </not> <not> <property name="isEmpty"> <object> <reference attribute="children"/> </object> </property> </not> </members> </fixedlist> </all> </derivation> </Attribute> <Attribute name="hasNoYoungChildren"> <type> <javaclass name="Boolean"/> </type> <derivation> <!-- Example of <all> operating on a <dynamiclist>. If it so happens that one child's age cannot be calculated, and there is at least one child under 5, then the <all> will return false; otherwise, it will return the error showing why the child's age could not be calculated. --> <!-- Check whether the children are all over 5 years of age --> <all> <dynamiclist> <list> <reference attribute="children"/> </list> <listitemexpression> <compare comparison=">"> <reference attribute="age"> <current/> </reference> <Number value="5"/> </compare> </listitemexpression> </dynamiclist> </all> </derivation> </Attribute> <!-- The children of this person - each child is a person too! --> <Attribute name="children"> <type> <javaclass name="List"> <ruleclass name="Person"/> </javaclass> </type> <derivation> <specified/> </derivation> </Attribute> <Attribute name="isMarried"> <type> <javaclass name="Boolean"/> </type> <derivation> <specified/> </derivation> </Attribute> <Attribute name="age"> <type> <javaclass name="Number"/> </type> <derivation> <specified/> </derivation> </Attribute> </Class> </RuleSet>