Как поставить «обязательное» поле при создании XSD? - PullRequest
0 голосов
/ 20 февраля 2012

Я записываю какой-то XSD-файл для связи веб-службы между приложением и sharepoint .. Я пытаюсь сделать мои параметры «ТРЕБУЕМЫМИ», но даже если я установлю minOccurs равным 1, они могут быть не указаны ..

Как я могу решить эту проблему? Вот один из моих XSD:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="RemoveGroup"
targetNamespace="http://tempuri.org/RemoveGroup.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/RemoveGroup.xsd"
xmlns:mstns="http://tempuri.org/RemoveGroup.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:element name="RemoveGroup">
<xs:complexType>
  <xs:sequence>
    <xs:element name="tt_group_id" type="xs:long" />
    <xs:element name="tt_network_id" type="xs:string"/>
  </xs:sequence>
  </xs:complexType>
 </xs:element>
 </xs:schema>

Я надеюсь, что есть способ не записывать хаундред "if (input.Parameter! = Null)" ...

1 Ответ

1 голос
/ 20 февраля 2012

Использование minOccurs="1" на уровне <element/> или <sequence/> является правильным решением.Какую конкретную ошибку вы получаете?

ОБНОВЛЕНИЕ

На самом деле в <sequence/> синтаксических анализаторах следует ожидать ровно один экземпляр элемента

ОБНОВЛЕНИЕ

Ваш синтаксический анализатор может выдавать ошибки как события, которые необходимо обработать, чтобы перехватить ошибки - многие распространенные анализаторы имеют такое поведение.

Что-то, что может вызвать ошибку, является пустым значением в простом типе long - этот тип не допускает пропусков.Если вы хотите указать, что пустые значения разрешены, вы должны использовать nil=true из пространства имен http://www.w3.org/2001/XMLSchema-instance.

...