XML Schema (XSD)数据类型有哪些

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;自定义简单类型通过配合实现枚举、范围、格式等约束;复杂类型用于定义含子元素或属性的结构,内部引用简单类型。

XML Schema(XSD)的数据类型分两大类:内置类型和自定义类型。日常开发中,真正高频使用的其实就10个左右,掌握它们就能覆盖99%的业务场景。

最常用内置简单类型(够用、推荐优先记)

这些是项目里几乎必用的基础类型,语义清晰、工具支持好、校验可靠:

  • xs:string:通用文本,如姓名、地址、描述
  • xs:boolean:布尔值,接受 true/false、1/0(不区分大小写)
  • xs:decimal:精确十进制数,金额首选(避免浮点误差)
  • xs:integerxs: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:用于文档内唯一标识与引用(类似主键/外键)

怎么定义自定义简单类型

当内置类型不够用时,用 基于内置类型加约束。核心是

  • 枚举限制:比如性别只能是 male/female/other
  • 范围限制:比如年龄 0–150、价格最多2位小数(fractionDigits="2"
  • 长度/格式限制:比如身份证号限定18位数字(pattern="[0-9]{18}"

示例(金额类型):


  
    
    
  

复杂类型不是“数据类型”,但常一起用

本身不叫“数据类型”,而是用来定义含子元素或属性的结构,比如一个 元素。它内部会用到上面那些简单类型来声明子元素或属性:

  • 子元素用 引用内置或自定义类型
  • 属性用
  • 常见组合:id(xs:ID)、创建时间(xs:dateTime)、状态(自定义枚举)

基本上就这些。不用硬背全部44种内置类型,先扎实用好那10个,再按需扩展——实际项目里,绝大多数类型需求都能靠组合+限制搞定。