为了准确地对属性名称执行语法验证,会部分计算需要属性名称的函数,以查看是否存在属性名称不是文字,而是某个函数的结果的少数情况。
请考虑以下示例:
公式 PropValue(Concat(Core.Abbrev))
有效,但是必须计算 Concat
函数(不仅仅验证语法)以核实属性名称。
公式 PropValue(If(NodeIsLeaf(),Core.Abbrev,Custom.Label))
有效,但是必须计算 If 函数以核实属性名称。
如果所涉及的属性名称只是公式的一部分,则仅计算需要确定属性名称的部分。例如,在公式 Add(PropValue(Concat(Core.,I,D)),If(NodeIsLeaf(),0,1)
中,为验证语法而计算的公式部分只有 Concat
函数及其参数。
在诸如 PropValue(PropValue(NodeType))
等情况中,计算这些公式部分变得很重要。对于该公式,除非为 Custom.NodeType 属性提供值,否则语法验证将失败。