复杂Schema

扩展包含简单内容的复杂类型

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  3. elementFormDefault="qualified" attributeFormDefault="unqualified">
  4. <!-- 定义一个book_Type类型 -->
  5. <xs:complexType name="book_Type">
  6. <xs:simpleContent>
  7. <!-- 从token类型派生出book_Type类型 -->
  8. <xs:extension base="xs:token">
  9. <!-- 增加一个name属性 -->
  10. <xs:attribute name="name" type="xs:token" use="required"/>
  11. <!-- 增加一个isbn属性 -->
  12. <xs:attribute name="isbn" use="required">
  13. <!-- 使用simpleType子元素定义isbn属性的类型 -->
  14. <xs:simpleType>
  15. <xs:restriction base="xs:int">
  16. <xs:totalDigits value="8"/>
  17. </xs:restriction>
  18. </xs:simpleType>
  19. </xs:attribute>
  20. </xs:extension>
  21. </xs:simpleContent>
  22. </xs:complexType>
  23. <!-- 定义一个extended_book_Type类型 -->
  24. <xs:complexType name="extended_book_Type">
  25. <xs:simpleContent>
  26. <!-- 从book_Type类型派生出extended_book_Type类型 -->
  27. <xs:extension base="book_Type">
  28. <!-- 增加price属性 -->
  29. <xs:attribute name="price" use="required">
  30. <!-- 使用simpleType子元素定义price属性的类型 -->
  31. <xs:simpleType>
  32. <xs:restriction base="xs:decimal">
  33. <xs:maxExclusive value="100"/>
  34. <xs:minExclusive value="0"/>
  35. <xs:fractionDigits value="2"/>
  36. </xs:restriction>
  37. </xs:simpleType>
  38. </xs:attribute>
  39. </xs:extension>
  40. </xs:simpleContent>
  41. </xs:complexType>
  42. <!-- 定义book元素,其类型是extended_book_Type -->
  43. <xs:element name="book" type="extended_book_Type"/>
  44. </xs:schema>

限制包含简单类型的复杂类型

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  3. elementFormDefault="qualified" attributeFormDefault="unqualified">
  4. <!-- 定义一个book_Type类型 -->
  5. <xs:complexType name="book_Type">
  6. <xs:simpleContent>
  7. <xs:extension base="xs:token">
  8. <xs:attribute name="name" type="xs:token" use="required"/>
  9. <xs:attribute name="isbn">
  10. <!-- 使用simpleType子元素定义isbn属性的类型 -->
  11. <xs:simpleType>
  12. <xs:restriction base="xs:int">
  13. <xs:totalDigits value="8"/>
  14. </xs:restriction>
  15. </xs:simpleType>
  16. </xs:attribute>
  17. </xs:extension>
  18. </xs:simpleContent>
  19. </xs:complexType>
  20. <!-- 定义一个restricted_book_Type类型 -->
  21. <xs:complexType name="restricted_book_Type">
  22. <xs:simpleContent>
  23. <xs:restriction base="book_Type">
  24. <!-- 定义该元素的内容只能是如下枚举值之一 -->
  25. <xs:enumeration value="疯狂Java体系"/>
  26. <xs:enumeration value="疯狂Java实训教程"/>
  27. <xs:attribute name="name" use="required">
  28. <!-- 使用simpleType重新限定name属性的类型 -->
  29. <xs:simpleType>
  30. <xs:restriction base="xs:token">
  31. <xs:maxLength value="14"/>
  32. <xs:minLength value="4"/>
  33. </xs:restriction>
  34. </xs:simpleType>
  35. </xs:attribute>
  36. <!-- 删除原来的isbn属性 -->
  37. <xs:attribute name="isbn" use="prohibited"/>
  38. </xs:restriction>
  39. </xs:simpleContent>
  40. </xs:complexType>
  41. <!-- 定义book元素,其类型是restricted_book_Type -->
  42. <xs:element name="book" type="restricted_book_Type"/>
  43. </xs:schema>

