XML Schema中的数据类型有哪些 xsd:string, xsd:integer

XML Schema(XSD)内置数据类型分为字符串、数值、日期时间、布尔及二进制等类:字符串类型如xsd:string、xsd:token支持不同空白处理;数值类型如xsd:integer、xsd:decimal区分精度与范围;日期时间类型严格遵循ISO 8601;布尔类型接受true/false/1/0;二进制类型支持base64Binary和hexBinary编码。

XML Schema(XSD)定义了丰富的内置数据类型,用于约束XML文档中元素和属性的取值。除了 xsd:stringxsd:integer,还有大量常用类型,按语义可分为几类:

字符串相关类型

用于文本内容,支持不同长度、模式或格式限制:

  • xsd:string:任意Unicode字符串,无长度限制
  • xsd:normalizedString:不包含换行、制表符、回车(自动归一化空白)
  • xsd:token:进一步去除首尾空格、合并内部连续空格(如HTML中的class属性值)
  • xsd:Namexsd:NCName:符合XML命名规则的标识符(如元素名、属性名),NCName不允许冒号
  • xsd:IDxsd:IDREFxsd:IDREFS:用于唯一标识与引用(类似HTML中的id和href)

数值类型

区分精度、范围和是否允许小数点,不可混用:

  • xsd:integer:任意精度整数(正、负、零),是 xsd:decimal 的子类型
  • xsd:decimal:带小数位的精确十进制数(如价格、测量值)
  • xsd:floatxsd:double:IEEE 754浮点数,适合科学计算,但有精度误差
  • xsd:bytexsd:shortxsd:intxsd:long:有符号整数,带固定取值范围(如 xsd:int 是 -2147483648 到 2147483647)
  • xsd:unsignedBytexsd:unsignedShort 等:对应无符号版本

日期时间类型

严格按ISO 8601格式解析和验证:

  • xsd:dateTime:如 2025-10-05T14:30:00Z
  • xsd:date:仅日期,如 2025-10-05
  • xsd:time:仅时间,如 14:30:00+08:00
  • xsd:duration:表示时间间隔,如 P2Y6M3DT12H(2年6月3天12小时)
  • xsd:gYearxsd:gMonthxsd:gDay 等:部分日期组件

布尔、二进制及其他实用类型

覆盖常见业务场景的基本需求:

  • xsd:boolean:只接受 truefalse10(大小写不敏感)
  • xsd:base64Binaryxsd:hexBinary:分别用于Base64和十六进制编码的二进制数据
  • xsd:anyURI:格式合法的URI(如 https://example.commailto:test@example.com
  • xsd:QName:限定名(含命名空间前缀),如 xs:string
  • xsd:NOTATION:用于声明外部非XML数据类型(较少直接使用)