xml学习笔记
来源:互联网 发布:矩阵分解 matlab 编辑:程序博客网 时间:2024/06/07 03:00
XML简介 可拓展标记型语言 用途:xml可以显示数据,也可以存储数据(主要功),W3C组织发布的技术. xml有俩个版本 1.0 1.1 使用都是1.0版本,(1.1)不能向下兼容XML应用 不同的系统之间传输数据 最典型的例子:QQ之前是用字符串传递的数据,后面是用XML传递数据 画图分析过程 XML是一种通用的数据交换格式 她允许用户自定义标签,一个标签啊用于描述一段数据。一个标签可分为开始标签和结束标签 在起始标签之间,又可以使用其他标签描述其他数据,以此来实现数据关系的描述. XML中的数据必须通过软件程序来解析执行或者显示.这样的解析程序称之为Parser(解析器) 经常用在文件配置 比如现在连接数据库 ,肯定知道数据库的用户名和密码,数据名称 比如修改数据库的信息,不需要修改源代码,只要修改配置文件就可以了.Xml的语法 (1)文档声明 *创建一个文件,后缀名是.xml (2)定义元素(标签)(***) (3)定义属性(***) (4)注释(***) (5)CDATA区,(了解) (6)处理命令(PI指令)(了解) (7)特殊字符(***)XML元素的定义 **标签定义 **标签定义有开始必须要有结束 <person></person> **标签没有内容,可以在标签内结束 <person/> **标签可以嵌套,必须要合理嵌套 ***合理嵌套 <aa><hh></hh></aa> **一个XMl必须有根标签,其他标签是这个标签的子标签或者根标签 **在XML中把空格和换行都当成内容来解析 ***下面俩段代码含义是不一样的 *<aa>1111</aa> *<aa> 1111 </aa> **XML标签的名称规则 ①区分大小写 ②不能以下划线和数字开头 ③不能以XML,xml,Xml等开头 ④标签内不能包含空格和冒号XML属性的定义 *<person id1="aaaa"></person> **属性定义的要求 (1)一个标签上可以有多个属性 (2)属性名称不能相同 (3)属性名称和属性值之间使用=,属性值使用引号包起来(可以是单引号,也可以是双引号) (4)XML属性的名称规范和元素的名称规范一致XML中的特殊字符 **< ≶ > > <a>a$</a>CDATA区 <b> if(a<b && b<c &&d>f){} </b> *可以解决多个字符都需要转义的操作 *把这些内容都放到CDATA区里面,不需要转义了 **写法 <![CDATA[内容]]> <![CDATA[<b>if(a<b && b<c && d>f){}</b>]]> **把特殊字符,当做文本内容,而不是标签XML的PI指令XML的约束 *为什么需要约束 **比如现在定义一个person的xml文件,只想要在这个文件里面保存人的信息,但是如果xml文件中写了 一个标签<猫>,发现可以正常显示,因为符合语法规范.xml的标签是自定义的,需要技术来规定xml中只能 出现的元素,这个时候需要约束.*xml的约束的技术: dtd的约束和schema约束dtd的快速入门 *创建一个文件,dtd 步骤: (1)看xml中有多少个元素,有几个元素,在dtd文件中写几个<!element> (2)判断是简单元素还是复杂元素 --复杂元素:有子元素的元素 <!element 元素(子元素)> *复杂元素: < ! ELEMENT person ( name , age , sex , school ) > 一子元素只能出现一次 * < ! ELEHENT 元素名称(子元素) > ”表示子元素出现的次数 + :表示一次或者多次 ? :表示零次或者一次 * :表示零次或者多次 子元素直接使用逗号隔开, **表示元素顺序 *子元素直接使用|隔开 **表示元素只能出现其中的任意一个 --加单元素:没有子元素 <!element 元素(#PCDATA)>dtd的三种引入方式 内部引用 外部引用 外部引用(网络上的) --后面学到框架 struts2 使用配置文件 使用 外部的dtd文件使用 dtd 定义属性*语法: < ! ATTLIsT 元素名称属性名称属性类型属性的约束 *属性类型 -CDATA:字符串 -< ! ATTLIST IDI CDATA birthday #REQUIRED > -枚举:表示只能在一定的范圈内出现值,但是只能每次出现其中的一个 **红绿灯效果 ** ( aa | bb 1 cc ) 一< ! ATTLIST age ID2 ( aa | bb | cc ) #REQUIRED> -ID :值只能是字母或者下划线开头 一< ! ATTLIST name ID3 ID #REQUIRED> *属性的约束 -#REQUIRED :属性必须存在 -#IMPLIED : 可有可无 -#FIXED: 固定值 **属性的值必须是设置的固定值
阅读全文