限制包含子元素的类型

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  3. elementFormDefault="qualified" attributeFormDefault="unqualified">
  4. <!-- 定义一个book_Type类型,该类型下包含2个有序子元素 -->
  5. <xs:complexType name="book_Type">
  6. <!-- 使用sequence定义2个子元素 -->
  7. <xs:sequence>
  8. <xs:element name="name" type="xs:token"/>
  9. <!-- 如果派生类型想删除如下子元素,必须指定minOccurs="0" -->
  10. <xs:element name="price" type="xs:decimal" minOccurs="0"/>
  11. </xs:sequence>
  12. <!-- 为该类型定义2个属性 -->
  13. <xs:attribute name="isbn" type="xs:int"/>
  14. <xs:attribute name="publish-date" type="xs:date"/>
  15. </xs:complexType>
  16. <!-- 定义restrict_book_Type类型 -->
  17. <xs:complexType name="restrict_book_Type">
  18. <xs:complexContent>
  19. <!-- 通过限制book_Type类型派生新类型 -->
  20. <xs:restriction base="book_Type">
  21. <xs:sequence>
  22. <!-- 为name元素的类型增加进一步约束 -->
  23. <xs:element name="name">
  24. <xs:simpleType>
  25. <xs:restriction base="xs:token">
  26. <xs:maxLength value="20"/>
  27. <xs:minLength value="4"/>
  28. </xs:restriction>
  29. </xs:simpleType>
  30. </xs:element>
  31. <!-- 不再定义price元素,即可认为删除了该元素 -->
  32. </xs:sequence>
  33. <!-- 为publish-date属性的类型增加进一步约束 -->
  34. <xs:attribute name="publish-date">
  35. <xs:simpleType>
  36. <xs:restriction base="xs:date">
  37. <xs:maxExclusive value="2009-05-12"/>
  38. <xs:minExclusive value="2007-05-12"/>
  39. </xs:restriction>
  40. </xs:simpleType>
  41. </xs:attribute>
  42. <!-- 删除isbn属性 -->
  43. <xs:attribute name="isbn" use="prohibited"/>
  44. </xs:restriction>
  45. </xs:complexContent>
  46. </xs:complexType>
  47. <xs:element name="book" type="restrict_book_Type"/>
  48. </xs:schema>

扩展包含子元素的类型

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  3. elementFormDefault="qualified" attributeFormDefault="unqualified">
  4. <!-- 定义一个book_Type类型,该类型下包含2个有序子元素 -->
  5. <xs:complexType name="book_Type">
  6. <!-- 使用sequence定义2个子元素 -->
  7. <xs:sequence>
  8. <xs:element name="name" type="xs:token"/>
  9. <xs:element name="price" type="xs:decimal"/>
  10. </xs:sequence>
  11. <!-- 为该类型定义2个属性 -->
  12. <xs:attribute name="isbn" type="xs:int"/>
  13. <xs:attribute name="publish-date" type="xs:date"/>
  14. </xs:complexType>
  15. <!-- 定义extend_book_Type类型 -->
  16. <xs:complexType name="extend_book_Type">
  17. <xs:complexContent>
  18. <!-- 通过扩展book_Type类型派生新类型 -->
  19. <xs:extension base="book_Type">
  20. <xs:sequence>
  21. <!-- 新增定义2个子元素 -->
  22. <xs:element name="type" type="xs:token"/>
  23. <xs:element name="targetMarket" type="xs:token"/>
  24. </xs:sequence>
  25. <!-- 新增一个publish-house属性 -->
  26. <xs:attribute name="publish-house" type="xs:token"/>
  27. </xs:extension>
  28. </xs:complexContent>
  29. </xs:complexType>
  30. <xs:element name="book" type="extend_book_Type"/>
  31. </xs:schema>

