XmlWriter - Запись атрибута xsi: nil = true - PullRequest
4 голосов
/ 05 июля 2011

У меня проблема с формой InfoPath 2010, в которой есть какой-то код. Цель моей формы - собрать данные от пользователя и, используя предоставленные ответы, автоматически заполнить ряд необходимых задач. Эти задачи заполняются в повторяющемся разделе формы. Мой код содержит логику для автоматического заполнения каждой записи в повторяющемся разделе. Я использую класс XMLWriter и методы WriteStringElement для заполнения каждого из полей в повторяющемся разделе.

Первоначально вся эта логика выглядит так, как ожидается, разделы заполняются, как и ожидалось. Однако теперь я понимаю, что существует проблема с полями, записанными в форму XML.

Использование рабочего процесса. Я создаю задачи SharePoint для каждого из элементов в повторяющемся разделе. После завершения задачи я записываю статус и дату завершения обратно в форму. У меня проблема в том, что я явно не заполняю поле CompletedDate при первоначальной настройке задач в форме. Я предполагал, что поле будет автоматически добавлено в форму XML с атрибутом xsi: nil = true. Вместо этого его вообще нет в XML, и мой рабочий процесс выдает ошибку «Ссылка на объект не установлена» при поиске узла «faCompletedDate». Проверяя XML формы, его там нет.

Решение, которое мне нужно, заключается в том, чтобы выписать атрибут xsi: nil для faCompletedDate в коде формы, я не уверен, как это сделать.

Я пытался:

writer.WriteStartElement("faCompletedDate", myNs)
writer.WriteAttributeString("xsi", "nil", xsiNs, "true")
writer.WriteEndElement()

но при этом при проверке схемы выдается ошибка, не относящаяся к типу данных.

Может кто-нибудь помочь мне решить эту проблему и предложить наилучший подход к использованию.

1 Ответ

1 голос
/ 12 июля 2011

Хорошо, мне удалось решить эту проблему.Похоже, я пропустил параметр менеджера пространства имен в одном из моих операторов XMlWriter.Обновление позволило мне написать полный раздел (ы), как и ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...