Ограничение значений с помощью enum и принятие значения по умолчанию, если ничего не указано - PullRequest
0 голосов
/ 11 октября 2019

У меня есть требование ограничить значения в XSD, используя enum. Однако мне также нужно убедиться, что, если ни одно из значений enum не введено, по умолчанию используется настроенное значение.

<complexType name="PaymentRequest">
      <sequence>
            <element name="usserName" type="string" maxOccurs="1"
                     minOccurs="0" />
            <element name="accountNo" type="int" maxOccurs="1"
                     minOccurs="1" />
            <element name="amount" type="double" maxOccurs="1"
                     minOccurs="1" />
            <element name="paymentReference" type="string" maxOccurs="1" minOccurs="0"/>
            <element name="transactionReference" type="string" maxOccurs="1" minOccurs="0" />
            <element name="paymentType" type="tns:PaymentType" maxOccurs="1" minOccurs="0"/>
        </sequence>
    </complexType>


<simpleType name="paymentType">
        <restriction base="string">
            <enumeration value="GENERAL_POST_PAYMENT"/>
            <enumeration value="SPECIAL_POST_PAYMENT"/>
        </restriction>
</simpleType>   

В приведенном выше примере мне нужно сделать SPECIAL_POST_PAYMENT как default если не указано значение.

1 Ответ

1 голос
/ 11 октября 2019

Вы можете сделать это следующим образом:

<element name="paymentType" type="tns:PaymentType" maxOccurs="1" minOccurs="0" default=""SPECIAL_POST_PAYMENT""/>

Короче говоря, это невозможно на уровне enumeration, но вы можете поставить enumeration value в качестве значения default на element уровень.

...