XML Schema内置类型详解:基础与派生

需积分: 16 2 下载量 106 浏览量 更新于2024-10-12 收藏 73KB DOC 举报
"XML Schema内置类型" XML Schema是一种强大的XML文档结构定义语言,它通过一套预定义的内置类型来约束和验证XML文档的内容。这些类型分为基础类型和派生类型,帮助确保数据的一致性和准确性。 基础类型是XML Schema解析器直接支持的原始数据类型,它们提供了对各种数据的基本表示。以下是一些主要的基础类型及其描述和示例: 1. **string** - 表示XML中任何合法的字符串,如 "ljgfddd"。 2. **boolean** - 代表二进制逻辑,取值可以是 true、false、1 或 0。 3. **number** - 表示任意精度的十进制数,如 -1.52、0 或 1.2E2。 4. **float** - 32位精度的浮点实数,范围从 -3.4 * 10^(-38) 到 3.4 * 10^(38)。 5. **double** - 64位精度的浮点实数,其范围更广泛,具体范围从 -1.7 * 10^(-308) 到 1.7 * 10^(308)。 6. **decimal** - 类似于 number,但具体的区别可能在于精度和处理方式,未详细说明。 7. **duration** - 使用 PnYnMnDTnHnMnS 格式表示的时间段,例如 "P1Y10M1DT20:25:30"。 8. **dateTime** - 表示日期和时间,格式为 CCYY-MM-DDThh:mm:ss,如 "2002-05-14T15:23:45"。 9. **time** - 只包含时间部分,如 "14:12:30"。 10. **date** - 只包含日期部分,如 "2010-04-15"。 11. **gYearMonth** - 只包含年月部分,如 "2010-10"。 12. **gYear** - 只包含年份,如 "2010"。 13. **gMonthDay** - 只包含月份和日,如 "-16-04"。 14. **gDay** - 只包含日,如 "-16"。 15. **gMonth** - 只包含月份,如 "-12"。 16. **hexBinary** - 表示16进制编码的二进制数据,如 "111100110100"。 17. **base64Binary** - 表示base64编码的二进制数据,如 "111110110111"。 18. **AnyURI** - 表示URI,可以是相对路径或绝对路径,如 "http://www.163.com"。 19. **QName** - 表示XML命名空间的Qname,如 "xsd:element"。 20. **Notation** - 是一个抽象的XML NOTATION类型,不能直接在模式中使用,通常用于派生其他类型。 派生类型则是通过对基础类型进行限制或扩展来创建的。例如,可以使用 `maxLength`、`minLength`、`pattern` 等属性来限制 `string` 类型,或者使用 `minInclusive`、`maxExclusive` 等属性来限制数值类型。派生类型可以提供更加精细的数据约束,以适应特定应用场景的需求。 例如,派生类型 `normalizedString` 是基于 `string` 的,它去除了字符串中的空白字符。再如,派生类型 `integer` 是基于 `decimal` 的,不允许包含小数点。这样的派生允许我们在设计XML模式时更好地控制数据的格式和范围。 XML Schema的内置类型和派生类型是构建和验证XML文档结构的关键工具,它们使得XML文档的数据具有了强类型和一致性,从而提高了数据交换的安全性和可靠性。理解并熟练运用这些类型,可以帮助开发者创建更加健壮和规范的XML文档。