Vous jugerez peut-être pratique de diviser un jeu de règles important en éléments plus petits pour faciliter le développement parallèle ou la réutilisation. Chaque jeu de règles peut contenir des instructions Include pour "extraire" d'autres classes et jeux de règles. L'élément principal d'un élément inclus doit correspondre à l'un des éléments suivants :
Une classe de règles unique ;
Un jeu de règles complet, qui peut lui-même contenir ses propres instructions Include qui seront traitées de manière récursive.
Différente types d'instructions Include sont prises en charge :
Inclut un fichier XML avec un chemin relatif au fichier contenant ; ce mécanisme peut s'avérer utile lors du développement autonome du jeu de règles par les développeurs à l'aide d'un environnement de développement basé sur des fichiers ;
Inclut un fichier XML situé au niveau de l'emplacement nommé du chemin d'accès aux classes d'exécution; ce mécanisme peut s'avérer utile pour faire référence aux jeux de règles communs qui changent rarement et sont générés dans l'application.
<?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"> <!-- Cette classe de règles est définie directement dans ce jeu de règles --> <Class name="Person"> <Attribute name="firstName"> <type> <javaclass name="String"/> </type> <derivation> <specified/> </derivation> </Attribute> </Class> <!-- Inclut un jeu de règles défini dans un autre fichier. Lorsqu'ils sont rassemblés dans un jeu de règles unique, les noms de toutes les classes de règles doivent être uniques. --> <Include> <RelativePath value="./HelloWorld.xml"/> </Include> </RuleSet>
Voir Consolidateur de jeu de règles CER pour savoir comment réduire un jeu de règles qui contient des inclusions RelativePath dans un fichier de jeu de règles unique.