版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章XML基础课程地位G1:282CBTHTMLLogicJavaC#/WinFormsCLangugeJavaScriptSQLAdvanceJavaOOPG2:368XHTML.Net/OOPServlet/JSPWeb2.0NTCG3:432ASP.Net/MVCORACLEPS/FlashC#AdvanceEnterpriselibWCF/Silverlight.NETPRTLAMPEnterpriseDevelopLinux/WeblogicStruts/MVCWeb2.0NTCHibernate/EJBSpringJ2EEPRTJ2EEPMPPRT:B/SB2C.NETPMPSQLBaseADO.NETPRT1:ADO.Net+WinForms+SQLC/S课程目标学习内容XML基础XMLDOMXPath和XQueryWebServiceJavaScript高级编程Ajax原理ASP.NETAjax框架jQuery框架学习目标能够编写规范的XML文档能够编写DTD和Schema验证XML文档能够使用DOM解析XML文档能够使用XPath和XQuery查询XML数据能够使用创建和调用WebService能够使用JavaScript面向对象编程能够使用ASP.NETAjax框架创建富客户端的WEB程序能够使用jQuery框架增强客户体验实战项目综合项目:使用Ajax和推技术的聊天室系统本章内容XML的语法及优势XML文档类型定义XML模式定义语言本章目标理解XML的优势掌握XML的声明、元素和属性能够使用DTD对文档类型进行定义能够使用Schema定义XML文档数据类型1.XML简介SGML1.1XML发展历史及作用XML的发展历史HTMLXML1986年1989年1998年XML在1998年成为W3C的标准1.1XML发展历史及作用XML的作用把数据从HTML分离简化数据共享简化数据传输简化平台的变更延伸了数据使用用于创建新的Internet语言1.2XML的语法和结构XML结构<?xmlversion="1.0"encoding="gb2312"?><note><to>Ben</to><from>Jack</from><heading>Message</heading><body>今晚8点全体公司员工一起聚餐!</body></note>XML声明:版本、编码、是否需要DTD(standalone)文档的根元素4个子元素XML文档树结构XML的语法和结构XML文档应该遵循的规则XML文档必须有且只能有一个根元素XML文档必须有关闭标签XML标签对大小写敏感XML元素必须被正确的嵌套XML属性必须加引号XML中,空格会被保留XML的语法和结构元素XML元素是从(且包括)开始标签直到(且包括)结束标签的部分<?xmlversion="1.0"encoding="gb2312“?><note><date>2010年2月14</date><to>Ben</to><from>Jack</from><heading>Message</heading><body>今晚8点全体公司员工一起聚餐!</body></note>元素可以拥有属性元素可以扩展元素可以包含文本元素可以有子元素XML的语法和结构属性属性(Attribute)提供关于元素的额外信息属性只能包含一个值属性不易扩展可以使用属性的都能使用子元素来替换元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素<?xmlversion="1.0"encoding="gb2312"?><notedate="2010年2月14"><to>Ben</to><from>Jack</from><heading>Message</heading><body>今晚8点全体公司员工一起聚餐!</body></note>使用属性<?xmlversion="1.0"encoding="gb2312"?><note><date>2010年2月14</date><to>Ben</to><from>Jack</from><heading>Message</heading><body>今晚8点全体公司员工一起聚餐!</body></note>使用子元素<?xmlversion="1.0"encoding="gb2312"?><note> <date> <day>14</day> <month>2</month> <year>2010</year> </date><to>Ben</to><from>Jack</from><heading>Message</heading><body>今晚8点全体公司员工一起聚餐!</body></note>扩展元素XML的语法和结构实体实体实体类似于编程语言中的引用型变量,先定义后引用实体数据说明<<小于>>大于&&与号''单引号""双引号小结1XML的作用有哪些?在什么情况下使用属性比使用子元素更合适?2.XML文档类型定义——DTD2.1DTD简介DIT用于定义合法的XML文档,它使用一系列合法的元素来定义文档的结构内部的DTD声明,DTD被包含在XML源文件中<!DOCTYPE根元素[元素声明]>外部文档声明<!DOCTYPE根元素SYSTEM"文件名"><?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEnote[ <!ELEMENTnote(date,to,from,heading,body)> <!ELEMENTdate (#PCDATA)> <!ELEMENTto (#PCDATA)> <!ELEMENTfrom (#PCDATA)> <!ELEMENTheading (#PCDATA)> <!ELEMENTbody(#PCDATA)>]><note> <date>2010年2月14</date> <to>Ben</to> <from>Jack</from> <heading>Message</heading> <body>今晚8点全体公司员工一起聚餐!</body></note>直接使用内部DTD<?xmlversion="1.0"encoding="utf-8"?><!DOCTYPEnoteSYSTEM"note.dtd"><note> <date>2010年2月14</date> <to>Ben</to> <from>Jack</from> <heading>Message</heading> <body>今晚8点全体公司员工一起聚餐!</body></note> 引用外部定义的DTD文件2.2DTD的规则DTD中定义元素声明空元素<!ELEMENT元素名称EMPTY><!ELEMENTbrEMPTY>DTD中的空元素声明<br/>XML文档中使用空元素DTD的规则DTD中定义元素声明只有PCDATA的元素<!ELEMENT元素名称(#PCDATA)><!ELEMENTfrom(#PCDATA)>PCDATA类型的数据是被解析器解析的文本。实体以及标记。文本中的标签会被当作标记来处理,而实体会被展开DTD的规则DTD中定义元素声明带有任何内容的元素(PCDATA和CDATA)<!ELEMENT元素名称ANY><!ELEMENTnoteANY>DTD的规则DTD中定义元素声明带有子元素的元素<!ELEMENT元素名称(子元素名称1,子元素名称2,.....)><!ELEMENTnote(date,to,from,heading,body)><!ELEMENTdate (#PCDATA)><!ELEMENTto (#PCDATA)><!ELEMENTfrom (#PCDATA)><!ELEMENTheading (#PCDATA)><!ELEMENTbody (#PCDATA)>XML文档中元素出现的顺序不能变DTD的规则DTD中定义元素声明只出现一次的元素<!ELEMENT元素名称(子元素名称)><!ELEMENTnote(message)>message元素必须只在note元素中出现一次DTD的规则DTD中定义元素元素后面使用“+”声明至少出现一次的元素<!ELEMENT元素名称(子元素名称+)><!ELEMENTnote(message+)>message元素必须在note元素内至少出现一次DTD的规则DTD中定义元素元素后面加“*”声明出现零次或多次的元素<!ELEMENTnote(message*)><!ELEMENTnote(message*)>message元素可以在note元素中出现零次或多次DTD的规则DTD中定义元素使用
“?”声明出现零次或一次的元素<!ELEMENT元素名称(子元素名称?)><!ELEMENTnote(message?)>message元素可以在note元素中出现0次或1次DTD的规则DTD中定义元素使用“|”声明“非.../既...”类型的内容<!ELEMENTnote(to,from,header,(message|body))>Note元素的最后一个子元素为message或body,非此即彼DTD的规则DTD中定义元素声明混合型的内容<!ELEMENTnote(#PCDATA|to|from|header|message)*>“note”元素可包含出现零次或多次的PCDATA类型数据、“to”、“from”、“header”或者“message”DTD的规则类型描述CDATA值为字符数据(characterdata)(en1|en2|..)值是枚举列表中的一个值ID值为唯一的idIDREF值为另外一个元素的idIDREFS值为其他id的列表NMTOKEN值为合法的XML名称NMTOKENS值为合法的XML名称的列表ENTITY值是一个实体ENTITIES值是一个实体列表NOTATION此值是符号的名称xml:值是一个预定义的XML值DTD中定义属性属性通过ATTLIST声明来进行声明<!ATTLIST元素名称属性名称属性类型默认值>属性类型的选项值解释值属性的默认值#REQUIRED属性值是必需的#IMPLIED属性不是必需的#FIXEDvalue属性值是固定的属性的默认值规则DTD定义:<!ELEMENTsquareEMPTY><!ATTLISTsquarewidthCDATA"0">XML应用:<squarewidth="100"/>DTD:<!ATTLISTcontactfaxCDATA#IMPLIED>XML:<contactfax="555-667788"/>或者<contact/>DTD:<!ATTLISTpersonnumberCDATA#REQUIRED>合法的XML:<personnumber="5677"/>非法的XML:<person/>DTD:<!ATTLISTsendercompanyCDATA#FIXED"Microsoft">合法的XML:<sendercompany="Microsoft"/>非法的XML:<sendercompany="mstanford"/>DTD:<!ATTLISTpaymenttype(check|cash)"cash">XML:<paymenttype="check"/>或者<paymenttype="cash"/>DTD的规则DTD中定义实体实体是用于定义引用普通文本或特殊字符的快捷方式的变量内部实体声明:<!ENTITY实体名称"实体的值">外部实体声明:<!ENTITY实体名称SYSTEM"URI/URL">DTD的规则<?xmlversion="1.0"encoding="gb2312"?><!DOCTYPECD[<!ELEMENTCD(唱片*)><!ELEMENT唱片(名称,年份?,专辑名称?)><!ATTLIST唱片包装CDATA"木质包装收藏版"><!ATTLIST唱片碟片数CDATA#REQUIRED><!ELEMENT名称(#PCDATA)><!ELEMENT年份(#PCDATA)><!ELEMENT专辑名称(#PCDATA)><!ATTLIST专辑名称歌手CDATA#REQUIRED><!ENTITYen"MadeInIndia">]><CD><唱片包装="普通"碟片数="1"><名称>&en;</名称><年份>2006</年份><专辑名称歌手="Alisa">&en;</专辑名称></唱片><唱片包装="普通"碟片数="2"><名称>改变世界</名称><年份>2005</年份><专辑名称歌手="王力宏">改变世界</专辑名称></唱片></CD>自定义实体引用自定义实体小结2DTD中如何定义元素?DTD中如何定义属性?DTD中如何定义实体?XML文档如何引用实体?DTD元素定义中的“+”、“*”、“?”的含义是什么? 3.XML模式定义语言-Schema3.1为什么需要XMLSchemaXMLSchema的作用定义可出现在文档中的元素定义可出现在文档中的属性定义哪个元素是子元素定义子元素的次序定义子元素的数目定义元素是否为空,或者是否可包含文本定义元素和属性的数据类型定义元素和属性的默认值以及固定值为什么需要XMLSchemaXMLSchema可以实现以下功能XMLSchema支持数据类型XMLSchema可针对未来的需求进行扩展XMLSchema比DTD更完善,功能更强大XMLSchema基于XML编写,而DTD的语法晦涩,并不符合 XML语法规则XMLSchema支持命名空间3.2XMLSchema的语法和结构简单类型XMLSchema简单类型用来定义简易元素和属性定义简易元素<xs:elementname="元素名"type="元素类型"/>XMLSchema中定义:<xs:elementname="name"type="xs:string"/><xs:elementname="age"type="xs:integer"/><xs:elementname="birthday"type="xs:date"/>XML文档中使用:<name>Jack</name><age>20</age><birthday>1990-12-20</birthday>简易元素指那些仅包含文本的元素,它不包含任何其他的元素或属性简易元素的固定值和默认值<xs:elementname="color"type="xs:string"default="red"/><xs:elementname="bgcolor"type="xs:string"fixed="white"/>XMLSchema的语法和结构简单类型定义属性<xs:attributename="属性名"type="属性类型"/><xs:attributename="lang"type="xs:string"default="简体中文"/><xs:attributename="sex"type="xs:string"fixed="男"/><xs:attributename="age"type="xs:string"use="required"/>属性默认值属性固定值必须的输出型XMLSchema的语法和结构简单类型限定使用XMLSchema中的<xs:simpleType>元素创建自定义的简单类型。该元素的子元素<xs:restriction>指定限定的规则限定描述enumeration定义可接受值的一个列表fractionDigits定义所允许的最大的小数位数。必须大于等于0length定义所允许的字符或者列表项目的精确数目。必须大于或等于0maxExclusive定义数值的上限。所允许的值必须小于此值maxInclusive定义数值的上限。所允许的值必须小于或等于此值maxLength定义所允许的字符或者列表项目的最大数目。必须大于或等于0minExclusive定义数值的下限。所允许的值必需大于此值minInclusive定义数值的下限。所允许的值必需大于或等于此值minLength定义所允许的字符或者列表项目的最小数目。必须大于或等于0pattern定义可接受的字符的精确序列totalDigits定义所允许的阿拉伯数字的精确位数。必须大于0whiteSpace定义空白字符(换行、回车、空格以及制表符)的处理方式XMLSchema的语法和结构<xs:elementname="age"><xs:simpleType>
<xs:restrictionbase="xs:integer">
<xs:minInclusivevalue="0"/><xs:maxInclusivevalue="120"/></xs:restriction></xs:simpleType></xs:element>限定值的范围<xs:elementname="shape"><xs:simpleType><xs:restrictionbase="xs:string">
<xs:enumerationvalue="Triangle"/><xs:enumerationvalue="Rectangle"/><xs:enumerationvalue="Circle"/></xs:restriction></xs:simpleType></xs:element>限定一组值<xs:elementname="letter"><xs:simpleType><xs:restrictionbase="xs:string">
<xs:patternvalue="[A-Z][A-Z][A-Z]"/></xs:restriction></xs:simpleType></xs:element>使用正则表达式限定一系列值<xs:elementname="address"><xs:simpleType><xs:restrictionbase="xs:string">
<xs:whiteSpacevalue="collapse"/></xs:restriction></xs:simpleType></xs:element>限定空白字符<xs:elementname="username"><xs:simpleType><xs:restrictionbase="xs:string">
<xs:lengthvalue="8"/></xs:restriction></xs:simpleType></xs:element><xs:elementname="password"><xs:simpleType><xs:restrictionbase="xs:string"><xs:minLengthvalue="5"/><xs:maxLengthvalue="8"/></xs:restriction></xs:simpleType></xs:element>限定长度XMLSchema的语法和结构复杂类型用于定义复合元素空元素包含其他元素的元素仅包含文本的元素包含元素和文本的元素
定义和使用复合元素直接在定义复杂类型时定义复合元素
定义一个复杂类型,通过元素属性引用该类型
依据复合元素扩展出更复杂的符合元素
<xs:elementname="employee">
<xs:complexType>
<xs:sequence>
<xs:elementname="username"type="xs:string"/><xs:elementname="department"type="xs:string"/></xs:sequence></xs:complexType></xs:element><xs:elementname="employee"type="person"/><xs:complexTypename="person"><xs:sequence><xs:elementname="username"type="xs:string"/><xs:elementname="department"type="xs:string"/></xs:sequence></xs:complexType><xs:elementname="employee"type="fullperson"/><xs:complexTypename="person">定义复杂类型person<xs:sequence><xs:elementname="username"type="xs:string"/><xs:elementname="department"type="xs:string"/>定义复杂类型fullperson</xs:sequence></xs:complexType><xs:complexTypename="fullperson">扩展已定义的复杂类型person
<xs:complexContent>
<xs:extensionbase="person"><xs:sequence><xs:elementname="address"type="xs:string"/><xs:elementname="zip"type="xs:int"/><xs:elementname="birthday"type="xs:date"/></xs:sequence></xs:extension></xs:complexContent></xs:complexType>XMLSchema的语法和结构定义复杂类型规则定义空元素的复杂类型<xs:elementname="student"><xs:complexType>
<xs:complexContent><xs:restrictionbase="xs:string"><xs:attributename="sno"type="xs:string"/></xs:restriction></xs:complexContent></xs:complexType></xs:element>元素内只能出现属性,不能有文本或其他子元素XMLSchema的语法和结构定义复杂类型规则定义仅包含元素的复杂类型<xs:elementname="employee">
<xs:complexType>
<xs:sequence>
<xs:elementname="username"type="xs:string"/><xs:elementname="department"type="xs:string"/></xs:sequence></xs:complexType></xs:element>元素内只能出现子元素,不能有文本或属性XMLSchema的语法和结构定义复杂类型规则定义仅包含文本的复杂类型<xs:elementname="zip"type="ziptype"/><xs:complexTypename="ziptype"><xs:simpleContent>
<xs:extensionbase="xs:integer">
<xs:attributename="area"type="xs:string"/></xs:extension></xs:simpleContent></xs:complexType>元素仅包含简易的内容(文本和属性),不能包含其他子元素XMLSchema的语法和结构定义复杂类型规则定义带有混合内容的复杂类型<xs:elementname="order"type="ordertype"/><xs:complexTypename="ordertype"mixed="true"><xs:sequence><xs:elementname="name"type="xs:string"/><xs:elementname="orderid"type="xs:positiveInteger"/><xs:elementname="shipdate"type="xs:date"/></xs:sequence></xs:complexType>允许元素包含元素属性或文本XMLSchema的语法和结构复杂类型指示器指示器指的是可以在XMLSchema中控制元素的使用方式XMLSchema有3类指示器Order指示器用于定义元素的顺序Occurrence指示器用于定义某个元素出现的频率Group指示器用于对相关的元素或属性分组指示器分类作用allOrder规定子元素可以按照任意顺序出现,且每个子元素必须只出现一次choiceOrder规定可出现某个子元素或者可出现另外一个子元素(非此即彼)sequenceOrder子元素必须按照特定的顺序出现maxOccursOccurrence规定某个元素可出现的最大次数minOccursOccurrence规定某个元素能够出现的最小次数groupnameGroup定义元素组:必须在group声明内部定义一个all、choice或者sequence元素attributeGroupnameGroup定义属性组XMLSchema的语法和结构<xs:elementname="employee"><xs:complexType>
<xs:all><xs:elementname="age"type="xs:int"/><xs:elementname="birthday"type="xs:date"/></xs:all></xs:complexType></xs:element>age元素和birthday元素出现的顺序不要求<xs:elementname="person"><xs:complexType><xs:choice><xs:elementname="employee"type="employee"/><xs:elementname="customer"type="customer"/></xs:choice></xs:complexType></xs:element>employee元素和customer元素二选一<?xmlversion="1.0"encoding="ISO-8859-1"?><xs:schemaxmlns:xs="/2001/XMLSchema"elementFormDefault="qualified"><xs:elementname="employees"><xs:complexType><xs:sequence>
<xs:elementname="employee"maxOccurs="unbounded"><xs:complexType><xs:sequence><xs:elementname="name"type="xs:string"/>
<xs:elementname="telephone"type="xs:string"minOccurs="0"maxOccurs="5"/></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element></xs:schema>元素<employees>的子元素<employee>可以无限次的出现,但<employee>的子元素<telephone>最少可以出现0次,最多可以出现5次。<xs:groupname="persongroup"><xs:sequence><xs:elementname="name"type="xs:string"/><xs:elementname="birthday"type="xs:date"/></xs:sequence></xs:group><xs:elementname="person"type="personinfo"/>引用元素组<xs:complexTypename="personinfo"><xs:sequence>
<xs:groupref="persongroup"/>
<xs:elementname="country"type="xs:string"/></xs:sequence></xs:complexType>元素<person>包含子元素<name>、<birthday>和<country>,且必须按这个顺序出现。<name>和<birthday>子元素是通过元素组的方式定义后被引用的XMLSchema的语法和结构复杂类型综合示例 <xs:complexTypename="shiptotype"> <xs:sequence> <xs:elementname="name"type="stringtype"/> <xs:elementname="address"type="stringtype"/> <xs:elementname="city"type="stringtype"/> <xs:elementname="country"type="stringtype"/> </xs:sequence> </xs:complexType> <xs:complexTypename="itemtype"> <xs:sequence> <xs:elementname="title"type="stringtype"/> <xs:elementname="note"type="stringtype"minOccurs="0"/> <xs:elementname="quantity
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 直槽调节板课程设计
- 域名续费协议书
- 2024年医院护工岗位责任制及薪酬待遇合同3篇
- 2024年版:金融企业秘密保护合同
- 材料成型的课程设计
- 玉米播种机课程设计
- 文员岗位试用期工作总结范文(9篇)
- 2024年度商业空间托管装修材料供应合同范本3篇
- 2025年山东淄博沂源县青年见习岗位招募历年管理单位笔试遴选500模拟题附带答案详解
- 2025年山东淄博市淄川区“名校人才特招行动”招聘事业单位人员763人历年管理单位笔试遴选500模拟题附带答案详解
- 养老院安全巡查记录制度
- 2024年度三方新能源汽车充电桩运营股权转让协议3篇
- 期末(试题)-2024-2025学年人教PEP版英语六年级上册
- 2024年公安基础知识考试题库及答案
- 三创赛获奖-非遗文化创新创业计划书
- 教你成为歌唱达人智慧树知到期末考试答案2024年
- 冷库项目专项扶持资金申请报告(模板范本)
- 铂铑合金漏板.
- 少年宫篮球活动教案
- 国有建设企业《大宗材料及设备采购招标管理办法》
- 民间秘术绝招大全
评论
0/150
提交评论