我想在我的XSD中有一个枚举,它指定了一组与错误代码和相关描述相对应的名称/值对。例如:XSD:有没有办法从名称/值对构建枚举?
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>
这个记录将在一个报告记录中使用(作为“结果”元素):
<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中执行此操作。
想法?提前致谢!
谢谢,Otavio。如果没有更好的办法,我会这么做......我只是希望有这样的事情。 ;) –
XSD可以对单个元素定义限制,但是对于跨元素的限制没有支持(我知道),我想这超出了范围。但是,您可以通过建立约定并创建位置对应的单独限制来“伪造”,以便您可以使用相同的索引来检索密钥和值。它只是不看犹太教。 –
由于无论如何都会以(Ruby或C#)代码处理一个条目的实际内容,所以我可能只是使用一个简单的约定,如带有管道符号分隔符的代码|描述。 Ruby或C#可以轻松地将其与字符串提取功能分开。我并不需要XML来理解语义。所以这真的不是一种方法的不好... –