「|」と組み合わせて条件付きXPath式を相互に除外して、2つを使用しようとしています コマンドを使用して、適切な XML ノードを評価します。InfoPath 2010 を使用しています。
以下のサンプル XML を使用してフォームを開くと、「ルール」にループが存在することが通知されます。つまり、XPath 式の 1 つがターゲット ノード間で無期限にフリップフロップしています。何が間違っていたのかわかりません。
XPath 式は次のとおりです。
//my:SPIF_Info_Repeater[1 = count(following-sibling::my:SPIF_Info_Repeater)]//my:SPIF_Chargeable_Object_Number[text()] | //my:Chargeable_Object_Number[text() and not(//my:SPIF_Info_Repeater[1 = count(following-sibling::my:SPIF_Info_Repeater)]//my:SPIF_Chargeable_Object_Number[text()])]
式がフォームで評価されているとき、 InfoPath は<my:SPIF_Chargeable_Object_Number>
"Current" ノード値として を使用すると思います。これは、そのノードのデフォルト値です。
これが私のターゲット XML です。ネストされていることをお詫びします。機密性の高い可能性のあるものはすべて取り除きましたが、関連するノード構造はそのまま残しました。
<?xml version="1.0"?><?mso-infoPathSolution PIVersion="1.0.0.0" href="" name="urn:schemas-microsoft-com:office:infopath:PPIF-Forms:-myXSD-2011-05-05T19-56-08" productVersion="14.0.0" solutionVersion="1.0.0.1090" ?><?mso-application progid="InfoPath.Document" versionProgid="InfoPath.Document.2"?>
<?mso-infoPath-file-attachment-present?>
<my:myFields xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:dfs="http://schemas.microsoft.com/office/infopath/2003/dataFormSolution" xmlns:pc="http://schemas.microsoft.com/office/infopath/2007/PartnerControls" xmlns:tns="http://microsoft.com/webservices/SharePointPortalServer/UserProfileService" xmlns:s1="http://microsoft.com/wsdl/types/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ma="http://schemas.microsoft.com/office/2009/metadata/properties/metaAttributes" xmlns:d="http://schemas.microsoft.com/office/infopath/2009/WSSList/dataFields" xmlns:q="http://schemas.microsoft.com/office/infopath/2009/WSSList/queryFields" xmlns:dms="http://schemas.microsoft.com/office/2009/documentManagement/types" xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2011-05-05T19:56:08" xmlns:xd="http://schemas.microsoft.com/office/infopath/2003" xml:lang="en-us">
<my:MasterSection>
<my:ActualProjectHider/>
<my:SPIF_Hider>
<my:SPIF_Info_Repeater_Group>
<my:SPIF_Info_Repeater>
<my:SPIF_Chargeable_Line_Items_Group>
<my:SPIF_Chargeable_Line_Items>
<my:Amount_Hider/>
</my:SPIF_Chargeable_Line_Items>
<my:SPIF_Chargeable_Line_Items>
<my:Amount_Hider/>
</my:SPIF_Chargeable_Line_Items>
<my:SPIF_Chargeable_Line_Items>
<my:Amount_Hider/>
</my:SPIF_Chargeable_Line_Items>
<my:SPIF_Chargeable_Line_Items>
<my:Amount_Hider/>
</my:SPIF_Chargeable_Line_Items>
<my:SPIF_Chargeable_Line_Items>
<my:Amount_Hider/>
</my:SPIF_Chargeable_Line_Items>
<my:SPIF_Chargeable_Line_Items>
<my:Amount_Hider/>
</my:SPIF_Chargeable_Line_Items>
<my:SPIF_Chargeable_Line_Items>
<my:Amount_Hider/>
</my:SPIF_Chargeable_Line_Items>
<my:SPIF_Chargeable_Line_Items>
<my:Amount_Hider/>
</my:SPIF_Chargeable_Line_Items>
</my:SPIF_Chargeable_Line_Items_Group>
<my:SPIF_Data>
<my:SPIF_Chargeable_Object_Number>APPLES</my:SPIF_Chargeable_Object_Number>
</my:SPIF_Data>
</my:SPIF_Info_Repeater>
<my:SPIF_Info_Repeater>
<my:SPIF_Chargeable_Line_Items_Group>
<my:SPIF_Chargeable_Line_Items>
<my:Amount_Hider/>
</my:SPIF_Chargeable_Line_Items>
<my:SPIF_Chargeable_Line_Items>
<my:Amount_Hider/>
</my:SPIF_Chargeable_Line_Items>
<my:SPIF_Chargeable_Line_Items>
<my:Amount_Hider/>
</my:SPIF_Chargeable_Line_Items>
<my:SPIF_Chargeable_Line_Items>
<my:Amount_Hider/>
</my:SPIF_Chargeable_Line_Items>
</my:SPIF_Chargeable_Line_Items_Group>
<my:SPIF_Data>
<my:SPIF_Chargeable_Object_Number>BANANAS</my:SPIF_Chargeable_Object_Number>
</my:SPIF_Data>
</my:SPIF_Info_Repeater>
</my:SPIF_Info_Repeater_Group>
</my:SPIF_Hider>
<my:ProjectTypeInfo/>
<my:AdminPass>
<my:ViewSwitcher/>
<my:AdminPassText></my:AdminPassText>
</my:AdminPass>
<my:SPIFInitErrorHider/>
</my:MasterSection>
</my:myFields>
この問題を特定するのにかなりの時間がかかりました。XPath 式に、ノード間の反復を引き起こしている何かがあるに違いありません。