概念 Extensilble Markup Language 可扩展编辑语言 可扩展:标签都是自定义的 例如:<user>
、<student>
功能 XML与HTML区别 XML标签自定义的、Html标签是预定义的 XML是语法严格的、Html是松散的 XML是存储数据的、Html是展示数据的 语法 XML文档的后缀名:.xml
第一行必须写文档声明 xml文档中有且仅有一个根标签 属性值必须使用引号,单双都可以 标签必须有结束(正确关闭) xml标签名称区分大小写 例子 1 2 3 4 5 6 7 8 9 10 11 <?xml version="1.0" ?> <users > <user > <name > 张三</name > <age > 18</age > </user > <user > <name > 李四</name > <age > 17</age > </user > </users >
组成部分 文档声明格式:<?xml 属性列表 ?>
属性列表:version:版本号,必须属性 encoding:编码方式,默认:iso-8859-1 standalone:是否独立(是否依赖其他文件:yes、no) 指令(结合css控制标签样式的,了解以下即可)<?xml-stylesheet type="text/css" href="a.css">
标签 属性 文本CDATA区:在区域中的文本将会原样展示 格式:<![CDATA[展示的数据]]>
约束 规定xml文档的书写规则
作为框架的使用者(程序员) 分类 DTD:一种简单的约束技术,但有缺陷 Schema:一种复杂的约束技术 DTD 引入DTD文档道xml文档中
内部DTD:将约束规则定义在xml文档中 外部DTD:将约束规则定义在xml文档外 缺陷:不能对内容进行约束,例如年龄
解决方法:使用Schema技术约束
DTD例子 1 2 3 4 5 6 <!ELEMENT students (student *) > <!ELEMENT student (name ,age ,sex )> <!ELEMENT name (#PCDATA )> <!ELEMENT age (#PCDATA )> <!ELEMENT sex (#PCDATA )> <!ATTLIST student number ID #REQUIRED >
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE students SYSTEM "student.dtd" > <students > <student number ="itcast_0001" > <name > tom</name > <age > 18</age > <sex > male</sex > </student > </students >
Schema约束技术 xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <?xml version="1.0" encoding="UTF-8" ?> <students xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xmlns ="http://www.itcast.cn/xml" xsi:schemaLocation ="http://www.itcast.cn/xml student.xsd" > <student number ="heima_0001" > <name > tom</name > <age > 18</age > <sex > male</sex > </student > </students >
约束
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 <?xml version="1.0" ?> <xsd:schema xmlns ="http://www.itcast.cn/xml" xmlns:xsd ="http://www.w3.org/2001/XMLSchema" targetNamespace ="http://www.itcast.cn/xml" elementFormDefault ="qualified" > <xsd:element name ="students" type ="studentsType" /> <xsd:complexType name ="studentsType" > <xsd:sequence > <xsd:element name ="student" type ="studentType" minOccurs ="0" maxOccurs ="unbounded" /> </xsd:sequence > </xsd:complexType > <xsd:complexType name ="studentType" > <xsd:sequence > <xsd:element name ="name" type ="xsd:string" /> <xsd:element name ="age" type ="ageType" /> <xsd:element name ="sex" type ="sexType" /> </xsd:sequence > <xsd:attribute name ="number" type ="numberType" use ="required" /> </xsd:complexType > <xsd:simpleType name ="sexType" > <xsd:restriction base ="xsd:string" > <xsd:enumeration value ="male" /> <xsd:enumeration value ="female" /> </xsd:restriction > </xsd:simpleType > <xsd:simpleType name ="ageType" > <xsd:restriction base ="xsd:integer" > <xsd:minInclusive value ="0" /> <xsd:maxInclusive value ="256" /> </xsd:restriction > </xsd:simpleType > <xsd:simpleType name ="numberType" > <xsd:restriction base ="xsd:string" > <xsd:pattern value ="heima_\d {4} " /> </xsd:restriction > </xsd:simpleType > </xsd:schema >