Я пытаюсь создать базу данных XML для сотрудников, и у меня проблемы со схемой.Первичный ключ XML-схемы
Для каждого сотрудника у меня есть четыре элемента: имя, фамилия, идентификатор и адрес электронной почты. Как я могу установить идентификатор как первичный ключ и адрес электронной почты как уникальный?
Я попытался это для первичного ключа:
<xs:key msdata:PrimaryKey="true" type="xs:string" name="ID"/>
, но это не работает. Это все мой XML-код:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="employees">
<xs:complexType>
<xs:sequence>
<xs:element name="employee">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Name"/>
<xs:element type="xs:string" name="Surname"/>
<xs:element type="xs:string" name="ID"/>
<xs:element type="xs:string" name="e-mail"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:key name="empl-key">
<xs:selector xpath="employee"/>
<xs:field xpath="@ID"/>
</xs:key>
</xs:element>
</xs:schema>
Спасибо заранее.
Вы уверены, что это _all_ схема? XML, который вы вставили, не является корректным (по крайней мере, вам не хватает цитаты после 'elementFormDefault =" qualified'), и кажется странным иметь 'elementFormDefault' в схеме без' targetNamespace'. –
Я рою, цитата после elementFormDefault = "квалифицировала ее отсутствующую из-за ошибки, когда я вставлял ее здесь. Это верно в моем коде. Я новичок в XML, поэтому я использую вещи, которые я не понимаю точно их значение. –
Кроме того, ваша текущая схема требует _быстро одного элемента 'employee' в' employees', вам нужно добавить minOccurs и/или maxOccurs, чтобы разрешить больше (или меньше) одного. –