XML实验讲义之 XML基础
- 格式:doc
- 大小:120.50 KB
- 文档页数:10
XML从⼊门到深⼊(超详细)⼀:什么是XML XML (eXtensible Markup Language)指可扩展标记语⾔,标准通⽤标记语⾔的⼦集,简称XML。
是⼀种⽤于标记电⼦⽂件使其具有结构性的标记语⾔。
XML可以标记数据、定义数据类型,可以允许⽤户对⾃⼰标记语⾔进⾏⾃定义,是对⼈和机器都⽐较友好的数据承载⽅式;XML其前⾝是SGML(标准通⽤标记语⾔)。
传统的系统已经远远不⾜以来表达复杂的信息,简单的语⾔根本⽆法表达出⼀些细微的差别,需要更完整的语⾔来表达⽹络世界⾥⽇益丰富复杂的信息内涵 XML - 可扩展标记语⾔便由此诞⽣,它不像HTML追求美观的效果,⽽不重视实际交流应⽤现象,所以XML语⾔的出现核⼼是⽤来展⽰及数据的交互,它的出现把⽹络表达的语⾔集合推进了⼀⼤步,XML传递信息,具有跨平台的特性(如:WebService)它作为数据交互和⽹络计算基础,尤其是在电⼦商务应⽤上的出⾊表现,现在已经没⼈怀疑它给信息社会带来的⾰命性影响(随着2021的到来JSON也是⼀个不错的选择)<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><Students><Student><name>蚂蚁⼩哥</name><address>安徽六安</address></Student><Student><name>欧阳康康</name><address>安徽六安</address></Student></Students>1:编写XML注意事项①:XML 中的每个元素都是成对出现的,有开始和结束,⾃闭和标签除外,但是都得有 '/'结束标志如:<student>xxxxx</student> ⾃闭和:<student name='xxx' />②:每个XML⽂档都有且只有⼀个根元素(Root Element)③:XML标签对⼤⼩写敏感④:XML必须正确嵌套⑤:同级标签以所缩进对齐⑥:元素名称可以包含字母,数字,但不能以数字开头⑦:元素名称中不能含有空格或者 ' : '号⑧:如出现特殊字符需要转义如:<,>,",',&....2:使⽤XML的优缺点优点:①:XML是使⽤信息⾃描述的新语⾔(没有约束的情况下)②:信息共享(⾃定义数据格式,⽽且很容易使⽤⼯具读写)③:数据传递(⽀持各种通道传递数据,如WebService就使⽤XML传输数据)④:数据重⽤、分离数据和显⽰、⽂档包含语义、⽅便阅读有⾯向对象的树形结构缺点:①:数据量⼤是传输效果不好,因为XML定义了和数据⽆关的标签3:XML基本语法第⼀⾏必须是XML的声明<?xml ?>version:xml的版本,必须设定,当前只有'1.0'版本encoding:当前xml⾥⾯的数据格式,默认UTF-8standalone:标记是否是⼀个独⽴的xml,默认yes如果设置 no 表⽰这个XML不是独⽴的⽽是依赖于外部的DTD约束⽂件(后⾯说)<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><Students><Student><name>蚂蚁⼩哥</name><address>安徽六安</address></Student></Students>⼆:XML专⽤标记 XML其实是有专⽤的标记,也可以理解是XML的基本语法,但是这些语法你在看HTML语法时也看到过,因它们都属于⼀个⼤家族,只是应⽤的⽅向不⼀样⽽导致的差异有部分不⼀样1:XML注释 语法:<!-- 这是⼀个注释 --><?xml version="1.0" encoding="UTF-8" standalone="yes" ?><School><!--定义学⽣对象这是⼀个注释--><Student id="st01" name="张三" age="23"/></School>①:注释⾥的内容不要出现 --②:不要把注释写在元素中间如<Student <!--这⾥注释报错--> ></Student>③:注释不可嵌套2:XML处理PI指令 其实XML⾥的PI指令⼤家可以理解为XML设置样式的,但是考虑到XML是⽤于存储数据的载体,所以这个指令⽤的也不多 语法:<?⽬标指令?> 如引⼊CSS样式:<?xml-stylesheet type='css类型' href='引⼊css样式地址'> CSS类型可以设置 type='text/css' type='text/xsl'<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!--引⼊PI指令注意只能放在头部并引⼊style.css样式--><?xml-stylesheet type='text/css' href='./style.css' ?><School><!--定义学⽣对象这是⼀个注释--><Student><name>蚂蚁⼩哥</name></Student></School><!--CSS样式-->name {font: normal 500 22px "微软雅⿊";color:#f69;}3:XML之CDATA节 ⽤于把整段⽂本解析为纯字符串数据⽽不是标记的情况,其实包含在CDATA节中的特殊字符<、>、&都会当作字符展⽰<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><School><!--定义学⽣对象这是⼀个注释--><Student><!--使⽤<![CDATA[xxx]]>可以把特殊字符当作⽂本--><name><![CDATA[我是⼀个"⽂本":想不到把]]></name></Student></School> 那么问题来的,如果我不使⽤CDATA节包裹的话在⽂本区域输⼊<,>等就会和关键字符冲突,我们需要使⽤转义<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><School><!--定义学⽣对象这是⼀个注释--><Student><!--这⾥的蚂蚁⼩< > 哥报错 <>⼲扰,我们要使⽤转义--><!--<name>蚂蚁⼩<>哥</name>--><name>蚂蚁⼩<>哥</name></Student></School><!--常⽤⽹页转义字符 xml也可以使⽤--><!--显⽰结果描述实体名称实体编号空格  < ⼩于号 < <> ⼤于号 > >& 和号 & &" 引号 " "' 撇号 '(IE不⽀持) '¢分 ¢ ¢£ 镑 £ £¥ ⽇圆 ¥ ¥§ 节 § §© 版权 © ©® 注册商标 ® ®× 乘号 × ×÷ 除号 ÷ ÷-->XML中转义字符的使⽤三:核⼼DTD语法约束1:什么是DTD,为什么使⽤DTD DTD是⽂档类型定义(Document Type Definiyion),它是⽤来描述XML⽂档结构,⼀个DTD⽂档会包含如下内容:元素(ELEMENT):的定义规则,描述元素之间的关系规则属性(ATTLIST):的定义规则,可以定义具体的标签内部属性为什么使⽤DTD:①:DTD⽂档与XML⽂档实例关系如类与对象关系②:有了DTD,每个XML⽂件可以携带⼀个⾃⾝格式描述③:有了DTD,不同组织的⼈可以使⽤⼀个通⽤DTD来交换数据④:应⽤程序可以使⽤⼀个标准的DTD校验从外部世界接受来的XML是否是⼀个有效标准XML⑤:可以使⽤DTD校验⾃⼰的XML数据2:DTD定义⽂档规则(DOCTYPE)DTD⽂档的声明及引⽤有三种:内部DTD⽂档:<!DOCTYPE 根元素[定义元素属性等等内容]>外部DTD⽂档:<!DOCTYPE 根元素 SYSTEM 'DTD⽂件路径'>内外部DTD⽂档结合:<!DOCTYPE 根元素 SYSTEM 'DTD⽂件路径'[定义元素属性等等内容]><?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!--注:此时我这⾥⾯的 ELEMENT 定义元素的我后⾯介绍--><!DOCTYPE Student[<!ELEMENT Student (name)><!ELEMENT name (#PCDATA)>]><Student><name>蚂蚁⼩哥</name></Student>内部定义DTD⽂档<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!DOCTYPE Student SYSTEM './st.dtd'><Student><name>蚂蚁⼩哥</name></Student><!--下⾯是⽂件 st.dtd--><!DOCTYPE Student[<!ELEMENT Student (name)><!ELEMENT name (#PCDATA)>]>外部定义DTD⽂档<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!DOCTYPE Student SYSTEM './st.dtd'[<!ELEMENT Student (name,age,sex)><!ELEMENT sex (#PCDATA)>]><Student><name>蚂蚁⼩哥</name><age>23</age><sex>男</sex></Student><!--外部引⽤的st.dtd⽂件--><?xml version="1.0" encoding="UTF-8" ?><!--这⾥不能写DOCTYPE,因为这个可以当作元素引⽤,具体规则在上⾯定义--><!ELEMENT name (#PCDATA)><!ELEMENT age (#PCDATA)>内外部定义DTD⽂档3:DTD元素的定义(ELEMENT)语法:<!ELEMENT 元素名称(NAME) 元素类型(COUTENT)>注:ELEMENT关键字元素名称:就是⾃定义的⼦标签名称元素类型:EMPTY:该元素不能包含⼦元素和⽂本,但是可以有属性,这类元素称为⾃闭和标签ANY:该元素可以包含任意在DTD中定义的元素内容#PCDATA:可以包含任何字符数据,设置这个就不能包含⼦元素了,⼀般设置具体value混合元素类型:只包含⼦元素,并且这些⼦元素没有⽂本混合类型:包含⼦元素和⽂本数据混合体<!-- 定义空元素EMPTY --><?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!DOCTYPE Student[<!ELEMENT Student EMPTY>]><!--约束为空元素所以写成⾃闭和标签,--><Student/><!-- 定义组合元素(student,teacher)并为每个元素设置类型(#PCDATA) --><?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!DOCTYPE School[<!ELEMENT School (student,teacher)><!ELEMENT student (#PCDATA)><!ELEMENT teacher (#PCDATA)>]><School><student>我是学⽣</student><teacher>我是⽼师</teacher></School><!-- 设置任意元素ANY 虽然student元素内部没有再设置元素⽽设置ANY,那我就可以在编写任意⼦元素,前提在⾥⾯有定义 --><?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!DOCTYPE School[<!ELEMENT School (student)><!ELEMENT student ANY><!ELEMENT name (#PCDATA)><!ELEMENT address (#PCDATA)>]><School><student><name>蚂蚁⼩哥</name><address>安徽六安</address></student></School><!-- 元素组合及混合,可以使⽤通配符 --><?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!DOCTYPE School[<!ELEMENT School (student*,teacher?)><!ELEMENT student (#PCDATA)><!ELEMENT teacher (#PCDATA)>]><School><student>我是学⽣A</student><student>我是学⽣B</student></School>DTD元素定义具体代码通配符:() ⽤来元素分组如:(a|b|c),(d,e),f 分三组| 在列表中选⼀个如(a|b)只能选⼀个表⽰a|b必须出现并⼆选⼀+ 该对象⾄少出现⼀次或多次如(a+) 该元素可以出现多次* 该对象允许出现0次到多次如(a*) 该元素可以不出现或出现多次表⽰可出现⼀次或者不出现(a?) a可以出现,或者不出现, 常⽤按照顺序出现(a,b,c) 表⽰依次a,b,c4:DTD属性的定义(ATTLIST)语法:<!ATTLIST 元素名称属性名称类型属性特点>元素名称:我们⾃定义的元素名称属性类型:我们为元素上添加⾃定义属性类型:CDATA:任意字符(理解为任意字符的字符串)ID:以字母开头唯⼀值字符串,IDREF/IDREFS:可以指向⽂档中其它地⽅声明的ID类型值(设置此值是可以在⽂档上存在的)使⽤IDREFS时可以使⽤空格隔开NMTOKEN/NMTOKENS:NMTOKEN是CDATA的⼀个⼦集,设置该属性时只能写英⽂字母、数字、句号、破折号下划线、冒号,但是属性值⾥⾯不能有空格 NMTOKENS:它是复数,如果设置多个值由空格隔开 Enumerated: 事先定义好⼀些值,属性的值必须在所列出的值范围内属性特点:#REQUIRED表⽰必须设置此属性#IMPLIED表⽰此属性可写可不写#FIXED value表⽰元素实例中该属性的值必须是指定的固定值#Default value为属性提供⼀个默认值<!-- 第⼀种写法 --><?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!DOCTYPE School[<!ELEMENT School (student*)><!ELEMENT student EMPTY><!--定义了⼀个id属性类型为ID 必须值--><!ATTLIST student id ID #REQUIRED><!--设置了name属性为任意字符的字符串必须值--><!ATTLIST student name CDATA #REQUIRED ><!--设置address 类型为多个常规字符串且不需要⼀定存在此属性--><!ATTLIST student address NMTOKENS #IMPLIED><!--设置srcID 该属性的值只能从id上⾯上取--><!ATTLIST student srcID IDREFS #IMPLIED>]><School><student id="st001" name="蚂蚁⼩哥"/><student id="st002" name="欧阳;*)*^%$:⼩⼩" address="安徽_六安安徽_合肥"/><student id="st003" name="许龄⽉" srcID="st001 st002"/></School><!-- 第⼆种写法 --><?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!DOCTYPE School[<!ELEMENT School (student*)><!ELEMENT student EMPTY><!--简便写法,全部放在⼀起写--><!--设置了name属性为任意字符的字符串不⼀定要设置此属性,但是设置必须按照指定的值--> <!ATTLIST studentid ID #REQUIREDname CDATA #FIXED '我们名字都⼀样'address CDATA '默认都是安徽'sex (男|⼥) #REQUIRED>]><School><student id="st001" sex="男" name="我们名字都⼀样"/><student id="st002" sex="⼥"/><student id="st003" sex="男" name="我们名字都⼀样"/></School>DTD的属性定义具体代码5:DTD实体定义(ENTITY)实体分类:普通内部实体,普通外部实体,内部参数实体,外部参数实体语法:普通内部实体定义:<!ENTITY 实体名 "实体值">普通外部实体引⼊:<!ENTITY 实体名 SYSTEM "URI/URL">内部参数实体定义:<!ENTITY % 实体名 "实体值">外部参数实体引⼊:<!ENTITY % 实体名 SYSTEM "URI/URL">⽰例定义:<!ENTITY name "蚂蚁⼩哥"><!ENTITY address "安徽六安">⽰例XML⾥使⽤:<name>&name;</name>使⽤范围:定义实体分为内部实体(定义在当前xml⽂件)和外部实体(定义在外部dtd⽂件⾥)<!-- 内部普通实体 --><?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!DOCTYPE Student[<!ELEMENT Student (name,address)><!ELEMENT name (#PCDATA)><!ELEMENT address (#PCDATA)><!ENTITY name "蚂蚁⼩哥"><!ENTITY address "安徽六安">]><Student><name>&name;</name><address>&address;</address></Student>DTD实体定义代码6:使⽤命名空间(Namespace) 避免元素名冲突,使⽤URL作为XML的Namespaces(这样也有约束和提⽰好处) 语法:xmlns:[prefix]="URL" 元素和属性都可以应⽤命名空间 XML的元素名是不固定的,当两个不同类型的⽂档使⽤同样的名称描述两个不同类型的元素的时候就会出现命名冲突<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><h:table xmlns:h="/1999/xhtml"><h:tr><h:td>名称A</h:td><h:td>名称B</h:td></h:tr></h:table>四:核⼼Schema语法约束1:什么是XML Schema XML Schema描述了XML⽂档的结构。
xml编写标准一、概述XML(ExtensibleMarkupLanguage)是一种标记语言,用于描述和存储数据。
它被广泛应用于网络上的数据交换和信息共享。
为了提高XML文档的可读性、可维护性和可扩展性,本标准提供了一些编写XML 文档的基本规则和指导原则。
二、语法规则1.标签应成对出现,并且第一个标签的开始部分应与结束部分之间有一个空格。
2.标签名应使用小写字母,并且应该简洁明了。
3.属性应使用小写字母,并且应该用引号括起来。
4.文本内容应使用双引号括起来。
5.不要使用XML保留字作为标签名或属性名。
6.避免使用长字符串或复杂的表达式,可以使用CDATA段来处理。
三、文档结构1.根元素应作为XML文档的唯一容器,所有其他元素都应包含在该元素之内。
2.每个元素都应该有一个明确的开始标签和结束标签,并且标签名应该准确地描述该元素的内容。
3.元素内的文本内容应该用适当的空格和换行符分隔开,以提高可读性。
4.避免使用嵌套的元素来重复描述同一内容,可以使用属性或子元素来替代。
5.每个元素都应该有一个唯一的ID,以便于引用和跟踪。
四、数据类型1.数值型数据应该使用整数或浮点数类型,并使用适当的单位进行描述。
2.日期和时间数据应该使用标准的日期和时间格式,并使用XML 日期时间类型进行描述。
3.字符串数据应该使用引号括起来,并使用适当的分隔符进行分隔。
4.布尔型数据应该使用true或false表示。
五、命名约定1.标签名应该具有描述性,能够清晰地表达该元素的内容和目的。
2.属性名应该具有描述性和简洁性,能够清晰地表达该属性的含义和用途。
3.不要使用具有特殊含义的字符作为标签名或属性名的开头或结尾。
4.使用描述性的命名约定可以提高可读性和可维护性。
六、样例以下是一个符合本标准的XML文档样例:```xml<?xmlversion="1.0"encoding="UTF-8"?><data><itemid="1"><name>产品A</name><price>¥100</price><quantity>5</quantity></item><itemid="2"><name>产品B</name><color>红色</color><size>L</size><stock>10</stock></item></data>```以上样例中,根元素为"data",包含了两个"item"元素,每个元素都包含了一个唯一的ID、名称、价格、数量等信息。
X M L基础教程课后习题解答(总8页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--XML基础教程课后习题习题一1.答:HTML是用来编写Web页的语言、不允许用户自定义标记,HTML体现数据的显示格式。
XML描述数据的组织结构、可自定义标记,其标记名称是对标记所包含的数据内容含义的抽象,而不是数据的显示格式。
2.答:使用UTF-8保存5.答:(1)不可以,(2)可以,(3)不可以6.答::time{ display:block;font-size:18pt;font-weight:bold}hour{ display:line;font-size:16pt;font-style:italic}mimute{ display:line;font-size:9pt;font-weight:bold}习题二1.答:(1)使用ANSI编码。
(2)可以。
(3)不合理。
2.答:不相同。
3.答:(1)和(2)。
4.答:。
5.答:“root”标记包含的文本内容都是空白字符。
“a1”标记包含的文本内容:<CCTV5>。
“a2”标记包含的文本内容: 子曰"有朋自远方来,不亦乐乎"。
习题三1.答:一个规范的XML文件如果和某个DTD文件相关联,并遵守该DTD文件规定的约束条件,就称之为有效的XML文件。
2.答:DTD文件的编码必须和其约束的XML文件的编码相一致。
3.答:无关。
4.答:(1) 使用SYSTEM文档类型声明的格式:<DOCTYPE 根标记的名称 SYSTEM "DTD文件的URI">(2) 使用PUBLIC文档类型声明的格式:<!DOCTYPE 根标记的名称 PUBLIC "正式公用标识符" "DTD文件的URI"> 5.答:一定。
6.答:(1)约束标记“张三”必须有“学号”属性(2)约束标记“张三”必须有“学号”属性,而且学号的属性值是固定的220123。
XML概述为什么要学xml?1)XML 是一种通用的数据交换格式2)许多系统的配置文件都使用XML格式3)JSP文档也逐步向XML格式过渡4)许多项目都使用XML作为数据交换格式5)掌握XML是软件开发人员的一项基本技能1.1 XML的起源与作用我们知道,Internet广泛用于信息通信与交换。
既然现在的多数业务都是通过Web 进行的,则有必要在全世界的不同平台上共享数据。
Web应用程序以与所有平台兼容的格式展示数据是非常重要的。
XML就是这样的一种语言,它为描述数据提供了一种格式。
目前许多系统的配置文件都使用XML格式。
什么是配置文件?配置文件就是记录应用程序配置信息的文件。
例如,某个程序要连接网络上的数据库系统时,需要指定数据库服务器的IP地址,服务器的网络监听端口号,数据库的名称,用户名和密码等信息,这些信息可以作为应用程序的配置信息来对待,即不要将这些信息写死在源程序中,而是写在一个文本文件中。
应用程序要连接数据库系统时,从该文本文件中读取所需要的信息,如果连接的数据库系统的信息发生了改变,则只需要修改该文本文件,而不用修改源程序,这个文本文件就是应用程序的配置文件。
传统的配置文件通常采用如下格式:#Db.PropertiesDBServer=192.168.0.100Port=1443Database=empUsername=xxxPassword=123上面这种格式的配置文件只能表述一些简单的信息,而很难表达具有层次结构和数据项目要动态增加的信息。
例如,如果要在一个文件中表达出“一个国家中的每个省及省长的名称,每个省下面的每个市及市长的名称,每个市下面的每个镇及镇长名称”,则上面使用的格式就很难表达。
采用XML格式的配置文件很容易表达出这种层次结构。
比较HTML和XML 标记语言XML和HTML一样,都衍生于SGML(Standard Generalized Markup Language,标准通用化标记语言)。
XML(eXtensible Markup Language)是一种用于描述数据的标记语言,它被设计用于传输和存储数据。
XML 通过使用标签(tag)来标识数据的结构和含义,具有自我描述性和可扩展性。
以下是 XML 的概念和基本格式:XML的基本概念:1.标记(Tag):在 XML 中,标记用于标识数据的元素和结构。
标记通常是成对出现的,包括开始标记和结束标记,它们用尖括号括起来。
例如,<element>和</element>。
2.元素(Element):在 XML 中,元素是由标记表示的基本数据单元。
一个元素包括开始标记、内容和结束标记。
例如:3.属性(Attribute):元素可以包含属性,属性提供有关元素的额外信息。
属性出现在开始标记中,并由空格分隔。
例如:4.文档(Document):整个 XML 数据被称为文档,一个 XML 文档通常包括一个根元素,根元素包含其他元素。
5.嵌套(Nesting):元素可以嵌套在其他元素中,形成层次结构。
例如:6.注释(Comment):注释在 XML 中用<!-- 注释内容 -->的形式表示。
XML的基本格式:一个简单的 XML 文档通常包含一个根元素,根元素包含其他元素。
以下是一个基本的 XML 文档示例:在这个例子中:▪<?xml version="1.0" encoding="UTF-8"?>声明了 XML 文档的版本和字符编码。
▪<bookstore>是根元素,包含两个<book>元素。
▪<book>元素包含<title>、<author>和<price>元素。
▪属性用于提供有关书籍类别和语言的额外信息。
XML 提供了一种通用的、可扩展的数据表示方法,常被用于配置文件、数据交换、Web服务等领域。
xml格式讲解XML(eXtensible Markup Language)是一种用于描述和传输数据的标记语言。
它能够通过自定义标签来定义数据的结构和内容。
本文将对XML格式进行详细讲解。
一、XML的基本语法XML采用了类似于HTML的标签语法,但与HTML不同的是,XML标签必须自行定义,且对大小写敏感。
以下是XML的基本语法要点:1. 标签:XML使用尖括号(< >)来定义标签,标签通常成对出现,分为开始标签和结束标签。
例如:<book>...</book>2. 元素(Element):元素由开始标签、结束标签和标签内容组成。
例如:<name>John</name>3. 属性(Attribute):属性为元素提供更多的信息,通常出现在开始标签中。
例如:<book category="novel">...</book>4. 注释:注释用于添加对XML代码的说明,以"<!--"开头,以"-->"结尾。
例如:<!-- This is a comment -->二、XML的文档结构一个合法的XML文档必须包含一个根元素,并且所有的元素都必须严格嵌套。
以下是一个简单的XML文档示例:<?xml version="1.0" encoding="UTF-8"?><library><book><title>《Pride and Prejudice》</title><author>Jane Austen</author></book><book><title>《1984》</title><author>George Orwell</author></book></library>在上述示例中,根元素是"library",它包含了两个子元素"book",并且每个"book"元素分别包含了"title"和"author"元素。
M L技术实验M L语法 Company number【1089WT-1898YT-1W8CB-9UUT-92108】实验1—XML的语法实验日期:2015.3.9实验室:204信息管理实验室学号:姓名:何瑞班级:计科5班实验目的1.安装并学习如何使用XMLSPY集成开发环境完成XML相关的开发工作。
2.熟悉和掌握XML规范的基本内容,包括XML声明、注释、处理指令、元素、属性、CDATA段、预定义实体、命名空间的使用,以及如何进行XML文档良构和有效性验证;能够灵活地使用XML层次数据来表示各种信息。
实验环境1.硬件2.软件:XMLSpy2011实验原理一、XML文档结构一个XML文档由声明、元素及其属性、注释、字符引用和处理指令组成,所有这些都在文档中用显式标记指明。
文档的数据部分开始于根(root)元素。
二、规范的XML文档规范的XML文档包含两层含义:一个是指格式良好的XML文档,另一个是指有效的XML文档。
所谓格式良好的XML文档即符合XML1.0规范的文档;而有效的XML文档是指文档中的数据应受到本文档中相应数据规则的限制。
格式良好的XML文档应符合以下要求:▪有且只有一个根元素▪元素必须合理结束:开始标记必须与结束标记相对应▪标记是大小写敏感的▪标记必须正确嵌套图XML文档结▪元素属性必须有值,属性值必须使用引号引起来实验任务<row><aID>1</aID><spyREF>A001</spyREF><alias>SpyGrrrl</alias></row><row><aID>2</aID><spyREF>A001</spyREF><alias>LaFemmeNikki</alias> </row><row><aID>3</aID><spyREF>A006</spyREF><alias>LL</alias></row><row><aID>4</aID><spyREF>A006</spyREF><alias>Fred</alias></row><row><aID>5</aID><spyREF>A003</spyREF><alias>BigEars</alias></row><row><aID>6</aID><spyREF>A004</spyREF><alias>InspectorGadget</alias> </row><row><aID>7</aID><spyREF>A004</spyREF><alias>DonAdams</alias></row></aliasTable><missionTable><row><aID>M101</aID><spyREF>A001</spyREF><date>2005/4/15</date><description>Crackthecode</description><status>MissionAccomplished</status></row><row><aID>M102</aID><spyREF>A001</spyREF><date>2006/2/15</date><description>Getthesource</description><status>MissionAccomplished</status></row><row><aID>M103</aID><spyREF>A001</spyREF><date>2006/5/4</date><description>Hittherapid</description><status>InProgress</status></row><row><aID>M104</aID><spyREF>A006</spyREF><date>2006/6/15</date><description>Shoottherapid</description><status>InProgress</status></row><row><aID>M105</aID><spyREF>A003</spyREF><date>2005/11/4</date><description>Getthebigcheese</description><status>InProgress</status></row><row><aID>M106</aID><spyREF>A003</spyREF><date>2006/4/4</date><description>Mapthearea</description><status>InProgress</status></row><row><aID>M107</aID><spyREF>A099</spyREF><date>2006/5/2</date><description>GetSmart</description><status>InProgress</status></row><row><aID>M108</aID><spyREF>A004</spyREF><date>1967/2/15</date><description>ProtectChief</description><status>InProgress</status></row><row><aID>M109</aID><spyREF>A004</spyREF><date>2006/6/15</date><description>Getsamestyle</description><status>MissionAccomplished</status> </row></missionTable><spyTable><row><spyID>A001</spyID><firstName>Nikki</firstName><lastName>Devgood</lastName></row><row><spyID>A006</spyID><firstName>Link</firstName><lastName>Lister</lastName></row><row><spyID>A003</spyID><firstName>Danger</firstName><lastName>Mause</lastName></row><row><spyID>A099</spyID><firstName>Barbara</firstName><lastName>Feldon</lastName></row><row>。
实验1 XML基础(6课时)一、实验目的1.掌握XML文档结构。
2.掌握XML文件基本语法。
3.理解XML名称空间。
4.掌握XML的工具的用法。
5.掌握在DTD文档中声明元素、属性的各种方法。
6.理解各种实体的含义和适用范围。
7.掌握在Schema文档中声明元素、属性的各种方法。
8.使用Schema中的名称空间9.编写Schema进行XML有效性验证。
二、实验讲解1.XML基础XML扩展了HTML的标识和功能,使编程人员可以根据需要定义标记。
XML 还具有信息描述、交换等多项功能。
掌握XML的语法知识是进一步学习和运用XML技术的前提。
本实验演示编制XML文档的常用语法和基本规则,主要包括XML 基本语法、XML文档的基本组成等,这些内容是学习整个XML的基础。
2.xml的主要基本技术xml的主要基本技术包括:a)XML1.0规范:主要规定了如何定义XML文档及XML的语法规范。
b)XML文档定义和校验:主要包括DTD、xml Schema和名域。
c)XML中的定位和链接:包括XML的定位语言XPath、XPath的扩展XPointer和XML的链接语言XLink。
d)XML的转换和处理:包括XML转换语言XSLT、基于树结构的解析DOM和基于事件的解析SAX。
e)XML的表现形式:包括层叠样式表CSS和XSL格式化对象。
f)xml的工具3.xml的主要工具g)编辑器:用来编辑xml文档的工具。
主流产品有XML SPY和XML Writer等工具。
h)解析器:XML文档也必须通过XML解析器的解析之后才能在浏览器中正常显示。
主要有IBM XML4J解析器、MS XML 解析器和expat解析器。
i)浏览器XML文档在被解析器解析后,就可以通过浏览器进行显示。
主要有Internet Explorer(IE)和Mozilla。
4.内部DTDDTD分为内部DTD和外部DTD。
内部DTD指所有的DTD规则出现在XML文档内部,更准确地说是XML文档的序(PROLOG)中,其语法格式为:<!DOCTYPE 根元素名[.DTD规则(包括元素、属性、实体的声明和引用)]>如:<?xml version="1.0" encoding="gb2312"?><!--进行DTD声明--><!DOCTYPE hello [<!--声明hello的属性是#PCDATA--><!ELEMENT hello (#PCDATA)>]><hello>Hello,the world!</hello>5.外部DTD如果是用同一DTD来验证多个XML文档,外部DTD是最合适的解决方案,这样DTD可以得到重用,也能缩短开发周期。
外部DTD的语法格式如下:<!DOCTYPE 根元素名SYSTEM “外部DTD_URI”>或<!DOCTYPE 根元素名PUBLIC “DTD_NAME” “外部DTD_URI”>1)元素类型声明DTD中使用元素类型声明ETD(Element Type Declaraction)来声明所有有效的文档元素。
根元素声明其声明的语法格式为:<!DOCTYPE 根元素名[]>请参阅上节各个实例,在此不再累述。
ETD的结构<!ELEMENT 元素名元素内容描述>“有效的”XML文档规定文档中所使用的任何元素都必须在DTD 中给出定义2)正则表达式3)DTD属性的缺省值6.Xml schema和DTDDTD与XML Schema 相比,存在着严重的局限性。
DTD 要求元素由以下三种成分组成:文本字符串、文本字符串与其他子元素的混合和一组子元素。
与DTD相比,XML Schema功能更强大。
如清单 1 给出了一个XML 文档片段,清单 2 用DTD 语法声明了这两个元素,清单 3 则是相应的XML Schema 语法形式。
要注意,清单 3 中所用的是相同的XML 语法。
通过模式,验证解析器可以检查元素InvoiceNo 是否是正整数,元素ProductID 的首字符是否为 A 到Z 之间的字母,后面为六个阿拉伯数字。
清单1:XML 文档片段<InvoiceNo>123456789</InvoiceNo><ProductID>J123456</ProductID>清单2:描述清单 1 中元素的DTD 片段<!ELEMENT InvoiceNo (#PCDATA)><!ELEMENT ProductID (#PCDATA)>清单3:描述清单 1 中元素的XML Schema<element name='InvoiceNo' type='positive-integer'/><element name='ProductID' type='ProductCode'/><simpleType name='ProductCode' base='string'><pattern value='[A-Z]{1}d{6}'/></simpleType>三、实验内容1.使用xml spy编辑如下文档,保存后使用IE进行显示。
文件Welcome.xml<?xml version="1.0" encoding="gb2312"?><?xml-stylesheet type="text/css" href="welcome.css" ?><Example><title>你好,XML</title><Greeting>你好,欢迎来到XML的世界!</Greeting></Example>文件welcome.csstitle {display:block;color:red;font-size:20pt;text-align:center}Greeting {display:block;font-weight:bold;color:Green} 2.合并XML文档作者信息XML文档片段。
<?xml version="1.0" encoding="gb2312" ?><authors><author id="a0001" ISBN="ISBN7-04-014768-8"><a_name>丁跃潮</a_name><sex>男</sex><email> ding@</email></author><author id="a0002" ISBN="ISBN7-113-05892-2"><a_name>龚涛</a_name><sex>男</sex></author></authors>书籍信息XML文档片段。
<?xml version="1.0" encoding="gb2312" ?><books><book ISBN="ISBN7-04-014768-8"><b_name>计算机导论</b_name><price>19.7</price></book><book ISBN="ISBN7-113-05892-2"><b_name>PowerBuilder入门教程</b_name><price>48.0</price></book>出版社信息XML文档片段。
<?xml version="1.0" encoding="gb2312" ?><publishers><publisher ISBN="ISBN7-04-014768-8"><p_name>高等教育出版社</p_name><address>北京市东城区沙滩后街55号</address></publisher><publisher ISBN="ISBN7-113-05892-2"><p_name>中国铁道出版社</p_name><address>北京市宣武区右安门西街8号</address></publisher></publishers>合并得到3.下面是一个网上购物定单,写出该订单的XML格式。
顾客编号:X00349827,定单号:DD934809 定货时间:2004-05-17,付款方式:邮局汇款通讯地址:xxx市xxx路xxx号,邮编:123456,汇款地址:yyy市yyy路yyy号,收款人xxxx书店,定书号:001 书名:AAA 数量:1 价格:34.00定书号:002 书名:BBB 数量:1 价格:29.00定书号:003 书名:CCC 数量:1 价格:41.004.改错<?xml encoding="utf-8"?><!DOCTYPE 联系人列表[<!ELEMENT 联系人列表(联系人)*><!ELEMENT 联系人(姓名, (电话| E-mail), 手机?)> <!ELEMENT 姓名(#PCDATA)><!ELEMENT E-mail (#PCDATA)><!ELEMENT 手机(#PCDATA)>]><联系人列表><联系人><姓名>张三</姓名><电话>(023)12345678</电话><E-mail>zhang@</E-mail></联系人></联系人列表>5.填空<?xml encoding="utf-8"?><!DOCTYPE [<!ELEMENT 联系人列表(联系人)*><!ELEMENT 联系人(姓名, 电话)><!ELEMENT 姓名(#PCDATA)><!ELEMENT 电话(#PCDATA)><!ATTLIST 联系人CDATA #REQUIRED>]><联系人列表><联系人地址=""重庆""><姓名>张三</姓名><电话>123</电话></联系人></联系人列表>6.编写XML文档创建根元素仓库,声明XML文档的命名空间:原料仓库、成品仓库和废料仓库。