XML学习之Xml Schema:七、派生复杂类型--扩展
来源:互联网 发布:stc51单片机和mcs 编辑:程序博客网 时间:2024/05/13 09:15
当从简单类型或具有简单内容的复杂类型派生复杂类型时(注意:简单内容直接或间接派生出来的复杂类型也必须是简单内容,简单内容不能派生复杂内容),使用xs:simpleContent元素,如果是扩展派生,使用xs:extension元素,如果是限制派生,使用xs:restriction元素。
扩展派生
通过扩展派生的复杂类型,他的有效内容模型是基类型的内容模型加上扩展的内容模型。
扩展简单内容
扩展简单内容可以从简单类型或具有简单内容的复杂类型扩展。由于不能通过扩展简单内容来得到复杂内容,因此对简单内容的扩展只能是添加新的属性。
<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"><xs:element name="employee" type="expandEmpType"/><xs:complexType name="empType"><xs:simpleContent><xs:extension base="xs:token"><xs:attribute name="number" type="xs:token" use="required"/></xs:extension></xs:simpleContent></xs:complexType><xs:complexType name="expandEmpType"><xs:simpleContent><xs:extension base="empType"><xs:attribute name="birthdate" type="xs:date" use="required"/></xs:extension></xs:simpleContent></xs:complexType></xs:schema>
从具有简单内容的复杂类型扩展
<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"><xs:element name="employee" type="expandEmpType"/><xs:complexType name="expandEmpType"><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="number" type="xs:string" use="required"/><xs:attribute name="birthdate" type="xs:date" use="required"/></xs:extension></xs:simpleContent></xs:complexType></xs:schema>
从简单类型扩展
扩展纯元素内容
从纯元素内容的复杂类型扩展,我们可以在基类型的内容模型最后添加新的与元素或属性。模式处理器会把基类型的内容模型和新增的内容模型合并到一个sequence中。注意不能对一个all组的基类型进行扩展添加新的元素(添加属性是可以的)。
<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"><xs:element name="fruit" type="expandedFruitType"/><xs:complexType name="fruitType"><xs:complexContent><xs:restriction base="xs:anyType"><xs:sequence><xs:element name="Apple" type="xs:string"/><xs:element name="Pear" type="xs:string"/></xs:sequence></xs:restriction></xs:complexContent></xs:complexType><xs:complexType name="expandedFruitType"><xs:complexContent><xs:extension base="fruitType"><xs:sequence><xs:element name="Banane" type="xs:string"/></xs:sequence></xs:extension></xs:complexContent></xs:complexType></xs:schema>
扩展混合内容
混合内容的扩展跟纯元素的扩展类似,唯一的要求是派生类型也必须具有混合内容,也就是mixed=true。
<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"><xs:element name="employee" type="expandedEmpType"/><xs:complexType name="empType" mixed="true"><xs:sequence><xs:element name="name" type="xs:string"/><xs:element name="age" type="xs:string"/></xs:sequence></xs:complexType><xs:complexType name="expandedEmpType" mixed="true"><xs:complexContent><xs:extension base="empType"><xs:sequence><xs:element name="salary" type="xs:integer"/></xs:sequence></xs:extension></xs:complexContent></xs:complexType></xs:schema>
扩展空内容
从空内容类型扩展,派生类型可以具有纯元素内容,也可以就混合内容。
<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"><xs:element name="employee" type="extendedEmpType"/><xs:complexType name="empType"><xs:attribute name="number" type="xs:string" use="required"/></xs:complexType><xs:complexType name="extendedEmpType" mixed="true"><xs:complexContent><xs:extension base="empType"><xs:sequence><xs:element name="name" type="xs:string"/><xs:element name="age" type="xs:integer"/></xs:sequence><xs:attribute name="remark" use="required"/></xs:extension></xs:complexContent></xs:complexType></xs:schema>
- XML学习之Xml Schema:七、派生复杂类型--扩展
- XML学习之Xml Schema:八、派生复杂类型--限制
- XML学习之Xml Schema:九、派生复杂类型
- XML学习之Xml Schema:五、复杂类型--Attribute
- XML学习之Xml Schema:六、复杂类型--模型组
- 学习笔记——XML Schema复杂类型
- XML - Schema之数据类型扩展
- XML学习之Xml Schema:三、自定义简单类型--facet
- XML学习之Xml Schema:四、自定义简单类型
- XML学习之 schema
- XML学习之Schema
- [XML]学习笔记(六)——XML Schema复杂类型
- Xml Schema 之 简易类型
- Xml Schema 之 复合类型
- XML学习之Xml Schema:一、Xml Schema概述
- xml的Schema扩展
- (七)XML Schema总结
- JavaWeb学习笔记之xml&DTD&schema
- 2013年工作中遇到的20个问题:1-20
- JVM进阶系列二
- CUDA矩阵乘法
- 在Eclipse下搭建Android开发环境图文教程3
- Activiti学习资料(组件,API,部署)
- XML学习之Xml Schema:七、派生复杂类型--扩展
- 在Eclipse下搭建Android开发环境图文教程4
- 在Eclipse下搭建Android开发环境图文教程5
- JSP frameset
- hdu 1159 Common Subsequence(DP最长公共子序列)
- 编译链接运行时使用自己编译的库
- C++引用详解
- eclipse修改某一个项目的字符编码
- sql server 2005数据库中的文件和文件组的详解