XML Schema(XSD)数据类型分内置和自定义两类,高频使用仅约10个:xs:string、xs:boolean、xs:decimal、xs:int、xs:positiveInteger、xs:date、xs:dateTime、xs:anyURI、xs:base64Binary、xs:ID/xs:IDREF;自定义简单类型通过<xs:simpleType>配合<xs:restriction>实现枚举、范围、格式等约束;复杂类型<xs:complexType>用于定义含子元素或属性的结构,内部引用简单类型。

XML Schema(XSD)的数据类型分两大类:内置类型和自定义类型。日常开发中,真正高频使用的其实就10个左右,掌握它们就能覆盖99%的业务场景。
最常用内置简单类型(够用、推荐优先记)
这些是项目里几乎必用的基础类型,语义清晰、工具支持好、校验可靠:
- xs:string:通用文本,如姓名、地址、描述
- xs:boolean:布尔值,接受 true/false、1/0(不区分大小写)
- xs:decimal:精确十进制数,red">金额首选(避免浮点误差)
- xs:integer 或 xs:int:整数,适合ID、序号等
- xs:positiveInteger:正整数,数量字段推荐(如 quantity="5")
- xs:date:仅日期,格式必须为 YYYY-MM-DD
- xs:dateTime:完整时间戳,格式如 2025-12-11T09:30:45+08:00
- xs:anyURI:合法URL或URI,自动校验格式
- xs:base64Binary:Base64编码的二进制内容(如图片、文件)
- xs:ID / xs:IDREF:用于文档内唯一标识与引用(类似主键/外键)
怎么定义自定义简单类型
当内置类型不够用时,用 <xs:simpleType> 基于内置类型加约束。核心是 <xs:restriction>:
- 枚举限制:比如性别只能是 male/female/other
- 范围限制:比如年龄 0–150、价格最多2位小数(
fractionDigits="2") - 长度/格式限制:比如身份证号限定18位数字(
pattern="[0-9]{18}")
示例(金额类型):
<xs:simpleType name="MoneyType">
<xs:restriction base="xs:decimal">
<xs:fractionDigits value="2"/>
<xs:totalDigits value="12"/>
</xs:restriction>
</xs:simpleType>
复杂类型不是“数据类型”,但常一起用
<xs:complexType> 本身不叫“数据类型”,而是用来定义含子元素或属性的结构,比如一个 <person> 元素。它内部会用到上面那些简单类型来声明子元素或属性:
- 子元素用
<xs:element type="...">引用内置或自定义类型 - 属性用
<xs:attribute type="..." use="required|optional"> - 常见组合:id(xs:ID)、创建时间(xs:dateTime)、状态(自定义枚举)
基本上就这些。不用硬背全部44种内置类型,先扎实用好那10个,再按需扩展——实际项目里,绝大多数类型需求都能靠组合+限制搞定。










