샘플 규칙: 복합 속성(규칙 오브젝트 목록)

그림 1. 복합 속성(규칙 오브젝트 목록)
  <Class name="Context" extends="AbstractContext" extendsRuleSet="MotivationRuleSet"
        xsi:noNamespaceSchemaLocation="http://www.curamsoftware.com/CreoleRulesSchema.xsd">
        <Attribute name="householdMembers">
           <type>
                <javaclass name="List">
                    <ruleclass name="AbstractPerson" ruleset="MotivationRuleSet">
                </javaclass>
            </type>
            <derivation>
                <readall ruleclass="Person">
            </derivation>
        </Attribute>
        .. Other attributes ..
    </Class>

   <Class name="Person" extends="AbstractPerson" extendsRuleSet="MotivationRuleSet"
   xsi:noNamespaceSchemaLocation="http://www.curamsoftware.com/CreoleRulesSchema.xsd">
     .. Attributes ..
    </Class>

위의 householdMembers 속성은 복합 속성으로 RuleObject의 목록을 리턴합니다. 목록에서 각 RuleObject는 새 데이터 저장소 엔티티를 작성하여 컨텍스트 데이터 저장소 엔티티에 추가하며 제공된 이러한 RuleObject의 이름은 스키마에 대해 적합합니다. 이러한 경우 처리에서 Context.Person이 허용되는지 스키마를 확인하고(즉, 상위 RuleObject의 이름과 이 RuleObject 이름의 조합), 스키마는 이를 허용하므로 여러 개인 엔티티가 추가되어 컨텍스트 엔티티에 추가됩니다. RuleObject 목록을 나타내는 속성의 경우 상위 RuleClass에서 속성 이름은 중요하지 않습니다. (즉, 위의 컨텍스트 RuleClass에서 householdMembers 속성의 이름은 무시됩니다.) 일치는 상위 RuleObject에서 각 RuleObject를 나타내는 속성의 이름이 아닌, 상위 RuleObject 이름과 각 RuleObject 자체의 이름을 기반으로 합니다.