如何在 xsd 中使用枚举
本文关键字:枚举 xsd | 更新日期: 2023-09-27 18:35:56
我有一个xml文件,其中包含许多文章的详细信息。
到目前为止,我已经创建了XML和XSD - 这是XSD:
<xs:simpleType name="ArticleKey">
<xs:restriction base="xs:string">
<xs:enumeration value="Key1" />
<xs:enumeration value="Key2" />
</xs:restriction>
</xs:simpleType>
<xs:element name="Articles">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Article">
<xs:complexType>
<xs:sequence>
<xs:element name="Key" type="ArticleKey" />
<xs:element name="Title" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
我还手动创建了类对象:
public class Article
{
public ArticleKey Key { get; set; }
public string Title { get; set; }
}
为了做到这一点,我还必须像这样单独创建枚举"ArticleKey":
public enum ArticleKey
{
Key1,
Key2
}
但是,这显然会导致在 XSD 中维护重复的枚举值,并作为独立枚举进行维护。
有没有办法将两者联系起来并避免维护问题,或者这是否很容易?
如果你单独维护它们,那么我认为这是你得到的一样好。
但是,作为一种替代方法,您能否从 c# 类生成所有 xsd,从而消除所有重复工作。
您可以使用 xsd.exe 来执行此操作(从 VS 安装中)。这个问题更全面地涵盖了它。