学习笔记——XML Schema复杂类型
来源:互联网 发布:炒股软件安全吗 编辑:程序博客网 时间:2024/05/21 20:26
复杂类型分2种:
包含简单内容的复杂类型——内容是简单类型值,并包含属性;
包含复杂内容的复杂类型——包含子元素、空元素或混合内容的元素,不管是否包含属性。
复杂类型定义使用<complexType.../>,其可接受如下两种子元素:
<simpleContent.../>:用于定义包含简单内容的复杂类型。
<complexContext.../>:用于定义包含复杂内容的复杂类型
复杂类型的派生方式:
<restriction.../>:限制派生(<simpleContent.../>或<complexContext.../>的子元素);
<extension.../>:扩展派生(<simpleContent.../>或<complexContext.../>的子元素);
包含简单内容的复杂类型可由扩展简单类型、扩展复杂类型或限制包含简单内容的复杂类型而来。
即:
扩展简单类型—>包含简单内容的复杂类型
扩展复杂类型—>包含简单内容的复杂类型
限制复杂类型—>包含简单内容的复杂类型
限制包含简单内容的复杂类型派生方式:
1:为元素内容或属性增加进一步的约束;
2:删除某些属性。
包含复杂内容的复杂类型可有限制anyType派生新类型、扩展简单类型或扩展复杂类型
Schema有这么一个约定:如果某个复杂类型是由现在anyType派生出来的,那么在定义该复杂类型时可以省略<complexContent.../>和<restriction.../>元素,而直接在<complexType.../>元素内使用<sequence.../>、<choice.../>、<all.../>和<attribute.../>来定义元素和属性。
Schema的复杂类型可由复杂类型进一步派生而来。
以限制派生方式来派生新类型时,Schema对基类型中的子元素和属性的属性的处理方式是不一样的:派生类型默认会删除基类型中的所有子元素定义,但会保留其中的所有属性定义。
所以派生新类型是如果需要保留基类型的子元素,必须重新定义这些子元素,如果要删除指定属性,则定义该属性是使用use="prohibited"。
扩展包含子元素的类型时派生出来的新类型不可以是混合内容类型。
基类型中使用<all.../>定义子元素时,其通过扩展派生出来的新类型无法添加新的子元素;
即使基类型中没有使用<all.../>元素的定义子元素,在通过扩展派生新类型时也不能添加由<all.../>元素包含的子元素。
扩展混合内容类型派生出来的新类型必须也是混合内容类型。
- 学习笔记——XML Schema复杂类型
- [XML]学习笔记(六)——XML Schema复杂类型
- XML学习之Xml Schema:五、复杂类型--Attribute
- XML学习之Xml Schema:六、复杂类型--模型组
- XML学习之Xml Schema:七、派生复杂类型--扩展
- XML学习之Xml Schema:八、派生复杂类型--限制
- XML学习之Xml Schema:九、派生复杂类型
- [XML]学习笔记(五)——XML Schema简单类型元素与属性
- 学习笔记——XML Schema注释
- 学习笔记——XML Schema数据类型
- 学习笔记——XML Schema通配符
- XML schema学习笔记
- XML Schema学习笔记
- XML schema 学习笔记
- XML-Schema学习笔记
- Xml学习笔记:(一)schema元素类型
- 疯狂XML学习笔记(8)---------schema 的简单类型
- 疯狂XML学习笔记(9)-------------Schema内置类型
- C# 中如何实现数组的 Join
- js 计算时间差
- XAF之Security System
- 双绞线制作实验报告
- 爱4妮 struts2.1 + hibernate3.3 +spring2.5 + 仿Google数字分页
- 学习笔记——XML Schema复杂类型
- 关于QHttp
- JBox2D For Android - hello box2d
- Fahrenheit-Celsius table
- 利用多叉树将数据库中的层次数据转换成树形结构的JSON字符串
- [gpu pro3]弱文合集
- poj 2420 A Star not a Tree?(贪心+求多边形费马点)
- cyclicBarrier同步工具类
- 仿射几何学