版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
XMLStevenHolzner,SamsTeachYourselfXMLin21Days,ThirdEdition.2003.1分布式系統(tǒng)-XML1.XML基礎(chǔ)2分布式系統(tǒng)-XMLMarkupLanguages<HTML><HEAD><TITLE>HelloFromHTML</TITLE></HEAD><BODY><CENTER><H1>AnHTMLDocument</H1></CENTER>ThisisanHTMLdocument!</BODY></HTML>標(biāo)記是文檔中數(shù)據(jù)的描述和解釋3分布式系統(tǒng)-XMLXMLeXtensibleMarkupLanguage元語言,創(chuàng)建標(biāo)記語言的語言4分布式系統(tǒng)-XML<?xmlversion=“1.0”?><PersonList
Type=“Student”Date=“2002-02-02”><Title
Value=“StudentList”/><Person>………</Person><Person>………</Person></PersonList>ElementsarenestedRootelementcontainsallothers
Element(ortag)namesExampleelementsRootelementEmptyelement
attributesdeclaration5分布式系統(tǒng)-XMLMoreTerminology<PersonName=“John”Id=“111111111”>Johnisanicefellow<Address><Number>21</Number><Street>MainSt.</Street></Address>………</Person>OpeningtagClosingtag:WhatisopenmustbeclosedNestedelement,childofPersonParentofAddress,Ancestorofnumber“standalone”text,notusefulasdataChildofAddress,DescendantofPersonContentofPerson6分布式系統(tǒng)-XMLIE中瀏覽XML文檔7分布式系統(tǒng)-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分布式系統(tǒng)-XMLch01_04.cssPerson{display:block;font-size:18pt;color:#0000ff;text-align:left}9分布式系統(tǒng)-XML使用JavaScript抽取數(shù)據(jù)<?xmlversion="1.0"encoding="UTF-8"?><?xml-stylesheettype="text/css"href="ch01_04.css"?><document>
<heading>HelloFromXML</heading><message>ThisisanXMLdocument!</message></document>10分布式系統(tǒng)-XML使用JavaScript抽取數(shù)據(jù)<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分布式系統(tǒng)-XML使用JavaScript抽取數(shù)據(jù)<BODY><CENTER><H1>RetrievingdatafromanXMLdocument</H1><DIVID="message"></DIV><P><INPUTTYPE="BUTTON"VALUE="Readtheheading"ONCLICK="getData()"></CENTER></BODY></HTML>12分布式系統(tǒng)-XML使用JavaScript抽取數(shù)據(jù)13分布式系統(tǒng)-XML使用Java從XML文檔中抽取數(shù)據(jù)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分布式系統(tǒng)-XML使用Java從XML文檔中抽取數(shù)據(jù)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分布式系統(tǒng)-XML使用Java從XML文檔中抽取數(shù)據(jù)>javach01_06HelloFromXML16分布式系統(tǒng)-XMLWell-formedXMLDocumentsMusthavearootelementEveryopeningtagmusthavematchingclosingtagElementsmustbeproperlynested<foo><bar></foo></bar>isano-noAnattributenamecanoccuratmostonceinanopeningtag.Ititoccurs,Itmusthaveavalue(booleanattrs,likeinHTML,arenotallowed)Thevaluemustbequoted(with“or‘)XMLprocessorsarenotsupposedtotryandfixill-formeddocuments(unlikeHTMLbrowsers)17分布式系統(tǒng)-XMLValidXMLDocuments<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEdocument[<!ELEMENTdocument(heading,message)><!ELEMENTheading(#PCDATA)><!ELEMENTmessage(#PCDATA)>]><document><heading>HelloFromXML</heading><message>ThisisanXMLdocument!</message></document>18分布式系統(tǒng)-XMLValidXMLDocumentAvalidXMLdocumentisdefinedbytheW3Casawell-formedXMLdocumentwhichalsoconformstotherulesofaDocumentTypeDefinition(DTD)oranXMLSchema/ski:m?/(XSD)19分布式系統(tǒng)-XMLXML應(yīng)用XML用于存儲、傳輸、結(jié)構(gòu)化數(shù)據(jù)純文本格式使它容易被在互聯(lián)網(wǎng)上傳輸并被不同平臺上的應(yīng)用所處理過去5年中,已經(jīng)出現(xiàn)了上百種XML子語言20分布式系統(tǒng)-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分布式系統(tǒng)-XML在Amaya瀏覽器中顯示MathML文檔22分布式系統(tǒng)-XMLXHTMLExtensibleHypertextMarkupLanguage更加嚴(yán)格允許增加自己的標(biāo)記HTML4.01(當(dāng)前版本)23分布式系統(tǒng)-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分布式系統(tǒng)-XML在IE中顯示25分布式系統(tǒng)-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分布式系統(tǒng)-XML練習(xí)validXML文檔一定是well-formed嗎?well-formedXML文檔一定是valid嗎?27分布式系統(tǒng)-XML編輯XML文檔XML編輯器XMLSpyVisualStudioXMLDesignerXRayXML瀏覽器IE,MostpowerfulgeneralJumbo,CMLbrowser28分布式系統(tǒng)-XMLJumbo29分布式系統(tǒng)-XMLXMLValidatorsMakesureitiswellformedandvalidScholarlyTechnologyGroup'svalidatorMicrosoft'sVisualStudio.NET30分布式系統(tǒng)-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分布式系統(tǒng)-XML32分布式系統(tǒng)-XMLXMLvalidationinVisualStudio.NET33分布式系統(tǒng)-XML建立一個(gè)完整的XML文檔<?xmlversion="1.0"encoding="UTF-8"?><document><heading>HelloFromXML</heading><message>ThisisanXMLdocument!</message></document>34分布式系統(tǒng)-XMLXML文檔PrologsXMLdeclarationsProcessinginstructionsElementsandattributesCommentsCDATAsectionsEntities35分布式系統(tǒng)-XML字符編碼問題ASCII僅有256個(gè)字符Chinese,Armenian,Hebrew,Thai,Tibetan從數(shù)量上、通用上,ASCII不能在Web上使用Unicode(http://),65,536個(gè)字符前256個(gè)對應(yīng)ASCII但讓所有的軟件轉(zhuǎn)去支持Unicode太困難UCSTransformationFormat-8(UTF-8)36分布式系統(tǒng)-XMLUTF-8所有ASCII字符的編碼保持不變(8bit)其它Unicode字符使用2字節(jié),直至6字節(jié)編碼W3CrequiresallXMLprocessorstosupportbothUTF-8,UTF-16大部分支持UTF-837分布式系統(tǒng)-XML字符實(shí)體引用<?xmlversion="1.0"encoding="UTF-8"?><document><heading>HelloFromXML</heading><message>Thistextisinsidea<message>element.</message></document>38分布式系統(tǒng)-XML字符實(shí)體引用39分布式系統(tǒng)-XML字符實(shí)體引用<—Replacedwith<>—Replacedwith>&—Replacedwith&"—Replacedwith"'—Replacedwith'40分布式系統(tǒng)-XML實(shí)體實(shí)體是一大段文本的別名假如你為你的信件署名定義了一個(gè)實(shí)體lettersign,它代表下面這一大段文本:
張三
某網(wǎng)絡(luò)公司銷售部門
北京市海淀區(qū)中關(guān)村88號,10000041分布式系統(tǒng)-XML實(shí)體〈郵件〉
〈收件人〉李四〈/收件人〉
〈主題〉hello〈/主題〉
〈正文〉晚上吃飯!&lettersign;〈/正文〉
</郵件〉42分布式系統(tǒng)-XML一般實(shí)體和參數(shù)實(shí)體一般實(shí)體聲明:<!ENTITYlettersign
"張三
某網(wǎng)絡(luò)公司銷售部門
北京市海淀區(qū)中關(guān)村88號,100000"〉參數(shù)實(shí)體聲明:<!ENTITY%實(shí)體名"文本內(nèi)容"〉43分布式系統(tǒng)-XML實(shí)體引用&<實(shí)體名>;注意:在引用XML實(shí)體之前,必須已經(jīng)在XML文件中對此實(shí)體進(jìn)行過聲明;在實(shí)體引用中不能出現(xiàn)空格。也就是說,&lettersign;和&letterhead;的用法都會引起錯(cuò)誤。盡管在一個(gè)實(shí)體中可以再引用其它實(shí)體,但是不能出現(xiàn)循環(huán)引用。也就是說,一個(gè)實(shí)體不能引用它自己;同樣,也不能出現(xiàn)實(shí)體A引用實(shí)體B,然后實(shí)體B再反過來引用實(shí)體A的情況。實(shí)體引用不能在DOCTYPE聲明中出現(xiàn)。實(shí)體引用的文本必須是形式良好的XML。44分布式系統(tǒng)-XML<?xmlversion="1.0"?>
<!DOCTYPE聯(lián)系人列表[
<!ENTITYA公司地址“北京市五街1234號”>
<!ENTITYB公司地址“上海南京路9876號”〉
]><聯(lián)系人列表>
<聯(lián)系人>
<姓名>張三</姓名>
<公司>>A公司</公司>>
<地址>&A公司地址</地址>
</聯(lián)系人>
<聯(lián)系人>
<姓名gt;李四</姓名>
<公司>B公司</公司>
<地址>&B公司地址〈/地址〉
</聯(lián)系人>
<聯(lián)系人>
<姓名>王五</姓名>>
<公司>B公司</公司>
<地址>&B公司地址〈/地址〉
</聯(lián)系人>
</聯(lián)系人列表>一旦哪個(gè)公司搬家了,只須改變實(shí)體聲明中有關(guān)該公司的地址,所有這個(gè)公司的聯(lián)系人的地址也就都改過來了45分布式系統(tǒng)-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分布式系統(tǒng)-XMLPrologs(序言)XMLdeclarationsXMLcommentsprocessinginstructionswhitespacedoctypedeclarations47分布式系統(tǒng)-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分布式系統(tǒng)-XMLCDATACDATAstandsforcharacterdata,PCDATAstandsforparsedcharacterdata.<![CDATA[……]]>49分布式系統(tǒng)-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分布式系統(tǒng)-XMLInternetExplorertreatsthisCDATAsectionasunparsedtext51分布式系統(tǒng)-XML練習(xí)一個(gè)文本編輯器保存XML文檔時(shí),并不提示字符集。該編輯器是否可用?把文本數(shù)據(jù)“Thisisa<message>element”包含在元素<message>中,怎樣做才不會迷惑XMLprocessor?XMLprolog可以包含哪些項(xiàng)目?52分布式系統(tǒng)-XMLXMLNamespaces解決文檔內(nèi)和文檔間名字沖突的機(jī)制NamespacedeclarationNamespace–符號串,通常為URLPrefix–名字空間的縮寫,相當(dāng)于別名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分布式系統(tǒng)-XMLNamespaces(續(xù))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分布式系統(tǒng)-XMLNamespaces(續(xù))xmlns=“/bar”并不意味著此URL上有一個(gè)文檔,這種格式僅僅是個(gè)約定俗成。一個(gè)namespace僅僅是個(gè)標(biāo)識符一些前綴已經(jīng)成為"標(biāo)準(zhǔn)"。E.g.,xsdforxslforEtc.55分布式系統(tǒng)-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分布式系統(tǒng)-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分布式系統(tǒng)-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分布式系統(tǒng)-XML在NetBeans中新建XML文檔59分布式系統(tǒng)-XML在NetBeans中新建XML文檔60分布式系統(tǒng)-XMLCheckXMLXMLcheckingstarted.Checking...XMLcheckingfinished.61分布式系統(tǒng)-XMLValidateXMLXMLvalidationstarted.Checking...XMLvalidationfinished.62分布式系統(tǒng)-XMLValidatinghttp://63分布式系統(tǒng)-XMLValidating制造一個(gè)錯(cuò)誤,比如<mame>改為<xingming>重新使用ValidateXML命令64分布式系統(tǒng)-XMLDocumentTypeDefinition(DTD)DTD
定義了XML文檔的語法DTD是可選的如果文檔符合它的DTD,該文檔就稱為
valid65分布式系統(tǒng)-XMLDTD(續(xù))DTD作為文檔的一部分:<?xmlversion=“1.0”?standalone=“yes”><!DOCTYPEcontact[………]><contact>………</contact>66分布式系統(tǒng)-XMLDTD(續(xù))DTD作為單獨(dú)的文件:<?xmlversion=“1.0”?standalone=“no”><!DOCTYPEContactSYSTEM"http://"><contact>………</contact>67分布式系統(tǒng)-XML單獨(dú)的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分布式系統(tǒng)-XMLDTD(續(xù))DTD作為單獨(dú)的文件:<?xmlversion=“1.0”?standalone=“no”><!DOCTYPEcontactSYSTEM"http://"><contact>………</contact><!DOCTYPEcontactSYSTEM“contact.dtd"><!DOCTYPEcontactSYSTEM“../dtds/contact.dtd">絕對路徑引用方式相對路徑引用方式:DTD與XML文檔同一路徑相對路徑引用方式:DTD與XML文檔相對路徑69分布式系統(tǒng)-XMLDTD(續(xù))system關(guān)鍵字主要用于引用一個(gè)作者或組織所編寫的眾多XML文件中通用的DTD。還存在一種外部DTD,它是一個(gè)由權(quán)威機(jī)構(gòu)制訂的,提供給特定行業(yè)或公眾使用的DTD。因此,另一個(gè)引用外部DTD的辦法是使用關(guān)鍵字public,引用這一類公開給公眾使用的DTD例<!DOCTYPEcontactPUBLIC"-//DonaldDong//ContactData//CN""http://">根元素DTD名稱(所有者//類型//語言)DTD的URL70分布式系統(tǒng)-XMLDTD成分<!ELEMENTelt-name(…contents…)><!ATTLISTelt-nameattr-name
ID/IDREF/IDREFS#EMPTY/#IMPLIED/#REQUIRED
>注意:ELEMENT讀['?l?m?nt]ATTRIBUTE讀['?
tr?bjut]可選71分布式系統(tǒng)-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個(gè)或多個(gè)子元素被分析的字符數(shù)據(jù)序列選擇空元素72分布式系統(tǒng)-XML子元素x+—x出現(xiàn)1次或多次.x*—x出現(xiàn)0次或多次.x?—x可選,不出現(xiàn)或出現(xiàn)一次.x,y—x的后繼是y.順序Sequencex|y—x或y—但不同時(shí).Choice73分布式系統(tǒng)-XML順序<!ELEMENT聯(lián)系人(姓名,EMAIL)><!ELEMENT姓名(#PCDATA)><!ELEMENTEMAIL(#PCDATA)><聯(lián)系人><姓名>張三</姓名><EMAIL></EMAIL></聯(lián)系人><聯(lián)系人><EMAIL></EMAIL><姓名>張三</姓名></聯(lián)系人>74分布式系統(tǒng)-XML重復(fù)<!ELEMENT聯(lián)系人(姓名,EMAIL+)><!ELEMENT姓名(#PCDATA)><!ELEMENTEMAIL(#PCDATA)><聯(lián)系人><姓名>張三</姓名><EMAIL></EMAIL><EMAIL></EMAIL></聯(lián)系人><聯(lián)系人><姓名>張三</姓名></聯(lián)系人>75分布式系統(tǒng)-XML成組<!ELEMENT聯(lián)系人(姓名,EMAIL)+><!ELEMENT姓名(#PCDATA)><!ELEMENTEMAIL(#PCDATA)><聯(lián)系人><姓名>張三</姓名><EMAIL></EMAIL><姓名>李四</姓名><EMAIL></EMAIL></聯(lián)系人>76分布式系統(tǒng)-XML或:必取其一<!ELEMENT聯(lián)系人(姓名,電話|EMAIL+)><!ELEMENT姓名(#PCDATA)><!ELEMENTEMAIL(#PCDATA)><!ELEMENT電話(#PCDATA)><聯(lián)系人><姓名>張三</姓名><EMAIL></EMAIL></聯(lián)系人>77分布式系統(tǒng)-XML或<聯(lián)系人><姓名>張三</姓名></聯(lián)系人><聯(lián)系人><姓名>張三</姓名><EMAIL></EMAIL><電話>86268438</電話></聯(lián)系人>78分布式系統(tǒng)-XML混合元素既包括子元素又包括文字<?xmlversion="1.0"encoding="GB2312"standalone="yes"?><!DOCTYPECONTACTS[<!ELEMENT聯(lián)系人列表ANY><!ELEMENT聯(lián)系人(姓名|電話|EMAIL|#PCDATA)*><!ELEMENT姓名(#PCDATA)><!ELEMENT電話(#PCDATA)><!ELEMENTEMAIL(#PCDATA)>]><聯(lián)系人列表><聯(lián)系人><姓名>張三</姓名><電話></電話><EMAIL></EMAIL>
這是關(guān)于張三的信息
</聯(lián)系人></聯(lián)系人列表>79分布式系統(tǒng)-XML空元素<document><employee>
<intern/><name><lastname>Kelly</lastname><firstname>Grace</firstname></name>…80分布式系統(tǒng)-XMLDTD注意在定義元素時(shí),ETD的順序是無關(guān)緊要的。因此
<!ELEMENT姓名(#PCDATA)><!ELEMENT聯(lián)系人列表ANY><!ELEMENT聯(lián)系人(姓名)>和
<!ELEMENT聯(lián)系人列表ANY><!ELEMENT聯(lián)系人(姓名)><!ELEMENT姓名(#PCDATA)>所定義的文件結(jié)構(gòu)是完全相同的。81分布式系統(tǒng)-XMLDTD注意元素名的第一個(gè)字母必須是字母、或下劃線_、或冒號:后跟字母、數(shù)字、句號.、冒號、下劃線、連結(jié)號-的組合不能包含空白符,不能以“xml”開頭。82分布式系統(tǒng)-XML提問<!ELEMENTemployee(name+,hiredate?,projects*)>
83分布式系統(tǒng)-XML屬性<!ATTLIST元素名(屬性名屬性類型缺省值)*>84分布式系統(tǒng)-XML缺省值<!ATTLIST頁面作者姓名#CDATA#IMPLIED
年齡#CDATA#IMPLIED
聯(lián)系信息#CDATA#REQUIRED
網(wǎng)站職務(wù)#CDATA#FIXED"編輯"
個(gè)人愛好#CDATA"上網(wǎng)">85分布式系統(tǒng)-XML屬性取值約束REQUIREDIMPLIEDFIXED默認(rèn)86分布式系統(tǒng)-XMLREQUIRED關(guān)鍵字REQUIRED說明XML文件中必須為這個(gè)屬性給出一個(gè)屬性值87分布式系統(tǒng)-XMLIMPLIED
當(dāng)使用IMPLIED關(guān)鍵字時(shí),XML分析器不再強(qiáng)行要求你在XML文件中給該屬性賦值而且也無須在DTD中為該屬性提供缺省值88分布式系統(tǒng)-XMLFIXED需要為一個(gè)特定的屬性提供一個(gè)缺省值并且不希望XML文件的編寫者把缺省值替代掉。89分布式系統(tǒng)-XML默認(rèn)如果不使用上面任何一種關(guān)鍵字的話,該種屬性就是屬于這種類型。對于這種屬性,你需要在DTD中為它提供一個(gè)缺省值。而在XML文件中可以為該屬性給出新的屬性值來覆蓋事先定義的缺省值,也可以不另外給出屬性值90分布式系統(tǒng)-XML屬性類型CDATAEnumeratedIDIDREFIDREFSENTITYENTITIESNMTOKENNMTOKENSNOTATION91分布式系統(tǒng)-XMLCDATACDATA指的是純文本,即由字符、符號“&”、小于號“<”和引號“"”組成的字符串。當(dāng)然,使用實(shí)體&代替“&”,<代替“<”,"代替“””。92分布式系統(tǒng)-XML枚舉<?xmlversion="1.0"encoding="GB2312"standalone="yes"?><!DOCTYPE購物籃[<!ELEMENT購物籃(肉)*><!ELEMENT肉EMPTY><!ATTLIST肉類型(雞肉|牛肉|豬肉|魚肉)"雞肉">]><購物籃><肉類型="魚肉"/><肉類型="牛肉"/><肉/></購物籃>93分布式系統(tǒng)-XMLIDID是用屬性值的方式為文件中的某個(gè)元素定義唯一標(biāo)識的方法,它的作用類似于HTML文件中的內(nèi)部鏈接在一個(gè)文檔中,任何兩個(gè)元素的ID屬性值不同一個(gè)元素只能有一個(gè)ID屬性94分布式系統(tǒng)-XML<?xmlversion="1.0"encoding="GB2312"standalone="yes"?><!DOCTYPE聯(lián)系人列表[<!ELEMENT聯(lián)系人列表(聯(lián)系人)*><!ELEMENT聯(lián)系人(姓名,EMAIL)><!ELEMENT姓名(#PCDATA)><!ELEMENTEMAIL(#PCDATA)><!ATTLIST聯(lián)系人編號ID#REQUIRED>]><聯(lián)系人列表><聯(lián)系人編號="1"><姓名>張三</姓名><EMAIL></EMAIL></聯(lián)系人>95分布式系統(tǒng)-XMLIDREFIDREF類型允許一個(gè)元素的屬性使用文件中的另一個(gè)元素,方法就是把那個(gè)元素的ID標(biāo)識值作為該屬性的取值存放多個(gè)其它元素的ID值,以空白分開96分布式系統(tǒng)-XML<?xmlversion="1.0"encoding="GB2312"standalone="yes"?><!DOCTYPE聯(lián)系人列表[<!ELEMENT聯(lián)系人列表(聯(lián)系人)*><!ELEMENT聯(lián)系人(姓名,EMAIL)><!ELEMENT姓名(#PCDATA)><!ELEMENTEMAIL(#PCDATA)><!ATTLIST聯(lián)系人編號ID#REQUIRED><!ATTLIST聯(lián)系人主管IDREF#IMPLIED>]><聯(lián)系人列表><聯(lián)系人編號="2"><姓名>張三</姓名><EMAIL></EMAIL></聯(lián)系人><聯(lián)系人編號=“1”主管="2"><姓名>李四</姓名><EMAIL></EMAIL></聯(lián)系人></聯(lián)系人列表><聯(lián)系人編號="2"><姓名>李四</姓名><EMAIL></EMAIL></聯(lián)系人></聯(lián)系人列表>97分布式系統(tǒng)-XML實(shí)體實(shí)體在XML中充當(dāng)著宏或別名的角色它的定義方式是:<!ENTITY實(shí)體名"實(shí)體內(nèi)容">或利用SYSTEM定義外部實(shí)體,方式為:<!ENTITY實(shí)體名SYSTEM"外部文件名">引用方式為:&實(shí)體名;98分布式系統(tǒng)-XML<?xmlversion="1.0"encoding="GB2312"standalone="yes"?><!DOCTYPE聯(lián)系人列表[<!ELEMENT聯(lián)系人列表(聯(lián)系人)*><!ELEMENT聯(lián)系人(姓名,EMAIL)><!ELEMENT姓名(#PCDATA)><!ELEMENTEMAIL(#PCDATA)><!ATTLIST聯(lián)系人國籍ENTITY><!ENTITYcn“中華人民共和國">]><聯(lián)系人列表><聯(lián)系人國籍=“&cn;"><姓名>張三</姓名><EMAIL></EMAIL></聯(lián)系人>99分布式系統(tǒng)-XMLDTD局限性不支持namespaces僅支持字符串?dāng)?shù)據(jù)類型一致性約束非常弱(ID/IDREF/IDREFSonly)不能夠很方便地表達(dá)無序(unorder)的內(nèi)容所有元素的名字是全局的<!ELEMENTName(Last,First)><!ELEMENTName(#PCDATA)>
100分布式系統(tǒng)-XML練習(xí)1指出錯(cuò)誤<?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分布式系統(tǒng)-XML練習(xí)2指出錯(cuò)誤<?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分布式系統(tǒng)-XML練習(xí)3指出錯(cuò)誤<?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分布式系統(tǒng)-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.指出錯(cuò)誤104分布式系統(tǒng)-XML練習(xí)<?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分布式系統(tǒng)-XML屬性默認(rèn)值-立即值<?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分布式系統(tǒng)-XML屬性默認(rèn)值-#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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴州財(cái)經(jīng)職業(yè)學(xué)院《天然產(chǎn)物化學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 貴陽職業(yè)技術(shù)學(xué)院《電路》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025福建建筑安全員《B證》考試題庫
- 2025年安徽省建筑安全員考試題庫
- 貴陽康養(yǎng)職業(yè)大學(xué)《軟件項(xiàng)目管理與軟件工程經(jīng)濟(jì)學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣州中醫(yī)藥大學(xué)《建筑工程招投標(biāo)沙盤》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年-黑龍江省安全員C證考試(專職安全員)題庫附答案
- 廣州幼兒師范高等??茖W(xué)校《商品混凝土生產(chǎn)和應(yīng)用技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年浙江省建筑安全員考試題庫
- 2025年湖北省安全員《A證》考試題庫及答案
- 2024-2025學(xué)年北師版八年級物理上冊期末考試綜合測試卷
- 福建省福州市2023-2024學(xué)年高一上學(xué)期期末質(zhì)量檢測英語試題 含答案
- 2023-2024學(xué)年廣東省廣州市白云區(qū)八年級(上)期末數(shù)學(xué)試卷及答案解析
- 全國城市雕塑行業(yè)設(shè)計(jì)收費(fèi)標(biāo)準(zhǔn)
- 大管輪見習(xí)記錄簿范本匯總
- 園區(qū)保安隊(duì)長的工作職責(zé)
- 寧波市彩葉樹種園林應(yīng)用調(diào)查研究
- 萬能中國地圖模板(可修改)
- 鋼材購銷合同
- PDT團(tuán)隊(duì)KPI指標(biāo)庫(完整版)
- 汽車底盤構(gòu)造與維修技能考核方案
評論
0/150
提交評論