Я использую Delphi, и я использую файл wsdl от другой компании, чтобы настроить мой прокси-класс для использования их данных из их веб-службы. Файл wsdl содержит следующее:
<xsd:simpleType name="departStatus">
<xsd:annotation>
<xsd:documentation>Enumerates allowable departure statuses (DEPARTED, NOT-DEPARTED)</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="DEPARTED"/>
<xsd:enumeration value="NOT-DEPARTED"/>
</xsd:restriction>
</xsd:simpleType>
Когда я генерирую прокси-класс, я получаю следующее:
departStatus = (
DEPARTED,
[System.Xml.Serialization.XmlEnumAttribute('NOT-DEPARTED')]
NOTDEPARTED);
Который не компилируется, пока я не удалю строку, начинающуюся с [System.xml ..., и он не распознает " NOT-DEPARTED "как допустимое значение для leaveStatus. Если я изменю "NOT-DEPARTED" на "NOT_DEPARTED" в wsdl-файле и любом входящем xml-файле, он будет работать нормально, но компания, которая это установила, настаивает на том, что "NOT-DEPARTED" является действительным и не будет его менять. Почему неправильно настроено перечисление leaveStatus? Есть идеи, как это обойти? Заранее благодарим за любую помощь.