InfoPath 2010フォームに問題があり、その背後にコードがいくつかあります。私のフォームの目的は、ユーザーからデータを収集し、提供された回答を使用して、多くの必要なタスクを自動入力します。これらのタスクは、フォーム上の繰り返しセクションに入力されます。私のコードの背後には、繰り返しセクションの各エントリを自動入力するロジックが含まれています。 XMLWriterクラスとWriteStringElementメソッドを使用して、繰り返しセクションの各フィールドに値を設定しています。XmlWriter - xsi:nil = true属性を書き込む
最初、このロジックはすべて期待どおりに動作するように見えますが、セクションは期待どおりに配置されます。しかし、私は今、フォームXMLに書かれたフィールドに問題があることを認識しています。
ワークフローを使用して、繰り返しセクション内の各アイテムに対してSharePointタスクを生成しています。タスクが完了した後、私は完了の日付をフォームに書き戻しています。私が持っている問題は、もともとフォームにタスクを設定していたときに、私はCompletedDateフィールドに値を設定していないことです。私はフィールドがxsi:nil = true属性でフォームXMLに自動的に追加されると仮定しました。代わりに、XMLにはまったく含まれていません。ノードfaCompletedDateを探すときに、ワークフローでオブジェクト参照が設定されていないというエラーがスローされます。フォームのXMLをチェックすると、そこにはありません。
解決策私が必要と思う解決策は、フォームの背後にあるコードで、fa:faCompletedDateにxsi:nil属性を書き出すことです。これがどのように行われているのかわかりません。
writer.WriteStartElement("faCompletedDate", myNs)
writer.WriteAttributeString("xsi", "nil", xsiNs, "true")
writer.WriteEndElement()
をが、これは、スキーマ検証が非データ型エラーを発見したスロー:
私がしようとしました。
誰かがこの問題に対処するのに役立ち、使用するには最良の方法を提案できますか?
私はこれを解決することができました。私はXMlWriterステートメントの1つで名前空間マネージャのパラメータを見逃していたようです。これを更新することで、期待通りに全セクションを書き出すことができました。 – Grant80