XML基础
所有示例并未上传
一、概述:
1. 课程内容
1) 内容:XML语法与验证,XML的解析
2) 与其他课程相关:JAVA,dotNet
2. HTML的不足
1) 对内容的真正含义表示不清 (没有标记)
2) 结构层次单调 (不能自定义数据结构)
3) 要求 文档过于完整 (HTML提交全部数据)
4) HTML没有做到真正的国际化 (不同的浏览器商的标准不一样)
5) 无法真正实现数据交互 (由于只有数据,无法确定其意义)
举例:D要代理A B C公司的产品
6) 链接机制不完善 (链接不上,不能自我调整)
7) 不可重用 (每个HTML页面只能是量身定做的)
3. XML的优点
1) 信息共享
2) 数据传递
3) 数据重用
4) 分离数据和表示
5) 可扩展
6) 文档包含语义
7) 容易阅读
4. 结构完整的XML文档
1) XML声明<?xml version = “1.0” encoding=”UTF-8”>
2) 根元素 只能有一个
3) XML元素 注意命名要求
4) 注释 <!-- - ->
5) PI指令 <? ?>间
6) PCDATA 元素的数据类型
7) CDATA <![CDATA[ kkkkkkk ]]> 原样显示
8) 实体 ENTITY (变量)
9) DOCTYPE <!DOCTYPE mydoc [ 声明实体 ]>
二、文档类型定义:
1.文档类型定义(DTD):定义标记含义、元素相关的属性,保证数据的有效性
a)合法的XML文档
b) 结构完整,语法规范
2. 成DTD文档 (示例order.dtd)
3. DTD的约束
a)ATTLIST 定义属性及其约束
i. 类型:CDATA、ID、IDREF、IDREFS、ENTITY、ENTITIES、NOTATION、Enumerated
ii. 值约束:#REQUIRED、#IMPLIED、FIXED、Defaultvalue
b) ELEMENT 定义元素及约束
i. 类型:EMPTY、ANY、#PCDATA
ii. 关系:“()”:组合 “|”:选择 “+”:1-n
“*”:0-n “?”:0-1 “,”:顺序
4. 名称空间
a)作用:区分标记的来源,可避免文档出现两个同名的标记
示例:(testNS.xml customer.dtd cust2.dtd)
三、XML文档对象模型
文档模型
1. 线性模型:可处理静态结构,整个文档是一整体
2. 树型模型:文档由各个子树构成,可以移植树结构
3. 对象模型:对树中的各个部份,看成是独立的对象
生成文档对象
1. 读现有XML文档
var doc = new Activex/Xobject(“Msxml2.DOMDocument.4.0”)
doc.async=false; //表示同步读
doc.resolveExternals = false; //表示不使用DTD或SCHMA的验证
doc.load(“XML文件名”) //装入内存,建立DOM对象
2. 创建新的XML文档
3. 插入XML数据
doc.appendChild(节点)
4. 查询XML中数据
doc.getElementByTagName
doc.selectNodes(“pattern”),selectSingleNode
5. 修改XML中数据
doc.replaceChild(新元素,旧元素)
6. 删除XML中数据
doc.childNodes[i].removeChild(元素)
7. Doc.parseError.errorCode 与 doc.parseError.srcText
8. NodeType与nodeTypeString (1。。。。ELEMENT)
9. TagName表示结点名称
10. DocumentElement表示根元素
四、Schema简介
1. Schema与DTD的区别
2.Schema的数据类型
3.Schema的元素类型
4.Schema示例