限制混合内容类型

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  3. elementFormDefault="qualified" attributeFormDefault="unqualified">
  4. <!-- 定义一个book_Type类型,该类型下包含2个有序子元素,指定它是混合内容类型 -->
  5. <xs:complexType name="book_Type" mixed="true">
  6. <!-- 使用sequence定义2个子元素 -->
  7. <xs:sequence>
  8. <xs:element name="name" type="xs:token"/>
  9. <!-- 如果派生类型想删除如下子元素,必须指定minOccurs="0" -->
  10. <xs:element name="price" type="xs:decimal" minOccurs="0"/>
  11. </xs:sequence>
  12. <!-- 为该类型定义2个属性 -->
  13. <xs:attribute name="isbn" type="xs:int"/>
  14. <xs:attribute name="publish-date" type="xs:date"/>
  15. </xs:complexType>
  16. <!-- 定义mixed_book_Type类型,依然是混合内容类型 -->
  17. <xs:complexType name="mixed_book_Type" mixed="true">
  18. <xs:complexContent>
  19. <!-- 通过限制book_Type类型派生新类型 -->
  20. <xs:restriction base="book_Type">
  21. <xs:sequence>
  22. <!-- 为name元素的类型增加进一步约束 -->
  23. <xs:element name="name">
  24. <xs:simpleType>
  25. <xs:restriction base="xs:token">
  26. <xs:maxLength value="20"/>
  27. <xs:minLength value="4"/>
  28. </xs:restriction>
  29. </xs:simpleType>
  30. </xs:element>
  31. <!-- 不再定义price元素,即可认为删除了该元素 -->
  32. </xs:sequence>
  33. <!-- 删除isbn属性 -->
  34. <xs:attribute name="isbn" use="prohibited"/>
  35. </xs:restriction>
  36. </xs:complexContent>
  37. </xs:complexType>
  38. <!-- 定义restrict_book_Type类型 -->
  39. <xs:complexType name="restrict_book_Type">
  40. <xs:complexContent>
  41. <!-- 通过限制book_Type类型派生新类型 -->
  42. <xs:restriction base="book_Type">
  43. <xs:sequence>
  44. <!-- 为name元素的类型增加进一步约束 -->
  45. <xs:element name="name">
  46. <xs:simpleType>
  47. <xs:restriction base="xs:token">
  48. <xs:maxLength value="20"/>
  49. <xs:minLength value="4"/>
  50. </xs:restriction>
  51. </xs:simpleType>
  52. </xs:element>
  53. <!-- 不再定义price元素,即可认为删除了该元素 -->
  54. </xs:sequence>
  55. <!-- 为publish-date属性的类型增加进一步约束 -->
  56. <xs:attribute name="publish-date">
  57. <xs:simpleType>
  58. <xs:restriction base="xs:date">
  59. <xs:maxExclusive value="2009-05-12"/>
  60. <xs:minExclusive value="2007-05-12"/>
  61. </xs:restriction>
  62. </xs:simpleType>
  63. </xs:attribute>
  64. <!-- 删除isbn属性 -->
  65. <xs:attribute name="isbn" use="prohibited"/>
  66. </xs:restriction>
  67. </xs:complexContent>
  68. </xs:complexType>
  69. <xs:element name="book" type="restrict_book_Type"/>
  70. </xs:schema>

扩展混合内容类型

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  3. elementFormDefault="qualified" attributeFormDefault="unqualified">
  4. <!-- 定义一个book_Type类型,该类型下包含2个互斥子元素 -->
  5. <xs:complexType name="book_Type" mixed="true">
  6. <!-- 使用choice定义2个子元素 -->
  7. <xs:choice>
  8. <xs:element name="name" type="xs:token"/>
  9. <xs:element name="price" type="xs:decimal"/>
  10. </xs:choice>
  11. </xs:complexType>
  12. <!-- 定义extend_book_Type类型,必须保留mixed="true" -->
  13. <xs:complexType name="extend_book_Type" mixed="true">
  14. <xs:complexContent>
  15. <!-- 通过扩展book_Type类型派生新类型 -->
  16. <xs:extension base="book_Type">
  17. <xs:choice>
  18. <!-- 新增定义2个子元素 -->
  19. <xs:element name="type" type="xs:token"/>
  20. <xs:element name="targetMarket" type="xs:token"/>
  21. </xs:choice>
  22. </xs:extension>
  23. </xs:complexContent>
  24. </xs:complexType>
  25. <xs:element name="book" type="extend_book_Type"/>
  26. </xs:schema>

