XML-схема для документов, сопоставленных с таблицей с автоинкрементным ключом - PullRequest
0 голосов
/ 20 октября 2011

Как правильно определить элемент в схеме XML, представляющий первичный ключ, реализованный в виде автоинкрементного целого числа в таблице базы данных?

Например, рассмотрим таблицу:

Person (
 person_id int identity primary key,
 person_name nvarchar(64) null
)

С одной стороныXML-схема должна обеспечивать выполнение ключевого элемента person_id (я полагаю, minOccurs = 1, nillable = false).С другой стороны, новые документы (которые еще предстоит сохранить) должны проверяться без элемента person_id.

1 Ответ

0 голосов
/ 17 ноября 2011

Нужно ли использовать одну и ту же схему для входящей и исходящей (это могут быть отдельные схемы)?

Если предположить, что ответ на первый вопрос - да, я бы поспорил на то, что person_id будет необязательным, посколькувот что это такое.

У нас есть правила, в которых мы используем nillable = "true" в определении элементов XML, которые всегда должны присутствовать в экземплярах, соответствующих схеме.Использование xsi: nil позволяет обрабатывающему приложению различать экземпляры XML, которые непреднамеренно недопустимы для схемы, и экземпляры, которые были сконструированы и отправлены правильно, но в которых отсутствует информация.

Здесь можно использовать nillable,но это кажется противоречивым, поскольку на самом деле информация (в момент загрузки) не требуется.Лично я предпочел бы видеть две схемы - одну для «запроса», другую для «ответа».

Кроме того, какова бизнес-цель проверки схемы?Есть ли причина для пост-загрузки схемы в базу данных?

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