powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / xsd: unique с пустыми значениями
4 сообщений из 4, страница 1 из 1
xsd: unique с пустыми значениями
    #37303126
zvb73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется такая схема:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="DocumentElement">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="entities">
          <xs:complexType>
            <xs:sequence>
              <xs:element minOccurs="0" name="name" type="xs:string" />
              <xs:element minOccurs="0" name="surname" type="xs:string" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
    <xs:unique name="unique1">
      <xs:selector xpath="entities" />
      <xs:field xpath="surname" />
    </xs:unique>
  </xs:element>
</xs:schema>

Как сделать, чтобы ограничение unique на surname не распространялось на пустые значения?
Т.е. чтобы прокатывал такой xml:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<?xml version="1.0" standalone="yes"?>
<DocumentElement>
  <entities>
    <name>aaa</name>
    <surname>bbbbb</surname>
  </entities>
  <entities>
    <name>ccc</name>
  </entities>
  <entities>
    <name>ddd</name>
  </entities>
</DocumentElement>
...
Рейтинг: 0 / 0
xsd: unique с пустыми значениями
    #37303152
zvb73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас возникает такая ситуация: когда в C# читаю это файл с помощью System.Xml.XmlReader, то всё хорошо.
При попытке загрузки в DataTable через ReadXml возникет эксепшн
Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.
...
Рейтинг: 0 / 0
xsd: unique с пустыми значениями
    #37303326
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSXML говорит, что документ валиден и я с ним согласен. Если бы вместо <xsd:unique> у Вас стояло <xsd:key> - тогда была бы ошибка. А так все правильно.
...
Рейтинг: 0 / 0
xsd: unique с пустыми значениями
    #37305170
zvb73
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таки да, с точки зрения XML всё в порядке, а вот System.Data.DataColumn это не поддерживает:

http://www.pcreview.co.uk/forums/datacolumns-unique-property-applies-also-null-values-t1246397.html
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
DataTable dt = new DataTable();
DataColumn dc = new DataColumn("Blah", System.Type.GetType("System.String"));
dc.Unique = true;
dc.AllowDBNull = true;
dt.Columns.Add(dc);
for(int i=0;i<5;i++)
{
 DataRow dro = dt.NewRow();
 dt.Rows.Add(dro);
}
This will blow up on the second pass as it stands

Очередная задрочка от MS...
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / xsd: unique с пустыми значениями
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]