xml学习总结(三)的更多相关文章

  1. Android Animation学习(三) ApiDemos解析:XML动画文件的使用

    Android Animation学习(三) ApiDemos解析:XML动画文件的使用 可以用XML文件来定义Animation. 文件必须有一个唯一的根节点: <set>, <o ...

  2. Java第三阶段学习(十、XML学习)

    一.XML学习 1.模拟Servlet执行 在学习完前端及java与数据库后,将进行WEB编程阶段的学习.在WEB编程中,可以通过浏览器访问WEB服务器上的数据.这时WEB服务器就相当于另一台计算机. ...

  3. 从零开始学习jQuery (三) 管理jQuery包装集

    本系列文章导航 从零开始学习jQuery (三) 管理jQuery包装集 一.摘要 在使用jQuery选择器获取到jQuery包装集后, 我们需要对其进行操作. 本章首先讲解如何动态的创建元素, 接着 ...

  4. XML 学习介绍 收藏

    XML学习总结(一)——XML介绍 一.XML概念 Extensible Markup Language,翻译过来为可扩展标记语言.Xml技术是w3c组织发布的,目前推荐遵循的是W3C组织于2000发 ...

  5. XML学习笔记

    XML学习笔记 第一部分:XML简介 我们经常可以听到XML.HTML.XHTML这些语言,后两者比较清楚,一直不是很明白XML是什么,这里做一个总结. XML(eXtensible Markup L ...

  6. JavaWeb学习总结(三)——Tomcat服务器学习和使用(二) 包含https 非对称秘钥 NB

    JavaWeb学习总结(三)--Tomcat服务器学习和使用(二) 一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命 ...

  7. MyEclipse Spring 学习总结三 SpringMVC

    MyEclipse Spring 学习总结三 SpringMVC 一.SpringMVC原理 1.Springmvc 框架介绍 1)Spring 框架停工了构建Web应用程序的全功能MVC模块.Spr ...

  8. Quartz定时任务学习(二)web应用/Quartz定时任务学习(三)属性文件和jar

    web中使用Quartz 1.首先在web.xml文件中加入 如下内容(根据自己情况设定) 在web.xml中添加QuartzInitializerServlet,Quartz为能够在web应用中使用 ...

  9. MyBatis学习系列三——结合Spring

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring MyBatis在项目中应用一般都要结合Spring,这一章主要把MyBat ...

随机推荐

  1. 关于通过adb启动Activity、activity、service以及发送broadcast的命令

    一.启动activity: $ adb shell$ am start -n {包名}/{包名}.{活动名称} 如:启动一个名叫MainActivity的活动 # am start -n com.ex ...

  2. 琐碎-关于hadoop2.2.0

    HDFS模块功能 namenode:主节点,存储文件的元数据如文件名.文件目录结构.文件属性(生成时间.副本数.文件权限).以及每个文件的块列表和块所在的datanode等: datanode:在本地 ...

  3. App安全之网络传输安全

    移动端App安全如果按CS结构来划分的话,主要涉及客户端本身数据安全,Client到Server网络传输的安全,客户端本身安全又包括代码安全和数据存储安全.所以当我们谈论App安全问题的时候一般来说在 ...

  4. Java中执行外部命令

    在项目中执行一个linux的shell脚本,于是需要在java环境下执行外部命令如系统命令.linux命令的需求,本人小小研究了一下,又上网查了一些资料先整理如下. java执行外部命令主要依赖两个类 ...

  5. cocos2d-x lua 触摸事件

    cocos2d-x lua 触摸事件 version: cocos2d-x 3.6 1.监听 function GameLayer:onEnter() local eventDispatcher = ...

  6. 不支持关键字:metadata

    将 string sqlConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["Cos ...

  7. Linux中ifcfg-eth0配置参数解释

    Linux中设置IP地址经常使用到ifcfg-eth0这个文件.  vi /etc/sysconfig/network-scripts/ifcfg-eth0 附录文件中的内容: DEVICE=eth0 ...

  8. sublime安装 less环境

    工具的选择: mac-codekit simpless->跨平台 winless-windows  less.js下载:http://pan.baidu.com/s/1o60yTZ0   安装L ...

  9. javascript深入理解闭包

    一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量 ...

  10. android NDK 开发步骤

    NDK开发一般分为一下几个步骤:(默认你已经安装好了NDK和android开发环境) 1.创建一个项目 2.创建JNI目录 3.编写nativejava层方法 4.生成JNI头文件 (1)编写java ...