版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
XMLStevenHolzner,SamsTeachYourselfXMLin21Days,ThirdEdition.2003.1分布式系统-XML1.XML基础2分布式系统-XMLMarkupLanguages<HTML><HEAD><TITLE>HelloFromHTML</TITLE></HEAD><BODY><CENTER><H1>AnHTMLDocument</H1></CENTER>ThisisanHTMLdocument!</BODY></HTML>标记是文档中数据的描述和解释3分布式系统-XMLXMLeXtensibleMarkupLanguage元语言,创建标记语言的语言4分布式系统-XML<?xmlversion=“1.0”?><PersonList
Type=“Student”Date=“2002-02-02”><Title
Value=“StudentList”/><Person>………</Person><Person>………</Person></PersonList>ElementsarenestedRootelementcontainsallothers
Element(ortag)namesExampleelementsRootelementEmptyelement
attributesdeclaration5分布式系统-XMLMoreTerminology<PersonName=“John”Id=“111111111”>Johnisanicefellow<Address><Number>21</Number><Street>MainSt.</Street></Address>………</Person>OpeningtagClosingtag:WhatisopenmustbeclosedNestedelement,childofPersonParentofAddress,Ancestorofnumber“standalone”text,notusefulasdataChildofAddress,DescendantofPersonContentofPerson6分布式系统-XMLIE中浏览XML文档7分布式系统-XMLAnXMLDocumentUsingaStyleSheet<?xmlversion="1.0"?><?xml-stylesheettype="text/css"href="ch01_04.css"?><PersonListType="Student"Date="2002-02-02"><TitleValue="StudentList"/><PersonName="John"Id="111111111"> Johnisanicefellow <Address><Number>21</Number><Street>MainSt.</Street> </Address> ...</Person><Person>...</Person></PersonList>8分布式系统-XMLch01_04.cssPerson{display:block;font-size:18pt;color:#0000ff;text-align:left}9分布式系统-XML使用JavaScript抽取数据<?xmlversion="1.0"encoding="UTF-8"?><?xml-stylesheettype="text/css"href="ch01_04.css"?><document>
<heading>HelloFromXML</heading><message>ThisisanXMLdocument!</message></document>10分布式系统-XML使用JavaScript抽取数据<HTML><HEAD><TITLE>RetrievingdatafromanXMLdocument</TITLE><XMLID="firstXML"SRC="ch01_02.xml"></XML><SCRIPTLANGUAGE="JavaScript">functiongetData(){xmldoc=document.all("firstXML").XMLDocument;nodeDoc=xmldoc.documentElement;nodeHeading=nodeDoc.firstChild;outputMessage="Heading:"+nodeHeading.firstChild.nodeValue;message.innerHTML=outputMessage;}</SCRIPT></HEAD>11分布式系统-XML使用JavaScript抽取数据<BODY><CENTER><H1>RetrievingdatafromanXMLdocument</H1><DIVID="message"></DIV><P><INPUTTYPE="BUTTON"VALUE="Readtheheading"ONCLICK="getData()"></CENTER></BODY></HTML>12分布式系统-XML使用JavaScript抽取数据13分布式系统-XML使用Java从XML文档中抽取数据importjavax.xml.parsers.*;importorg.w3c.dom.*;importjava.io.*;publicclassch01_06{staticpublicvoidmain(String[]argv){try{DocumentBuilderFactorydbf=DocumentBuilderFactory.newInstance();DocumentBuilderdb=null;try{db=dbf.newDocumentBuilder();}catch(ParserConfigurationExceptionpce){}Documentdoc=null;doc=db.parse("ch01_02.xml");14分布式系统-XML使用Java从XML文档中抽取数据for(Nodenode=doc.getDocumentElement().getFirstChild();node!=null;node=node.getNextSibling()){if(nodeinstanceofElement){if(node.getNodeName().equals("heading")){StringBufferbuffer=newStringBuffer();for(Nodesubnode=node.getFirstChild();subnode!=null;subnode=subnode.getNextSibling()){if(subnodeinstanceofText){buffer.append(subnode.getNodeValue());}}System.out.println(buffer.toString());}}}}catch(Exceptione){e.printStackTrace();}}}15分布式系统-XML使用Java从XML文档中抽取数据>javach01_06HelloFromXML16分布式系统-XMLWell-formedXMLDocumentsMusthavearootelementEveryopeningtagmusthavematchingclosingtagElementsmustbeproperlynested<foo><bar></foo></bar>isano-noAnattributenamecanoccuratmostonceinanopeningtag.Ititoccurs,Itmusthaveavalue(booleanattrs,likeinHTML,arenotallowed)Thevaluemustbequoted(with“or‘)XMLprocessorsarenotsupposedtotryandfixill-formeddocuments(unlikeHTMLbrowsers)17分布式系统-XMLValidXMLDocuments<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEdocument[<!ELEMENTdocument(heading,message)><!ELEMENTheading(#PCDATA)><!ELEMENTmessage(#PCDATA)>]><document><heading>HelloFromXML</heading><message>ThisisanXMLdocument!</message></document>18分布式系统-XMLValidXMLDocumentAvalidXMLdocumentisdefinedbytheW3Casawell-formedXMLdocumentwhichalsoconformstotherulesofaDocumentTypeDefinition(DTD)oranXMLSchema/ski:mə/(XSD)19分布式系统-XMLXML应用XML用于存储、传输、结构化数据纯文本格式使它容易被在互联网上传输并被不同平台上的应用所处理过去5年中,已经出现了上百种XML子语言20分布式系统-XML使用MathML显示4x2–5x+6=0<?xmlversion="1.0"?><mathxmlns=""><mrow><mrow><mn>4</mn><mo>⁢</mo><msup><mi>x</mi><mn>2</mn></msup><mo>-</mo><mrow><mn>5</mn><mo>⁢</mo><mi>x</mi></mrow><mo>+</mo><mn>6</mn></mrow><mo>=</mo><mn>0</mn></mrow></math>21分布式系统-XML在Amaya浏览器中显示MathML文档22分布式系统-XMLXHTMLExtensibleHypertextMarkupLanguage更加严格允许增加自己的标记HTML4.01(当前版本)23分布式系统-XMLAnXHTMLDocument<?xmlversion="1.0"?><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"""><htmlxmlns=""xml:lang="en"lang="en"><head><title>AnXHTMLPage</title></head><body><h1>WelcometoXHTML!</h1><center><p>ThisisanXHTMLdocument.</p><p>Prettycool,eh?</p></center></body></html>24分布式系统-XML在IE中显示25分布式系统-XMLAnSVGDocument<?xmlversion="1.0"encoding="UTF-8"?><svgxmlns=""><title>SVGExample</title><ellipsecx="200"cy="100"rx="100"ry="60"style="fill:lightblue;stroke:blue;stroke-width:6"/></svg>26分布式系统-XML练习validXML文档一定是well-formed吗?well-formedXML文档一定是valid吗?27分布式系统-XML编辑XML文档XML编辑器XMLSpyVisualStudioXMLDesignerXRayXML浏览器IE,MostpowerfulgeneralJumbo,CMLbrowser28分布式系统-XMLJumbo29分布式系统-XMLXMLValidatorsMakesureitiswellformedandvalidScholarlyTechnologyGroup'svalidatorMicrosoft'sVisualStudio.NET30分布式系统-XMLerror.xml<?xmlversion="1.0"encoding="UTF-8"?><?xml-stylesheettype="text/css"href="ch01_04.css"?><!DOCTYPEdocument[<!ELEMENTdocument(heading,message)><!ELEMENTheading(#PCDATA)><!ELEMENTmessage(#PCDATA)>]><document><heading>HelloFromXML<message></heading>ThisisanXMLdocument!</message></document>31分布式系统-XML32分布式系统-XMLXMLvalidationinVisualStudio.NET33分布式系统-XML建立一个完整的XML文档<?xmlversion="1.0"encoding="UTF-8"?><document><heading>HelloFromXML</heading><message>ThisisanXMLdocument!</message></document>34分布式系统-XMLXML文档PrologsXMLdeclarationsProcessinginstructionsElementsandattributesCommentsCDATAsectionsEntities35分布式系统-XML字符编码问题ASCII仅有256个字符Chinese,Armenian,Hebrew,Thai,Tibetan从数量上、通用上,ASCII不能在Web上使用Unicode(http://),65,536个字符前256个对应ASCII但让所有的软件转去支持Unicode太困难UCSTransformationFormat-8(UTF-8)36分布式系统-XMLUTF-8所有ASCII字符的编码保持不变(8bit)其它Unicode字符使用2字节,直至6字节编码W3CrequiresallXMLprocessorstosupportbothUTF-8,UTF-16大部分支持UTF-837分布式系统-XML字符实体引用<?xmlversion="1.0"encoding="UTF-8"?><document><heading>HelloFromXML</heading><message>Thistextisinsidea<message>element.</message></document>38分布式系统-XML字符实体引用39分布式系统-XML字符实体引用<—Replacedwith<>—Replacedwith>&—Replacedwith&"—Replacedwith"'—Replacedwith'40分布式系统-XML实体实体是一大段文本的别名假如你为你的信件署名定义了一个实体lettersign,它代表下面这一大段文本:
张三
某网络公司销售部门
北京市海淀区中关村88号,10000041分布式系统-XML实体〈邮件〉
〈收件人〉李四〈/收件人〉
〈主题〉hello〈/主题〉
〈正文〉晚上吃饭!&lettersign;〈/正文〉
</邮件〉42分布式系统-XML一般实体和参数实体一般实体声明:<!ENTITYlettersign
"张三
某网络公司销售部门
北京市海淀区中关村88号,100000"〉参数实体声明:<!ENTITY%实体名"文本内容"〉43分布式系统-XML实体引用&<实体名>;注意:在引用XML实体之前,必须已经在XML文件中对此实体进行过声明;在实体引用中不能出现空格。也就是说,&lettersign;和&letterhead;的用法都会引起错误。尽管在一个实体中可以再引用其它实体,但是不能出现循环引用。也就是说,一个实体不能引用它自己;同样,也不能出现实体A引用实体B,然后实体B再反过来引用实体A的情况。实体引用不能在DOCTYPE声明中出现。实体引用的文本必须是形式良好的XML。44分布式系统-XML<?xmlversion="1.0"?>
<!DOCTYPE联系人列表[
<!ENTITYA公司地址“北京市五街1234号”>
<!ENTITYB公司地址“上海南京路9876号”〉
]><联系人列表>
<联系人>
<姓名>张三</姓名>
<公司>>A公司</公司>>
<地址>&A公司地址</地址>
</联系人>
<联系人>
<姓名gt;李四</姓名>
<公司>B公司</公司>
<地址>&B公司地址〈/地址〉
</联系人>
<联系人>
<姓名>王五</姓名>>
<公司>B公司</公司>
<地址>&B公司地址〈/地址〉
</联系人>
</联系人列表>一旦哪个公司搬家了,只须改变实体声明中有关该公司的地址,所有这个公司的联系人的地址也就都改过来了45分布式系统-XML空白Spaces,carriagereturns,linefeeds,andtabsarealltreatedaswhitespace<?xmlversion="1.0"encoding="UTF-8"?><document><heading>HelloFromXML</heading><message>ThisisanXMLdocument!</message></document><?xmlversion="1.0"encoding="UTF-8"?><document>heading>HelloFromXML</heading><message>ThisisanXMLdocument!</message></document>46分布式系统-XMLPrologs(序言)XMLdeclarationsXMLcommentsprocessinginstructionswhitespacedoctypedeclarations47分布式系统-XML<?xmlversion="1.0"encoding="UTF-8"?><!--Herecomesthedocumentelement...--><?xml-stylesheettype="text/css"href="ch_02.css"?><!DOCTYPEdocument[<!ELEMENTdocument(employee)*><!ELEMENTemployee(name,hiredate,projects)><!ELEMENTname(lastname,firstname)><!ELEMENTlastname(#PCDATA)><!ELEMENTfirstname(#PCDATA)><!ELEMENThiredate(#PCDATA)><!ELEMENTprojects(project)*><!ELEMENTproject(product,id,price)><!ELEMENTproduct(#PCDATA)><!ELEMENTid(#PCDATA)><!ELEMENTprice(#PCDATA)>]><document><employeestatus="retired">>
<name><lastname>Kelly</lastname><firstname>Grace</firstname>
</name><hiredate>October15,2005</hiredate><projects><project><product>Printer</product>…</document>XMLDeclarationXMLCommentsProcessingInstruction由处理器定义RootElementElement属性48分布式系统-XMLCDATACDATAstandsforcharacterdata,PCDATAstandsforparsedcharacterdata.<![CDATA[……]]>49分布式系统-XML<?xmlversion="1.0"standalone="yes"?><document><text>Here'showtheelementstarts:<![CDATA[<employeestatus="retired"><name><lastname>Kelly</lastname><firstname>Grace</firstname></name><hiredate>October15,2005</hiredate><projects><project><product>Printer</product><id>111</id><price>$111.00</price></project>...]]></text></document>50分布式系统-XMLInternetExplorertreatsthisCDATAsectionasunparsedtext51分布式系统-XML练习一个文本编辑器保存XML文档时,并不提示字符集。该编辑器是否可用?把文本数据“Thisisa<message>element”包含在元素<message>中,怎样做才不会迷惑XMLprocessor?XMLprolog可以包含哪些项目?52分布式系统-XMLXMLNamespaces解决文档内和文档间名字冲突的机制NamespacedeclarationNamespace–符号串,通常为URLPrefix–名字空间的缩写,相当于别名Actualname(elementorattribute)–prefix:nameDeclarations/prefixes作用范围
(scope)与begin/end类似Example:<itemxmlns=“http://”xmlns:toy=“http://”><name>backpack</name><feature><toy:item><toy:name>cyberpet</toy:name></toy:item></feature></item>Defaultnamespacetoynamespacereservedkeyword53分布式系统-XMLNamespaces(续)Scopesofdeclarationsarecolor-coded:<itemxmlns=“http://”xmlns:cde=“http://”><name>…</name><feature><cde:item><cde:name>…</cde:name><cde:item></feature><itemxmlns=“http:///”xmlns:cde=“http://”><name>…</name><cde:name>…</cde:name></item></item>Newdefault;overshadowsolddefaultRedeclarationofcde;overshadowsolddeclaration54分布式系统-XMLNamespaces(续)xmlns=“/bar”并不意味着此URL上有一个文档,这种格式仅仅是个约定俗成。一个namespace仅仅是个标识符一些前缀已经成为"标准"。E.g.,xsdforxslforEtc.55分布式系统-XMLValid&DTD<?xmlversion="1.0"?><!DOCTYPEdocument[<!ELEMENTdocument(employee)*><!ELEMENTemployee(name,hiredate,projects)><!ELEMENTname(lastname,firstname)><!ELEMENTlastname(#PCDATA)><!ELEMENTfirstname(#PCDATA)><!ELEMENThiredate(#PCDATA)><!ELEMENTprojects(project)*><!ELEMENTproject(product,id,price)><!ELEMENTproduct(#PCDATA)><!ELEMENTid(#PCDATA)><!ELEMENTprice(#PCDATA)>]>56分布式系统-XML<document><employee><name><lastname>Kelly</lastname><firstname>Grace</firstname></name><hiredate>October15,2005</hiredate><projects><project><product>Printer</product><id>111</id><price>$111.00</price></project><project><product>Laptop</product><id>222</id><price>$989.00</price></project></projects></employee>57分布式系统-XML
<employee><name><lastname>Grant</lastname><firstname>Cary</firstname></name><hiredate>October20,2005</hiredate><projects><project><product>Desktop</product><id>333</id><price>$2995.00</price></project><project><product>Scanner</product><id>444</id><price>$200.00</price></project></projects></employee>
<employee><name><lastname>Gable</lastname><firstname>Clark</firstname></name><hiredate>October25,2005</hiredate><projects><project><product>Keyboard</product><id>555</id><price>$129.00</price></project><project><product>Mouse</product><id>666</id><price>$25.00</price></project></projects></employee></document>58分布式系统-XML在NetBeans中新建XML文档59分布式系统-XML在NetBeans中新建XML文档60分布式系统-XMLCheckXMLXMLcheckingstarted.Checking...XMLcheckingfinished.61分布式系统-XMLValidateXMLXMLvalidationstarted.Checking...XMLvalidationfinished.62分布式系统-XMLValidatinghttp://63分布式系统-XMLValidating制造一个错误,比如<mame>改为<xingming>重新使用ValidateXML命令64分布式系统-XMLDocumentTypeDefinition(DTD)DTD
定义了XML文档的语法DTD是可选的如果文档符合它的DTD,该文档就称为
valid65分布式系统-XMLDTD(续)DTD作为文档的一部分:<?xmlversion=“1.0”?standalone=“yes”><!DOCTYPEcontact[………]><contact>………</contact>66分布式系统-XMLDTD(续)DTD作为单独的文件:<?xmlversion=“1.0”?standalone=“no”><!DOCTYPEContactSYSTEM"http://"><contact>………</contact>67分布式系统-XML单独的DTD文件<!ELEMENTcontact(employee)*><!ELEMENTemployee(name,hiredate,projects)><!ELEMENTname(lastname,firstname)><!ELEMENTlastname(#PCDATA)><!ELEMENTfirstname(#PCDATA)><!ELEMENThiredate(#PCDATA)><!ELEMENTprojects(project)*><!ELEMENTproject(product,id,price)><!ELEMENTproduct(#PCDATA)><!ELEMENTid(#PCDATA)><!ELEMENTprice(#PCDATA)>68分布式系统-XMLDTD(续)DTD作为单独的文件:<?xmlversion=“1.0”?standalone=“no”><!DOCTYPEcontactSYSTEM"http://"><contact>………</contact><!DOCTYPEcontactSYSTEM“contact.dtd"><!DOCTYPEcontactSYSTEM“../dtds/contact.dtd">绝对路径引用方式相对路径引用方式:DTD与XML文档同一路径相对路径引用方式:DTD与XML文档相对路径69分布式系统-XMLDTD(续)system关键字主要用于引用一个作者或组织所编写的众多XML文件中通用的DTD。还存在一种外部DTD,它是一个由权威机构制订的,提供给特定行业或公众使用的DTD。因此,另一个引用外部DTD的办法是使用关键字public,引用这一类公开给公众使用的DTD例<!DOCTYPEcontactPUBLIC"-//DonaldDong//ContactData//CN""http://">根元素DTD名称(所有者//类型//语言)DTD的URL70分布式系统-XMLDTD成分<!ELEMENTelt-name(…contents…)><!ATTLISTelt-nameattr-name
ID/IDREF/IDREFS#EMPTY/#IMPLIED/#REQUIRED
>注意:ELEMENT读['ɛləmənt]ATTRIBUTE读['æ
trɪbjut]可选71分布式系统-XMLValid&DTD<?xmlversion="1.0"?><!DOCTYPEdocument[<!ELEMENTdocument(employee)*><!ELEMENTemployee(intern?,name,hiredate,projects)><!ELEMENTname(lastname,firstname)><!ELEMENTlastname(#PCDATA)><!ELEMENTfirstname(#PCDATA)><!ELEMENThiredate(#PCDATA)><!ELEMENTprojects(project)*><!ELEMENTproject(product,id,price|discountprice)><!ELEMENTproduct(#PCDATA)><!ELEMENTid(#PCDATA)><!ELEMENTprice(#PCDATA)><!ELEMENTinternEMPTY>]>根元素0个或多个子元素被分析的字符数据序列选择空元素72分布式系统-XML子元素x+—x出现1次或多次.x*—x出现0次或多次.x?—x可选,不出现或出现一次.x,y—x的后继是y.顺序Sequencex|y—x或y—但不同时.Choice73分布式系统-XML顺序<!ELEMENT联系人(姓名,EMAIL)><!ELEMENT姓名(#PCDATA)><!ELEMENTEMAIL(#PCDATA)><联系人><姓名>张三</姓名><EMAIL></EMAIL></联系人><联系人><EMAIL></EMAIL><姓名>张三</姓名></联系人>74分布式系统-XML重复<!ELEMENT联系人(姓名,EMAIL+)><!ELEMENT姓名(#PCDATA)><!ELEMENTEMAIL(#PCDATA)><联系人><姓名>张三</姓名><EMAIL></EMAIL><EMAIL></EMAIL></联系人><联系人><姓名>张三</姓名></联系人>75分布式系统-XML成组<!ELEMENT联系人(姓名,EMAIL)+><!ELEMENT姓名(#PCDATA)><!ELEMENTEMAIL(#PCDATA)><联系人><姓名>张三</姓名><EMAIL></EMAIL><姓名>李四</姓名><EMAIL></EMAIL></联系人>76分布式系统-XML或:必取其一<!ELEMENT联系人(姓名,电话|EMAIL+)><!ELEMENT姓名(#PCDATA)><!ELEMENTEMAIL(#PCDATA)><!ELEMENT电话(#PCDATA)><联系人><姓名>张三</姓名><EMAIL></EMAIL></联系人>77分布式系统-XML或<联系人><姓名>张三</姓名></联系人><联系人><姓名>张三</姓名><EMAIL></EMAIL><电话>86268438</电话></联系人>78分布式系统-XML混合元素既包括子元素又包括文字<?xmlversion="1.0"encoding="GB2312"standalone="yes"?><!DOCTYPECONTACTS[<!ELEMENT联系人列表ANY><!ELEMENT联系人(姓名|电话|EMAIL|#PCDATA)*><!ELEMENT姓名(#PCDATA)><!ELEMENT电话(#PCDATA)><!ELEMENTEMAIL(#PCDATA)>]><联系人列表><联系人><姓名>张三</姓名><电话></电话><EMAIL></EMAIL>
这是关于张三的信息
</联系人></联系人列表>79分布式系统-XML空元素<document><employee>
<intern/><name><lastname>Kelly</lastname><firstname>Grace</firstname></name>…80分布式系统-XMLDTD注意在定义元素时,ETD的顺序是无关紧要的。因此
<!ELEMENT姓名(#PCDATA)><!ELEMENT联系人列表ANY><!ELEMENT联系人(姓名)>和
<!ELEMENT联系人列表ANY><!ELEMENT联系人(姓名)><!ELEMENT姓名(#PCDATA)>所定义的文件结构是完全相同的。81分布式系统-XMLDTD注意元素名的第一个字母必须是字母、或下划线_、或冒号:后跟字母、数字、句号.、冒号、下划线、连结号-的组合不能包含空白符,不能以“xml”开头。82分布式系统-XML提问<!ELEMENTemployee(name+,hiredate?,projects*)>
83分布式系统-XML属性<!ATTLIST元素名(属性名属性类型缺省值)*>84分布式系统-XML缺省值<!ATTLIST页面作者姓名#CDATA#IMPLIED
年龄#CDATA#IMPLIED
联系信息#CDATA#REQUIRED
网站职务#CDATA#FIXED"编辑"
个人爱好#CDATA"上网">85分布式系统-XML属性取值约束REQUIREDIMPLIEDFIXED默认86分布式系统-XMLREQUIRED关键字REQUIRED说明XML文件中必须为这个属性给出一个属性值87分布式系统-XMLIMPLIED
当使用IMPLIED关键字时,XML分析器不再强行要求你在XML文件中给该属性赋值而且也无须在DTD中为该属性提供缺省值88分布式系统-XMLFIXED需要为一个特定的属性提供一个缺省值并且不希望XML文件的编写者把缺省值替代掉。89分布式系统-XML默认如果不使用上面任何一种关键字的话,该种属性就是属于这种类型。对于这种属性,你需要在DTD中为它提供一个缺省值。而在XML文件中可以为该属性给出新的属性值来覆盖事先定义的缺省值,也可以不另外给出属性值90分布式系统-XML属性类型CDATAEnumeratedIDIDREFIDREFSENTITYENTITIESNMTOKENNMTOKENSNOTATION91分布式系统-XMLCDATACDATA指的是纯文本,即由字符、符号“&”、小于号“<”和引号“"”组成的字符串。当然,使用实体&代替“&”,<代替“<”,"代替“””。92分布式系统-XML枚举<?xmlversion="1.0"encoding="GB2312"standalone="yes"?><!DOCTYPE购物篮[<!ELEMENT购物篮(肉)*><!ELEMENT肉EMPTY><!ATTLIST肉类型(鸡肉|牛肉|猪肉|鱼肉)"鸡肉">]><购物篮><肉类型="鱼肉"/><肉类型="牛肉"/><肉/></购物篮>93分布式系统-XMLIDID是用属性值的方式为文件中的某个元素定义唯一标识的方法,它的作用类似于HTML文件中的内部链接在一个文档中,任何两个元素的ID属性值不同一个元素只能有一个ID属性94分布式系统-XML<?xmlversion="1.0"encoding="GB2312"standalone="yes"?><!DOCTYPE联系人列表[<!ELEMENT联系人列表(联系人)*><!ELEMENT联系人(姓名,EMAIL)><!ELEMENT姓名(#PCDATA)><!ELEMENTEMAIL(#PCDATA)><!ATTLIST联系人编号ID#REQUIRED>]><联系人列表><联系人编号="1"><姓名>张三</姓名><EMAIL></EMAIL></联系人>95分布式系统-XMLIDREFIDREF类型允许一个元素的属性使用文件中的另一个元素,方法就是把那个元素的ID标识值作为该属性的取值存放多个其它元素的ID值,以空白分开96分布式系统-XML<?xmlversion="1.0"encoding="GB2312"standalone="yes"?><!DOCTYPE联系人列表[<!ELEMENT联系人列表(联系人)*><!ELEMENT联系人(姓名,EMAIL)><!ELEMENT姓名(#PCDATA)><!ELEMENTEMAIL(#PCDATA)><!ATTLIST联系人编号ID#REQUIRED><!ATTLIST联系人主管IDREF#IMPLIED>]><联系人列表><联系人编号="2"><姓名>张三</姓名><EMAIL></EMAIL></联系人><联系人编号=“1”主管="2"><姓名>李四</姓名><EMAIL></EMAIL></联系人></联系人列表><联系人编号="2"><姓名>李四</姓名><EMAIL></EMAIL></联系人></联系人列表>97分布式系统-XML实体实体在XML中充当着宏或别名的角色它的定义方式是:<!ENTITY实体名"实体内容">或利用SYSTEM定义外部实体,方式为:<!ENTITY实体名SYSTEM"外部文件名">引用方式为:&实体名;98分布式系统-XML<?xmlversion="1.0"encoding="GB2312"standalone="yes"?><!DOCTYPE联系人列表[<!ELEMENT联系人列表(联系人)*><!ELEMENT联系人(姓名,EMAIL)><!ELEMENT姓名(#PCDATA)><!ELEMENTEMAIL(#PCDATA)><!ATTLIST联系人国籍ENTITY><!ENTITYcn“中华人民共和国">]><联系人列表><联系人国籍=“&cn;"><姓名>张三</姓名><EMAIL></EMAIL></联系人>99分布式系统-XMLDTD局限性不支持namespaces仅支持字符串数据类型一致性约束非常弱(ID/IDREF/IDREFSonly)不能够很方便地表达无序(unorder)的内容所有元素的名字是全局的<!ELEMENTName(Last,First)><!ELEMENTName(#PCDATA)>
100分布式系统-XML练习1指出错误<?xmlversion="1.0"encoding="UTF-8"standalone="yes"?><!DOCTYPEdocument[<!ELEMENTdocument(employee)*><!ELEMENTemployee(hiredate,name)>]><document><employee><hiredate>October15,2005</hiredate><name>GraceKelly</name></employee></document>101分布式系统-XML练习2指出错误<?xmlversion="1.0"encoding="UTF-8"standalone="yes"?><!DOCTYPEdocument[<!ELEMENTdocument(employee)*><!ELEMENTemployee(name,hiredate)><!ELEMENTname(#PCDATA)><!ELEMENThiredate(#PCDATA)>]><document><employee><hiredate>October15,2005</hiredate><name>GraceKelly</name></employee></document>102分布式系统-XML练习3指出错误<?xmlversion="1.0"encoding="UTF-8"standalone="yes"?><!DOCTYPEdocument[<!ELEMENTdocument(employee)*><!ELEMENTemployee(hiredate+|name+)><!ELEMENThiredate(#PCDATA)><!ELEMENTname(#PCDATA)>]><document><employee><hiredate>October15,2005</hiredate><name>GraceKelly</name></employee></document>103分布式系统-XML<?xmlversion="1.0"encoding="UTF-8"standalone="yes"?><!DOCTYPEdocument[<!ELEMENTdocument(employee)?><!ELEMENTemployee(hiredate+,name*,phone+)><!ELEMENThiredate(#PCDATA)><!ELEMENTname(#PCDATA)><!ELEMENTphone(#PCDATA)>]><document><employee><hiredate>October15,2005</hiredate><name>GraceKelly</name><phone>555.8888</phone></employee><employee><hiredate>October16,2005</hiredate><name>MyrnaLoy</name><name>MurielBlandings</name><phone>555.9999</phone></employee></document>4.指出错误104分布式系统-XML练习<?xmlversion="1.0"encoding="UTF-8"standalone="yes"?><!DOCTYPEdocument[<!ELEMENTdocument(employee)*><!ELEMENTemployee(name,hiredate,projects)><!ELEMENTname(lastname,firstname)><!ELEMENTlastname(#PCDATA)><!ELEMENTfirstname(#PCDATA)><!ELEMENThiredate(#PCDATA)><!ELEMENTprojects(project)*><!ELEMENTproject(product,id,price)><!ELEMENTproduct(#PCDATA)><!ELEMENTid(#PCDATA)><!ELEMENTprice(#PCDATA)><!ATTLISTemployeesupervisorCDATA#IMPLIEDdivisionCDATA#IMPLIEDfullTimeCDATA#IMPLIED>]><document>
<employeesupervisor="no"division="plastics"fullTime="yes"><name><lastname>Kelly</lastname><firstname>Grace</firstname></name><hiredate>October15,2005</hiredate>105分布式系统-XML属性默认值-立即值<?xmlversion="1.0"encoding="UTF-8"standalone="yes"?><!DOCTYPEdocument[<!ELEMENTdocument(employee)*><!ELEMENTemployee(name,hiredate,projects)><!ELEMENTname(lastname,firstname)><!ELEMENTlastname(#PCDATA)><!ELEMENTfirstname(#PCDATA)><!ELEMENThiredate(#PCDATA)><!ELEMENTprojects(project)*><!ELEMENTproject(product,id,price)><!ELEMENTproduct(#PCDATA)><!ELEMENTid(#PCDATA)><!ELEMENTprice(#PCDATA)><!ATTLISTemployeesupervisorCDATA"no"divisionCDATA"plastics"fullTimeCDATA"yes">.106分布式系统-XML属性默认值-#REQUIRED<?xmlversion="1.0"encoding="UTF-8"standalone="yes"?><!DOCTYPEdocument[<!ELEMENTdocument(employee)*><!ELEMENTemployee(name,hiredate,projects)><!ELEMENTname(lastname,firstname)><!ELEMENTlastname(#PCDATA)><!ELEMENTfirstname(#PCDATA)><!ELEMENThiredate(#PCDATA)><!ELEMENTprojects(project)*><!ELEMENTproject(product,id,price)><
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024建设工程劳务大包施工合同范本
- 天津医学高等专科学校《高等仪器分析》2023-2024学年第一学期期末试卷
- 2024版27份教培合同协议
- 2025年鲁教新版选择性必修1地理下册阶段测试试卷含答案
- 2025年度金融居间服务行业专项合同范本6篇
- 2024年华师大版共同必修2物理下册阶段测试试卷含答案
- 商业视角下的校园安全管理与文化建设
- 2024高考地理一轮复习课练28中国区域差异含解析
- 2025年度能源互联网融资并购技术交流协议3篇
- 2024高考数学一轮复习专练47直线的倾斜角与斜率直线的方程含解析理新人教版
- 泌尿外科内镜诊疗技术质量保障措施及应急预案
- 华北电力大学(保定)
- Unity3D游戏开发PPT完整全套教学课件
- 肾内科学篇病例分析1
- unit5overcomingobstacles公开课一等奖市赛课一等奖课件
- 玻璃安装应急预案
- 道德与法治中考一轮总复习课件 课时8 走向未来的少年 (九下第三单元)
- 五十音图+あ行+课件【高效备课精研+知识精讲提升】 初中日语人教版第一册
- 早爆、拒爆事故预防与处理
- 七年级美术上册-向日葵-湘教版优秀PPT
- 人教精通版(三起点)小学英语四年级下册同步练习试题(含答案)全套
评论
0/150
提交评论