对具有相同名称的记录进行分组,而不在xml函数中明确命名每个记录

时间:2014-11-27 14:32:01

标签: xml function

首先请接受我的道歉。我以前没有使用XML的经验。我获得了一些具有XML配置文件的软件,该软件获取数据并查找匹配的项目。

问题:用户可以手动匹配记录,但没有任何内容可以阻止他们匹配名称不匹配的记录。

允许用户手动匹配记录的语法是:

<action name="ACCEPT">    
    <rules>     
        <rule>
            <![CDATA[${AtLeastOneOfEach} and (abs(${TotalNetAmount}) <= decimalLimit("NetAmountLimit"))]]>
        </rule>     
    </rules>  
</action>

为了解决这个问题,我已经将一些示例数据加载到测试环境中,其中一个匹配包含一个名为&#34; John&#34;的客户端。然后我创建了一个这样的函数:

<function>
    <name>AllAreJohn</name>
    <description>match contains all clients called John</description>
    <rule>
        <![CDATA[(all have Client_Name="John") ]]>
    </rule>
</function>

使用此功能,我已将手动操作编辑为:

<action name="ACCEPT">    
    <rules>     
        <rule>
            <![CDATA[${AllAreJohn} and (abs(${TotalNetAmount}) <= decimalLimit("NetAmountLimit"))]]>
        </rule>     
    </rules>  
</action>

通过我的例子,上面似乎有效 - 客户名称是&#34; John&#34; (并满足其他标准)。

问题:是否有办法重新编写XML函数,这样我就不必每次都声明客户端名称。我基本上希望该函数确保只有在所有客户端名称相同时才能形成组。

希望这是有道理的。非常感谢您提前寻找可能提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

重新使用我在下面提到的配置中已经包含的一些代码,这实现了我原本希望做的事情。

<function>
<name>AllSameName</name>
<description>match contains all of the same client name</description>
<rule>
<![CDATA[(same Client_Name)]]>
</rule>
</function>