Monday, August 21, 2006 7:18 AM
by
valmond
Собственное сообщение на ошибку типа XSD в InfoPath
Не первый раз сталкиваюсь с ситуацией, когда ручное редактирование файла manifest.xsf дает более быстрое решение задачи нежели работа мышкой. Но в данном случае я, к сожалению, вообще не знаю как это сделать без редактирования XML файла.
Задача стояла следующая. Отображать собственное сообщение, если тип введенного в текстовое поле значения не соответствует типу определенному в XSD схеме. По умолчанию InfoPath показывает сообщения стандартного вида, в то время как я хотел отображать сообщения содержащие бизнес информацию для пользователя

Собственно решение (применимо как для 2003 так и для 2007 версии InfoPath)
<xsf:xDocumentClass>
...
<xsf:schemaErrorMessages>
<xsf:override match="/XPath/To/Node" >
<xsf:errorMessage type="modeless" shortMessage="Краткое сообщение (максимум 127 символов)">Подробное описание
</xsf:errorMessage>
</xsf:override>
</xsf:schemaErrorMessages>
</xsf:xDocumentClass>
Кстати, достаточно полное описание формата файла manifest.xsf можно найти тут. Хотя этот документ описывает структуру файла для InfoPath 2003, но по большей части все применимо и для 2007 версии.