[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Proposal: Expression, Variable Definition/Reference Text (Firstcrack)
We probably have to clean this description up a bit before we give it to Tim. Cheers, -Polar 6.x Element Expression The Expression element is not used directly in a policy. The Expression element signifies that an element that extends the ExpressionType SHALL appear in its place. <xs:element name="Expression" type="xacml:ExpressionType" abstract="true"/> <xs:complexType name="ExpressionType" abstract="true"/> 6.x Element VariableDefinition The VariableDefinition element SHALL be used to define a value that can be referenced by a VariableReference element. The name supplied for its VariableId attribute SHALL NOT occur in the VariableId attribute of any other VariableDefinition element within the encompassing policy. <xs:element name="VariableDefinition" type="xacml:VariableDefinitionType"/> <xs:complexType name="VariableDefinitionType"> <xs:sequence> <xs:element ref="xacml:Expression"/> </xs:sequence> <xs:attribute name="VariableId" type="xs:string" use="required"/> </xs:complexType> The VariableDefinition is of VariableDefinitionType: The VariableDefinition has the following attributes and elements: VariableId [Required] The name of the variable. <Expression> The Expression is any element that is of the ExpressionType. 6.x Element VariableReference The VariableReference is used to reference a value defined within the same encompassing policy. The VariableReference element SHALL refer to the VariableDefinition element by string equality on the value of their respective VariableId attributes. There SHALL exist one and only one VariableDefinition within the same encompassing policy for which the VariableReference refers. There MAY be zero or more VariableReference elements that refer to the same VariableDefinition element. <xs:element name="VariableReference" type="xacml:VariableReferenceType" substitutionGroup="xacml:Expression"/> <xs:complexType name="VariableReferenceType"> <xs:complexContent> <xs:extension base="xacml:ExpressionType"> <xs:attribute name="VariableId" type="xs:string" use="required"/> </xs:extension> </xs:complexContent> </xs:complexType> The VariableReference is of the VariableReferenceType, which is of the ExpressionType. The VariableReference element may appear any place an Expression element is listed in the schema. The VariableReference has the following attributes: VariableId [Required] The name used to refer to the value defined for the named variable in a VariableDefinition element. 13.x Variable Reference Evaluation The VariableReference element references a single VariableDefinition element contained within the same policy. A VariableReference that does not reference a particular VariableDefinition element within the encompassing policy is called an undefined reference. Policies with undefined references are invalid. In any place where a VariableReference occurs, it has the effect as if the text of the Expression defined in the VariableDefinition replaces the VariableReference. However, any evaluation scheme that preserves this semantics is acceptable. For instance, the expression in the VariableDefinition may be evaluated to a particular value and cached for multiple references without consequence. This charateristic is one of the benefits of XACML being a declarative language. ==== NOTE: For all other elements that are now extensions of ExpressionType, we should probably add the note that usually follows the schema fragments in Section 6: The XXXX element is of the XXXXType, which is of the ExpressionType. The XXXX element may appear any place the Expression element is listed in the schema. ===== Cheers, -Polar
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]