在进一步处理之前,我必须验证进入BizTalk的XML消息(下面的示例)。 “详细信息”(重复)记录可以在XML消息中以任何顺序排列。
<Document>
<Details>
<Name>ABC</Name>
</Details>
<Details>
<Name>DEF</Name>
</Details>
<Details>
<Name>GHI</Name>
</Details>
<Details>
<Name>JKL</Name>
</Details>
<Details>
<Name>MNO</Name>
</Details>
</Document>
我正在业务流程中循环提取所有“名称”字段值,但无法对其进行验证。
如果XML符合以下两个条件,则该XML应该有效:
答案 0 :(得分:0)
根据我的评论,您将希望以Expression形状执行XPath,例如
nNumberItemsABC = System.Convert.ToInt32(xpath(MsgName,"count(/*[local-name()='Document' and namespace-uri()='']/*[local-name()='Details' and namespace-uri()=''][Name='ABC']/*[local-name()='Name' and namespace-uri()=''])"));
nNumberItemsDEF = System.Convert.ToInt32(xpath(MsgName,"count(/*[local-name()='Document' and namespace-uri()='']/*[local-name()='Details' and namespace-uri()=''][Name='DEF']/*[local-name()='Name' and namespace-uri()=''])"));
nNumberItemsGHI = System.Convert.ToInt32(xpath(MsgName,"count(/*[local-name()='Document' and namespace-uri()='']/*[local-name()='Details' and namespace-uri()=''][Name='GHI']/*[local-name()='Name' and namespace-uri()=''])"));
然后具有一个Decide形状,用于检查强制性条件是否存在(等于1)