Es kann hilfreich sein, ein umfangreiches Regelwerk in kleinere Bestandteile zu untergliedern, um die parallele Entwicklung oder die Wiederverwendung zu vereinfachen. Jedes Regelwerk kann Anweisungen Include enthalten, um andere Regelwerke und Klassen zu integrieren. Ein mit "Include" eingeschlossenes Element muss eines der folgenden Stammelemente enthalten:
Einfache Regelklasse
Vollständiges Regelwerk, das wiederum selbst eigene Anweisungen Include enthalten kann, die rekursiv verarbeitet werden
Es werden verschiedene Typen von Anweisungen Include unterstützt:
Enthält eine XML-Datei mit einem relativen Pfad für die einschließende Datei. Dieses Verfahren kann bei der eigenständigen Entwicklung des Regelwerks durch Entwickler in einer dateibasierten Entwicklungsumgebung sinnvoll sein.
Enthält eine XML-Datei, die an der benannten Position im Laufzeitklassenpfad vorhanden ist. Dieses Verfahren ist geeignet, um auf allgemeine Regelwerke zu verweisen, die sich selten ändern und in die Anwendung integriert sind.
<?xml version="1.0" encoding="UTF-8"?> <RuleSet name="Example_Include" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "http://www.curamsoftware.com/CreoleRulesSchema.xsd"> <!-- This rule class is defined directly in this rule set --> <Class name="Person"> <Attribute name="firstName"> <type> <javaclass name="String"/> </type> <derivation> <specified/> </derivation> </Attribute> </Class> <!-- Include a rule set defined in another file. When assembled into a single rule set, the names of all the rule classes must be unique. --> <Include> <RelativePath value="./HelloWorld.xml"/> </Include> </RuleSet>
Der Abschnitt CER-Konsolidierungskomponente für Regelwerke, enthält Informationen dazu, wie ein Regelwerk, das Einschlüsse von RelativePath enthält, in einer einzigen Regelwerkdatei komprimiert werden kann.