2.5.4. 根据限制定义类型


概述

XML Schema 允许您通过限制 XML Schema 简单类型可能的值来创建新类型。例如,您可以定义一个简单的类型 SSN,字符串为正好 9 个字符。通过限制使用 simpleType 元素来定义简单类型的新类型。

按限制划分的定义需要三个因素:

  1. 新类型的名称由 simpleType 元素的 name 属性指定。
  2. 新类型派生自的简单类型(称为 基本类型 )是在 limit 元素中指定。请参阅 “指定基本类型”一节
  3. 名为 facets 的规则,定义基本类型的限制被定义为 限制 元素的子项。请参阅 “定义限制”一节

指定基本类型

基础类型是被限制在定义新类型中的类型。它使用 限制 元素来指定。limit 元素是 simpleType 元素的唯一子项,它有一个属性 base,用于指定基本类型。基础类型可以是任何 XML Schema 简单的类型。

例如,若要通过限制 xsd:int 的值来定义一个新类型,您可以使用类似 例 2.14 “使用 int 作为基本类型” 所示的定义。

例 2.14. 使用 int 作为基本类型

<simpleType name="restrictedInt">
  <restriction base="xsd:int">
    ...
  </restriction>
</simpleType>

定义限制

定义对基本类型的限制的规则被称为 facets。facets 是带有一个属性( )的元素,用于定义 facet 的强制实施方式。可用因素及其 有效值 设置取决于基本类型。例如,xsd:string 支持六个问题,包括:

  • length
  • minLength
  • maxLength
  • pattern
  • whitespace
  • enumeration

每个 facet 元素都是 限制 元素的子项。

示例

例 2.15 “SSN 简单的类型描述” 显示 SSN 的简单类型示例,它代表一个社交安全编号。生成的类型是 xxx-xx-xxxx 的格式字符串。<SSN>032-43-9876<SSN> 是此类型的元素的有效值,但 <SSN>032439876</SSN> 不是。

例 2.15. SSN 简单的类型描述

<simpleType name="SSN">
  <restriction base="xsd:string">
    <pattern value="\d{3}-\d{2}-\d{4}"/>
  </restriction>
</simpleType>
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.