규칙 오브젝트에서 속성의 값을 검색합니다.
reference 표현식은 속성을 가져올 규칙 오브젝트를 판별하는 하위 표현식을 선택적으로 포함할 수 있습니다. 생략된 경우 reference를 포함하는 규칙 오브젝트를 사용합니다.
reference 표현식은 재사용 가능하며 이해하기 쉬운 규칙을 작성하는 데 주요합니다. 표현식 대신 지명된 속성의 reference를 사용할 수 있습니다. 참조된 속성의 유형이 표현식에 필요한 유형과 일치하지 않으면 CER 규칙 세트 유효성 검증기가 오류를 발행합니다.
<?xml version="1.0" encoding="UTF-8"?> <RuleSet name="Example_reference" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "http://www.curamsoftware.com/CreoleRulesSchema.xsd"> <Class name="Person"> <Attribute name="name"> <type> <javaclass name="String"/> </type> <derivation> <specified/> </derivation> </Attribute> <Attribute name="age"> <type> <javaclass name="Number"/> </type> <derivation> <specified/> </derivation> </Attribute> <!-- 이 규칙 클래스의 다른 속성에 대한 단순 참조 --> <Attribute name="ageNextYear"> <type> <javaclass name="Number"/> </type> <derivation> <arithmetic operation="+"> <!-- 이 <reference>에는 하위 요소가 없으므로 규칙 오브젝트가 "이 규칙 오브젝트"로 사용됩니다.--> <reference attribute="age"/> <Number value="1"/> </arithmetic> </derivation> </Attribute> <Attribute name="favoritePet"> <type> <ruleclass name="Pet"/> </type> <derivation> <specified/> </derivation> </Attribute> </Class> <Class name="Pet"> <Attribute name="name"> <type> <javaclass name="String"/> </type> <derivation> <specified/> </derivation> </Attribute> <Attribute name="species"> <type> <javaclass name="String"/> </type> <derivation> <specified/> </derivation> </Attribute> </Class> <Class name="Household"> <!-- 가정의 모든 사람 --> <Attribute name="members"> <type> <javaclass name="List"> <ruleclass name="Person"/> </javaclass> </type> <derivation> <specified/> </derivation> </Attribute> <!-- 한 명의 특별한 사람이 가정의 "세대주"로 지정됩니다. --> <Attribute name="headOfHousehold"> <type> <ruleclass name="Person"/> </type> <derivation> <specified/> </derivation> </Attribute> <!-- 다음은 다른 규칙 오브젝트에 있는 속성의 참조입니다. name OF favoritePet OF headOfHousehold 프로그래밍 언어에서는 다음과 같이 구분 "점" 표기법을 사용하여 역으로 쓸 수 있습니다. headOfHousehold.favoritePet.name --> <Attribute name="nameOfHeadOfHouseholdsFavoritePet"> <type> <javaclass name="String"/> </type> <derivation> <!-- 이름... --> <reference attribute="name"> <!-- ...가장 좋아하는 애완동물의... --> <reference attribute="favoritePet"> <!-- ...가정의 세대주의. --> <!-- 가장 안쪽에 있는 참조는 이 규칙 오브젝트의 속성을 나타내야 합니다. --> <reference attribute="headOfHousehold"/> </reference> </reference> </derivation> </Attribute> <!-- 가장 좋아하는 애완동물인 개가 있는 사람을 확인하여 가정에서 개를 소유한 사람을 식별합니다. --> <Attribute name="dogOwners"> <type> <javaclass name="List"> <ruleclass name="Person"/> </javaclass> </type> <derivation> <filter> <list> <!-- 가정 구성원에 대한 단순 참조 --> <reference attribute="members"/> </list> <listitemexpression> <equals> <String value="Dog"/> <!-- 목록에 있는 항목에 대한 속성 참조입니다. --> <reference attribute="species"> <reference attribute="favoritePet"> <current/> </reference> </reference> </equals> </listitemexpression> </filter> </derivation> </Attribute> </Class> </RuleSet>