Я хотел бы иметь перечисление в моем XSD, которое указывает набор пар имя / значение, соответствующих кодам ошибок и связанным описаниям. E.g.:
101 Syntax error
102 Illegal operation
103 Service not available
И так далее. Я могу построить простую структуру, event_result, чтобы держать это:
<xs:complexType name="event_result">
<xs:sequence>
<xs:element name="errorcode" type="xs:integer"/>
<xs:element name="errormessage" type="xs:string"/>
</xs:sequence>
</xs:complexType>
Эта запись будет использоваться в отчете об исключении (как элемент "result"):
<xs:complexType name="event_exception">
<xs:sequence>
<xs:element name="event_id" type="xs:integer"/>
<xs:element name="result" type="event_result"/>
<xs:element name="description" type="xs:string"/>
<xs:element name="severity" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
Теперь выгода в том, что я хотел бы определить глобальное перечисление со всеми известными кодами исключений и их описаниями. В идеале я хотел бы, чтобы это было частью XSD, а не отдельным файлом данных XML. Я не уверен, как определить перечисление, члены которого являются сложным типом, или как выполнить ту же задачу другим способом. В языке программирования это был бы простой двумерный массив, и он был бы прост в XML, но не уверен, как это сделать в XSD.
Мысли? Заранее спасибо!