기존 목록의 각 항목에 대한 표현식을 평가하여 새 목록을 작성합니다.
새 목록에는 기존 목록의 각 항목마다 대응하는 하나의 항목이 지정된 순서 그대로 보존되어 있습니다.
dynamiclist 표현식은 다음을 지정합니다.
기존 목록입니다.
기존 목록의 각 항목을 평가할 표현식입니다.
디자인 시 원하는 목록의 항목 수를 알지 못하는 경우(즉, 다른 속성의 값에 따라 매실행 시 달라질 수 있음) dynamiclist를 사용할 수 있습니다. 항목의 수가 고정된 경우(즉, 디자인 시 해당 수를 알고 있음) fixedlist를 대신 사용하십시오.
<?xml version="1.0" encoding="UTF-8"?> <RuleSet name="Example_dynamiclist" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "http://www.curamsoftware.com/CreoleRulesSchema.xsd"> <Class name="Person"> <Attribute name="age"> <type> <javaclass name="Number"/> </type> <derivation> <specified/> </derivation> </Attribute> <Attribute name="isDisabled"> <type> <javaclass name="Boolean"/> </type> <derivation> <specified/> </derivation> </Attribute> <Attribute name="totalIncome"> <type> <javaclass name="Number"/> </type> <derivation> <specified/> </derivation> </Attribute> <Attribute name="pets"> <type> <javaclass name="List"> <ruleclass name="Pet"/> </javaclass> </type> <derivation> <specified/> </derivation> </Attribute> </Class> <Class name="Pet"> <Initialization> <Attribute name="name"> <type> <javaclass name="String"/> </type> </Attribute> </Initialization> </Class> <Class name="Household"> <Attribute name="members"> <type> <javaclass name="List"> <ruleclass name="Person"/> </javaclass> </type> <derivation> <specified/> </derivation> </Attribute> <Attribute name="containsDisabledPerson"> <type> <javaclass name="Boolean"/> </type> <derivation> <any> <!-- 이 가정의 각 개인 구성원에 대한 isDisabled 속성에 해당하는 부울 목록을 가져옵니다. --> <dynamiclist> <list> <reference attribute="members"/> </list> <listitemexpression> <reference attribute="isDisabled"> <current/> </reference> </listitemexpression> </dynamiclist> </any> </derivation> </Attribute> <Attribute name="totalIncomeOfAdultMembers"> <type> <javaclass name="Number"/> </type> <derivation> <sum> <dynamiclist> <list> <!-- 구성원을 성인만 해당되도록 필터합니다. --> <filter> <list> <reference attribute="members"/> </list> <listitemexpression> <compare comparison=">="> <reference attribute="age"> <current/> </reference> <Number value="18"/> </compare> </listitemexpression> </filter> </list> <listitemexpression> <reference attribute="totalIncome"> <current/> </reference> </listitemexpression> </dynamiclist> </sum> </derivation> </Attribute> <Attribute name="memberAges"> <type> <javaclass name="List"> <javaclass name="Number"/> </javaclass> </type> <derivation> <dynamiclist> <list> <reference attribute="members"/> </list> <listitemexpression> <reference attribute="age"> <current/> </reference> </listitemexpression> </dynamiclist> </derivation> </Attribute> <Attribute name="youngestAge"> <type> <javaclass name="Number"/> </type> <derivation> <min> <reference attribute="memberAges"/> </min> </derivation> </Attribute> <!-- 각 개인의 애완동물 목록을 결합하여 가정의 모든 애완동물을 입수합니다. --> <Attribute name="allPets"> <type> <javaclass name="List"> <ruleclass name="Pet"/> </javaclass> </type> <derivation> <joinlists> <!-- 애완 동물 목록으로서 각 가정 구성원마다 하나의 목록이 있습니다. --> <dynamiclist> <list> <reference attribute="members"/> </list> <listitemexpression> <reference attribute="pets"> <current/> </reference> </listitemexpression> </dynamiclist> </joinlists> </derivation> </Attribute> </Class> </RuleSet>