XSD 杂项 数据类型

XSD 里那些不属于「字符串」「数值」「日期」三大类的类型,通常被称为「杂项类型」,但在真实项目里很多超级好用、甚至是必备的。下面直接给你一份最精华、最实用的 XSD 杂项类型速查表 + 推荐写法,看完这张表你就彻底无敌了。

类型名称含义 & 典型用途推荐指数经典实例写法真实项目场景举例
xs:boolean真/假5 starstrue / false / 1 / 0开关、是否启用、是否删除
xs:base64BinaryBase64 编码的二进制文件5 stars“SGVsbG8=”图片、文件上传、证书
xs:hexBinary十六进制二进制2 stars“48656C6C6F”极少用(MD5/SHA1 可考虑)
xs:anyURIURL、路径、URN5 stars“https://example.com/a.jpg”、”../img/”图片地址、跳转链接、静态资源
xs:QName带命名空间的前缀名称3 stars“po:purchaseOrder”WebService、动态类型反射(一般不用)
xs:NOTATION几乎没人用0 stars忽略
xs:normalizedString替换换行/制表符为空格(不建议)1 star永远用 xs:token 代替
xs:token去首尾空格 + 压缩连续空格(字符串之王)5 stars” 张三 \n 李四 ” → “张三 李四”所有名字、标题、关键词、搜索词
xs:languageRFC 语言代码4 stars“zh-CN”、”en-US”、”fr”多语言切换、i18n
xs:ID文档内唯一标识5 stars“user_123”XML 内联 ID(类似 HTML id)
xs:IDREF / xs:IDREFS引用 ID(多个用空格分隔)4 stars“user_123” / “user1 user2”实现父子关系、关联引用
xs:NMTOKEN不能有空格的 token(类似枚举值)3 stars“active”、”pending”状态码、类型标识
xs:NMTOKENS多个 NMTOKEN3 stars“read write delete”权限列表
xs:byte-128 ~ 1271 star极少用用 xs:int 代替
xs:unsignedInt0 ~ 42 亿3 stars4294967295点击量、播放量(够用就行)
xs:unsignedLong0 ~ 1.8×10¹⁹4 stars18446744073709551615超大计数器、雪花ID低64位

真实项目永远只用这 8 个杂项类型就打遍天下

业务场景永远写这个类型推荐额外限制(直接复制)
是否启用、是否删除xs:boolean默认 default=”false”
图片/附件上传xs:base64Binary+ maxLength 限制大小(5MB ≈ 7000000 字符)
商品图、头像、跳转链接xs:anyURI+ pattern 强制 https 或相对路径
所有名字、标题、关键词xs:token+ maxLength=”100″
语言切换xs:language
XML 内唯一 IDxs:ID
关联父级/关联用户xs:IDREF
权限列表、标签xs:NMTOKENS 或 xs:token + pattern“read write delete”

实战最常用写法(直接复制进项目)

<!-- 1. 是否启用(最标准) -->
<xs:element name="enabled" type="xs:boolean" default="true"/>

<!-- 2. 图片 base64(限制 5MB) -->
<xs:element name="photo">
  <xs:simpleType>
    <xs:restriction base="xs:base64Binary">
      <xs:maxLength value="7000000"/>   <!-- ≈5MB -->
    </xs:restriction>
  </xs:simpleType>
</xs:element>

<!-- 3. 外链图片地址(强制 https) -->
<xs:simpleType name="HttpsUrl">
  <xs:restriction base="xs:anyURI">
    <xs:pattern value="https://.*"/>
  </xs:restriction>
</xs:simpleType>

<!-- 4. 所有标题、用户名、搜索词(永远用 token) -->
<xs:simpleType name="Title">
  <xs:restriction base="xs:token">
    <xs:minLength value="1"/>
    <xs:maxLength value="200"/>
  </xs:restriction>
</xs:simpleType>

<!-- 5. 多语言代码 -->
<xs:element name="lang" type="xs:language" default="zh-CN"/>

<!-- 6. 权限列表 -->
<xs:element name="permissions" type="xs:NMTOKENS"/>
<!-- 示例:<permissions>read write delete</permissions> -->

终极记忆口诀(贴在显示器上)

你想表达什么永远只写这个类型
是/否、开关xs:boolean
图片、文件上传xs:base64Binary
网址、图片链接xs:anyURI
名字、标题、关键词xs:token
语言 zh-CN / en-USxs:language
XML 内唯一 IDxs:ID
引用另一个元素的 IDxs:IDREF / xs:IDREFS
其他全部忽略

记住:杂项类型里只有 boolean、base64Binary、anyURI、token、language、ID/IDREF 是你这辈子会真正用到的,其余全部可以当不存在!

需要我再甩你一套「用户管理」「商品上传」「权限系统」三套完整的杂项字段 XSD 模板吗?秒发!

文章已创建 2838

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部