3

我想在我的 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 中做到这一点。

想法?提前致谢!

4

2 回答 2

4

如何使用 xsd:annotation/xsd:appinfo 元素来保存错误消息:

 <xs:simpleType name="event_result">
    <xs:restriction base="xs:string">
      <xs:enumeration value="101">
         <xs:annotation><xs:appinfo>Syntax error</xs:appinfo></xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="102">
         <xs:annotation><xs:appinfo>Illegal operation</xs:appinfo></xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="103">
         <xs:annotation><xs:appinfo>Service not available</xs:appinfo></xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
于 2012-12-06T05:00:32.230 回答
2

I don't think xsd supports what you want natively. I've seen implementations like this:

  <xs:simpleType name="event_result">
    <xs:restriction base="xs:string">
      <xs:enumeration value="101, Syntax error"/>
      <xs:enumeration value="102, Illegal operation"/>
      <xs:enumeration value="103, Service not available"/>
    </xs:restriction>
  </xs:simpleType>
于 2011-07-15T22:51:01.380 回答