

新闻资讯
技术学院XSD中枚举类型通过约束基类型(如xs:string)并用列举合法值,需注意大小写敏感、不可重复、value为字面量;可复用命名类型或内联定义;数值型枚举虽合法但工具兼容性差,推荐字符串形式。
在XSD中定义枚举类型,核心就是用 配合 对简单类型做取值限制。它不是独立类型,而是对已有类型(比如 xs:string 或 xs:int)的约束,让元素或属性只能取预设的几个值。
先定义一个可复用的简单类型,用 包裹,内部通过 指定基类型,再逐个列出允许值:
xs:string,也支持 xs:int、xs:decimal 等(但注意:.NET 的 Xsd.exe 默认只把字符串型枚举转为 C# enum) 就是一个合法选项,value 必须是字面量,不能带表达式或变量示例:定义颜色枚举
有两种常用方式,取决于你是否需要复用该类型:
ColorEnum),直接在元素里用 type 属性引用:可以,但要小心类型匹配和工具兼容性:
是合法的——它仍是字符串字面量,只是内容是数字字符 + base="xs:int" 也是合法的,此时校验时会按整数比对base="xs:string" 的枚举自动生成 C# enum;数值型枚举通常被忽略或转为常量字段实际用的时候容易卡在这几处:
SAXParseException 或类似校验失败"New York")没问题,但生成 C# 时可能被自动转成 New_York 或加 [XmlEnum("New York")] 特性 里嵌套其他元素或属性——它只接受 value 属性default="Red" 到元素声明上基本上就这些。枚
举约束本质是“白名单机制”,写清楚、引对地方、校验时自然生效。