将xsd枚举转换为枚举c#

时间:2020-05-06 14:37:16

标签: c# enums xsd enumeration

在xsd文件中,我使用选项N1和N2进行了类型枚举(如下所示),通过转换为ac#类由一个枚举类型表示,现在在类型枚举中添加了选项N2.1,不能用枚举类型表示为选项(不允许使用点),该怎么办?

谢谢

<xs:simpleType name="NaturaType">
<xs:restriction base="xs:string">
  <xs:enumeration value="N1">
    <xs:annotation>
      <xs:documentation>Escluse ex. art. 15</xs:documentation>
    </xs:annotation>
  </xs:enumeration>
  <xs:enumeration value="N2">
    <xs:annotation>
      <xs:documentation>Non soggette</xs:documentation>
    </xs:annotation>
  </xs:enumeration>
</xs:restriction>

1 个答案:

答案 0 :(得分:0)

一种解决方法是使用 XmlEnumAttribute :

public enum NaturaType
{
    /// <remarks/>
    N1,
    /// <remarks/>
    N2,
    /// <remarks/>
    [XmlEnumAttribute("N2.1")]
    N2_1,
    /// <remarks/>
    [XmlEnumAttribute("N2.2")]
    N2_2,
    /// <remarks/>
    N3,
    ...
}

它用于验证带有 xsd 的 xml。不需要额外的代码。