XML基礎(chǔ)及實(shí)踐開發(fā)教程習(xí)題答案_第1頁
XML基礎(chǔ)及實(shí)踐開發(fā)教程習(xí)題答案_第2頁
XML基礎(chǔ)及實(shí)踐開發(fā)教程習(xí)題答案_第3頁
XML基礎(chǔ)及實(shí)踐開發(fā)教程習(xí)題答案_第4頁
XML基礎(chǔ)及實(shí)踐開發(fā)教程習(xí)題答案_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

習(xí)題1答案1.XML參考答案:<xmlversion=”1.0”encoding=”gb2312”><poem><title>靜夜思</title><author>李白</author><content><line>床前明月光</line><line>疑是地上霜</line><line>舉頭望明月</line><line>低頭思故鄉(xiāng)</line></content></poem>2.判斷下列元素的內(nèi)容是否合法<data>&</data> 錯(cuò)<data>/</data> 對(duì)<data>/></data> 對(duì)<data><</data> 錯(cuò)<data>]]></data>錯(cuò)//錯(cuò)誤元素中不允許使用]]><xmlversion="1.0"encoding="UTF-8"><teams> <team> <teamid>1</teamid> <teamname>北京xx</teamname> </team> <team> <teamid>2</teamid> <teamname>大連yy</teamname> </team> <team> <teamid>3</teamid> <teamname>上海zz</teamname> </team></teams>XML文件的分類:無效的XML文檔、格式良好的XML文檔、有效的XML文檔XML文件的邏輯構(gòu)成,并簡(jiǎn)述各部分內(nèi)容邏輯構(gòu)成包括:(1)XML必要聲明(2)DTD聲明(3)PI(處理指令)(4)元素(5)注釋 1)XML必要聲明 語法:<> 位置:必須位于第一行 可以包含的屬性及含義 version必須的XML版本1.0|1.1 encoding可選的編碼方式 standalone可選的XML文檔是否獨(dú)立yes|no2)DTD聲明 語法:<!DOCTYPE....> 內(nèi)置的DTD聲明PI 語法:<> 位置:通常位于第一個(gè)元素之前 如果需要使用的時(shí)候給出,否則不寫PIvsxml必要聲明的相同點(diǎn)和不同點(diǎn)? (1)位置 (2)出現(xiàn)次數(shù) (3)作用4)注釋 語法:<!----> 需要注意的問題: 1)不能位于必要聲明之前 2)不能嵌套在標(biāo)記中 3)本身不能嵌套 4)中間內(nèi)容不能出現(xiàn)-- 5)不能以--->5)元素 分類:空元素、帶屬性的、帶內(nèi)容的、帶內(nèi)容且?guī)傩缘?/p>

習(xí)題2答案1.分為3種方式:1)內(nèi)部DTD<!DOCTYPE根元素名稱[ 元素描述]>2)外部DTD:外部DTD的引用須事先已有一個(gè)dtd文件,將DTD的約束寫到文件中,然后在XML文檔中按以下語法格式添加:<!DOCTYPE(根元素名稱)SYSTEM“外部DTD的URL地址”> SYSTEM關(guān)鍵字表示文檔使用的是私有DTD文件,“外部DTD文件的URI”可以是相對(duì)URI或者絕對(duì)URI,相對(duì)URI是相對(duì)于文檔類型聲明所在文檔的位置?!巴獠緿TD文件的URI”這部分也被稱為系統(tǒng)標(biāo)識(shí)符(systemidentifier)。3)公用DTD:公用DTD與外部DTD類似,但是該DTD引用公用的DTD的語法格式如下:<!DOCTYPE(根元素名稱)PUBLIC“DTD的標(biāo)識(shí)名”“公用DTD的URL地址”>2.DTD劃分的元素類型及其含義元素類型含義EMPTY空元素,即該元素不包括任何內(nèi)容(#PCDATA)字符串類型,即該元素內(nèi)容中可以為任意字符串ANY任意類型,即該元素內(nèi)容任意無限制子元素子元素類型,即該元素嵌套子元素混合類型混合內(nèi)容類型,即該元素內(nèi)部即包含字符串又包含子元素3.屬性類型及其含義屬性類型說明CDATA單純的字符數(shù)據(jù),大部分屬性都設(shè)置為該類型ID具有唯一性的屬性值,需要注意的是該屬性值必須以字母開頭IDREF引用其它ID屬性的值,該值必須在其它ID屬性中存在IDREFS引用多個(gè)其它ID屬性的值,中間使用空格間隔ENTITY未解析的外部實(shí)體類型,ENTITIES多個(gè)未解析的外部實(shí)體類型,中間使用空格間隔NMTOKEN是NameToken,就是關(guān)鍵字的名字??梢园帜?、數(shù)字、[.]、[-]、[_]、[:]組合的名字NMTOKENS多個(gè)NMTOKEN,中間使用空格間隔NOTATION標(biāo)記名稱Enumerated枚舉類型的屬性,只能從已有的屬性中選取,不能填入新項(xiàng)目<!ENTITYmedium"中等">&big;5.<xmlversion="1.0"encoding="UTF-8"><!DOCTYPETVSCHEDULE[<!ELEMENTTVSCHEDULE(CHANNEL*)><!ELEMENTCHANNEL(BANNER,DAY+)><!ELEMENTBANNER(#PCDATA)><!ELEMENTDAY(DATE,HOLIDAY,PROGRAMSLOT)><!ELEMENTDATE(#PCDATA)><!ELEMENTHOLIDAY(#PCDATA)><!ELEMENTPROGRAMSLOT(TIME,TITLE,DESCRIPTION)><!ELEMENTTIME(#PCDATA)><!ELEMENTTITLE(#PCDATA)><!ELEMENTDESCRIPTION(#PCDATA)><!ATTLISTTVSCHEDULENAMECDATA#IMPLIED><!ATTLISTCHANNELCHANCDATA#REQUIRED><!ATTLISTPROGRAMSLOTVTRCDATA#IMPLIED><!ATTLISTTITLERATINGCDATA#IMPLIEDLANGUAGECDATA#IMPLIED><!ENTITYcopyright"XXXXXXX">]><TVSCHEDULENAME="name"> <CHANNELCHAN="01"> <BANNER>BANNERContent</BANNER> <DAY><DATE>1990-10-10</DATE><HOLIDAY>11</HOLIDAY></DAY> </CHANNEL> <CHANNELCHAN="02"> <BANNER>111</BANNER> <DAY><DATE>1990-10-10</DATE> <PROGRAMSLOTVTR="net"> <TIME>12:00</TIME> <TITLERATING="rat"LANGUAGE="zh">titlename</TITLE> </PROGRAMSLOT></DAY> <DAY><DATE>1990-10-10</DATE> <HOLIDAY>11</HOLIDAY> <PROGRAMSLOT> <TIME>12:00</TIME> <TITLE>titlename</TITLE> <DESCRIPTION>©right;</DESCRIPTION> </PROGRAMSLOT></DAY> </CHANNEL></TVSCHEDULE>6.答案<xmlversion="1.0"encoding="UTF-8"><!DOCTYPECATALOG[<!ENTITYAUTHOR"JohnDoe"><!ENTITYCOMPANY"JDPowerTools,Inc."><!ELEMENTCATALOG(PRODUCT+)><!ELEMENTPRODUCT(SPECIFICATIONS+,OPTIONS,PRICE+,NOTES)><!ATTLISTPRODUCTNAMECDATA#IMPLIEDCATEGORY(HandTool|Table|Shop-Professional)"HandTool"PARTNUMCDATA#IMPLIEDPLANT(Pittsburgh|Milwaukee|Chicago)"Chicago"INVENTORY(InStock|Backordered|Discontinued)"InStock"><!ELEMENTSPECIFICATIONS(#PCDATA)><!ATTLISTSPECIFICATIONSWEIGHTCDATA#IMPLIEDPOWERCDATA#IMPLIED><!ELEMENTOPTIONS(#PCDATA)><!ATTLISTOPTIONSFINISH(Metal|Polished|Matte)"Matte"ADAPTER(Included|Optional|NotApplicable)"Included"CASE(HardShell|Soft|NotApplicable)"HardShell"><!ELEMENTPRICE(#PCDATA)><!ATTLISTPRICEMSRPCDATA#IMPLIEDWHOLESALECDATA#IMPLIEDSTREETCDATA#IMPLIEDSHIPPINGCDATA#IMPLIED><!ELEMENTNOTES(#PCDATA)>]><CATALOG> <PRODUCTNAME="sss"CATEGORY="Table"PARTNUM="xxx"PLANT="Milwaukee"INVENTORY="Backordered"> <SPECIFICATIONSWEIGHT="100"POWER="eee">&COMPANY;</SPECIFICATIONS> <OPTIONS>ddd</OPTIONS> <PRICEMSRP="ss"SHIPPING="ss"STREET="ss"WHOLESALE="eee">ddd</PRICE> <NOTES></NOTES> </PRODUCT> <PRODUCT> <SPECIFICATIONS></SPECIFICATIONS> <PRICE></PRICE> </PRODUCT></CATALOG>習(xí)題3答案1.<xmlversion="1.0"encoding="UTF-8"><!DOCTYPEclass[<!ELEMENTclass(aa:major,students)*><!ELEMENTaa:major(aa:name)*><!ELEMENTaa:name(#PCDATA)><!ELEMENTstudents(bb:student)*><!ELEMENTbb:student(bb:name+,bb:age+)><!ELEMENTbb:name(#PCDATA)><!ELEMENTbb:age(#PCDATA)><!ATTLISTclassxmlns:aaCDATA#REQUIREDxmlns:bbCDATA#REQUIREDxmlnsCDATA#REQUIRED><!ATTLISTbb:studentsnCDATA#REQUIRED>]><aa:major> <aa:name>軟件工程</aa:name></aa:major><students> <bb:studentsn="01"> <bb:name>張三</bb:name> <bb:age>18</bb:age> </bb:student> <bb:studentsn="02"> <bb:name>李四</bb:name> <bb:age>120</bb:age> </bb:student></students></class>2.<xmlversion="1.0"encoding="UTF-8"><!DOCTYPElibrary[<!ELEMENTlibrary(books,records)*><!ELEMENTbooks(book*)><!ELEMENTbook(#PCDATA)><!ATTLISTbookaa:bookidCDATA#REQUIRED><!ELEMENTrecords(item*)><!ELEMENTitem(date+,person+)><!ELEMENTdate(#PCDATA)><!ELEMENTperson(#PCDATA)><!ATTLISTpersonbb:nameCDATA#REQUIRED><!ATTLISTpersonborrowedCDATA#REQUIRED><!ATTLISTlibraryxmlns:aaCDATA#REQUIREDxmlns:bbCDATA#REQUIRED>]> <books> <bookaa:bookid="b-1-1">XML詳解</book> <bookaa:bookid="b-1-2">Servlet從入門到精通</book> <bookaa:bookid="b-1-3">JSP實(shí)例編程</book> </books> <records> <item> <date>2012-08-01</date> <personbb:name="張三"borrowed="b-1-1b-1-2"/> </item> <item> <date>2012-08-02</date> <personbb:name="李四"borrowed="b-1-1b-1-3"/> </item> </records></library>

習(xí)題4答案1.<xmlversion="1.0"encoding="UTF-8"> <xs:elementname="學(xué)生名冊(cè)"> <xs:complexType> <xs:sequenceminOccurs="1"maxOccurs="unbounded"> <xs:elementname="學(xué)生"type="studenttype"/> </xs:sequence> </xs:complexType> </xs:element> <xs:complexTypename="studenttype"> <xs:sequence> <xs:elementname="姓名"type="xs:string"/> <xs:elementname="性別"> <xs:simpleType> <xs:restrictionbase="xs:string"> <xs:enumerationvalue="男"/> <xs:enumerationvalue="女"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:elementname="年齡"> <xs:simpleType> <xs:restrictionbase="xs:integer"> <xs:minExclusivevalue="0"/> <xs:maxExclusivevalue="100"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> <xs:attributename="學(xué)號(hào)"type="xs:integer"/> </xs:complexType></xs:schema>2.<xmlversion="1.0"encoding="UTF-8"> <xs:simpleTypename="bookIDType"> <xs:restrictionbase="xs:string"> <xs:patternvalue="b-\d{1}-\d{1}"/> </xs:restriction> </xs:simpleType> <xs:elementname="book"> <xs:complexType> <xs:simpleContent> <xs:extensionbase="xs:string"> <xs:attributename="bookid"type="bookIDType"> </xs:attribute> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:elementname="books"> <xs:complexType> <xs:sequencemaxOccurs="unbounded"> <xs:elementref="book"></xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:elementname="person"nillable="true"> <xs:complexType> <xs:simpleContent> <xs:extensionbase="xs:string"> <xs:attributename="name"type="xs:string"> </xs:attribute> <xs:attributename="borrowed"> <xs:simpleType> <xs:listitemType="bookIDType"> </xs:list> </xs:simpleType> </xs:attribute> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:elementname="item"> <xs:complexType> <xs:sequence> <xs:elementname="date"type="xs:date"></xs:element> <xs:elementref="person"></xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:elementname="records"> <xs:complexType> <xs:sequencemaxOccurs="unbounded"> <xs:elementref="item"></xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:elementname="library"> <xs:complexType> <xs:sequence> <xs:elementref="books"> </xs:element> <xs:elementref="records"></xs:element> </xs:sequence> </xs:complexType> </xs:element></xs:schema>

習(xí)題5答案1.<xmlversion="1.0"encoding="UTF-8"> <xs:elementname="welcome-file-list"> <xs:complexType> <xs:sequence> <xs:elementname="welcome-file"minOccurs="1"maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:elementname="servlet"> <xs:complexType> <xs:sequence> <xs:elementname="description"type="xs:string"minOccurs="0"maxOccurs="1"></xs:element> <xs:elementname="display-name"type="xs:string"minOccurs="0"maxOccurs="1"></xs:element> <xs:elementname="servlet-name"type="xs:string"minOccurs="1"maxOccurs="1"></xs:element> <xs:elementname="servlet-class"type="xs:string"minOccurs="1"maxOccurs="1"></xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:elementname="servlet-mapping"> <xs:complexType> <xs:sequence> <xs:elementname="servlet-name"type="xs:string"minOccurs="1"maxOccurs="1"></xs:element> <xs:elementname="url-pattern"minOccurs="1"maxOccurs="1"> <xs:simpleType> <xs:restrictionbase="xs:string"> <xs:patternvalue="/[a-zA-Z/.]+"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:elementname="listener"> <xs:complexType> <xs:sequence> <xs:elementname="listener-class"type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> <xs:elementname="web-app"> <xs:complexType> <xs:sequence> <xs:elementname="display-name"type="xs:string"minOccurs="0"maxOccurs="1"></xs:element> <xs:elementref="welcome-file-list"/> <xs:choiceminOccurs="1"maxOccurs="unbounded"> <xs:elementref="servlet"/> <xs:elementref="servlet-mapping"/> <xs:elementref="listener"/> </xs:choice> </xs:sequence> <xs:attributename="id"type="xs:string"/> <xs:attributename="version"> <xs:simpleType> <xs:restrictionbase="xs:float"> <xs:enumerationvalue="2.5"></xs:enumeration> <xs:enumerationvalue="2.4"></xs:enumeration> <xs:enumerationvalue="2.3"></xs:enumeration> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element></xs:schema>

習(xí)題6答案css:級(jí)聯(lián)式樣式表、XSL:可擴(kuò)展樣式單語言。引入外部CSS樣式表:<xml-stylesheettype="text/css"href="文件名.css">

習(xí)題7答案如何區(qū)分XPath的根路徑與相對(duì)路徑?是否以“/”開頭Xpath的軸有哪些selfchildparentdescendantdescendant-or-selfancestorancestor-or-selffollowingfollowing-siblingprecedingpreceding-siblingattributenamespace請(qǐng)寫出如下路徑所對(duì)應(yīng)的簡(jiǎn)化路徑:child::rootrootself::node()/root./rootdescendant-or-self::id//id//id[position()=1]//id[1]現(xiàn)有XML文檔<students> <studentid=””> <name>小王</name> </student> <studentid=””> <name>小張</name> </student></students>/students/student[1]/@id讀?。盒堖@個(gè)元素的內(nèi)容/students/student[2]/name/text()獲得sutdents元素下子元素<student>的個(gè)數(shù)count(/students//student)

習(xí)題8答案D2.C3.B4.<xmlversion="1.0"encoding="UTF-8"><xsl:outputmethod="html"encoding="GB2312"indent="yes"doctype-system="-//W3C//DTDHTML4.0.1Transitional//EN"<xsl:templatematch="/"> <html> <head> <title>成績(jī)統(tǒng)計(jì)表</title> </head> <body> <tableborder="1"> <tbody> <tr> <th>姓名</th> <th>Java成績(jī)</th> <th>Oracle成績(jī)</th> <th>UML成績(jī)</th> </tr> <xsl:apply-templates/> </tbody> </table> </body> </html> </xsl:template> <xsl:templatematch="students"> <xsl:for-eachselect="student"> <xsl:sortselect="sum(.//*[position()>1])"order="descending"/> <tr> <td><xsl:value-ofselect="name"></xsl:value-of></td> <td><xsl:apply-templatesselect="java"/></td> <td><xsl:apply-templatesselect="oracle"/></td> <td><xsl:value-ofselect="uml"></xsl:value-of></td> </tr> </xsl:for-each> </xsl:template></xsl:stylesheet>

習(xí)題9答案1.Documant、Node、Nodelist、NameNodeMap2.packagedom;importjava.io.*;publicclassTypeDoc{ publicstaticvoidmain(Stringargs[]){ DocumentBuilderFactorybdf=DocumentBuilderFactory.newInstance(); try{ DocumentBuilderdb=bdf.newDocumentBuilder(); Documentdoc=db.newDocument(); ElementeltStu=doc.createElement("student"); ElementeltName=doc.createElement("name"); ElementeltAge=doc.createElement("age"); TexttxtName=doc.createTextNode("Tina"); TexttxtAge=doc.createTextNode("12"); eltName.appendChild(txtName); eltAge.appendChild(txtAge); eltStu.appendChild(eltName); eltStu.appendChild(eltAge); eltStu.setAttribute("sn","2"); doc.appendChild(eltStu); TransformerFactorytff=TransformerFactory.newInstance(); Transformertf=tff.newTransformer(); tf.setOutputProperty("encoding","utf-8"); DOMSourcesource=newDOMSource(doc); StreamResultresult=newStreamResult(newFile("test.xml")); tf.transform(source,result); }catch(ParserConfigurationExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(TransformerConfigurationExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(TransformerExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } }}

習(xí)題10答案CABDefaultReader.java代碼packageexe;publicclassDefaultReaderextendsDefaultHandler{ privateArrayList<Double>java=newArrayList<Double>(); privateArrayList<Double>xml=newArrayList<Double>(); privateStack<String>stack=newStack<String>(); @Override publicvoidendDocument()throwsSAXException{ doublealljava=0; doubleallxml=0; for(Doubletemp:java){ alljava+=temp; } for(Doubletemp:xml){ allxml+=temp; } doubleavgjava=alljava/java.size(); doubleavgxml=allxml/xml.size(); } @Override publicvoidstartElement(Stringuri,StringlocalName,StringqName, Attributesattributes)throwsSAXException{ stack.push(qName); } @Override publicvoidendElement(Stringuri,StringlocalName,StringqName) throwsSAXException{ stack.pop(); } @Override publicvoidcharacters(char[]ch,intstart,intlength) throwsSAXException{ Stringtag=stack.peek(); if("java".equals(tag)){ java.add(Double.parseDouble(newString(ch,start,length))); }elseif("xml".equals(tag)){ xml.add(Double.parseDouble(newString(ch,start,length))); } }}Test.java代碼packageexe;publicclassTest{ publicstaticvoidmain(String[]args){ try{ XMLReaderreader=XMLReaderFactory.createXMLReader(); reader.setContentHandler(newDefaultReader()); reader.parse(newInputSource("students.xml")); }catch(SAXExceptione){ }catch(IOExceptione){ } }}

習(xí)題11答案使用JDOM實(shí)現(xiàn)文件的修改publicclassJDOMExe{ publicstaticvoidmain(String[]args){ //讀取XML文檔 SAXBuildersaxBuilder=newSAXBuilder(); try{ Documentdoc=saxBuilder.build(newFile("exebefore.xml")); Elementroot=doc.getRootElement(); //修改XML文檔 //增加元素 Elementeltdescription=newElement("description"); eltdescription.setText("一款復(fù)古又時(shí)尚的新概念皮鞋"); root.addContent(eltdescription); //修改學(xué)生信息 Elementeltprice=root.getChild("price"); eltprice.setText("300"); //輸出XML文檔 XMLOutputterout=newXMLOutputter(); //格式化輸出 Formatfmt=Format.getPrettyFormat(); fmt.setEncoding("gb2312"); fmt.setIndent(""); out.setFormat(fmt); try{ out.output(doc,newFileOutputStream("exeafter.xml")); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } }catch(JDOMException|IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } }}使用DOM4J實(shí)現(xiàn)文件的修改publicclassDom4jExe{ publicstaticvoidmain(String[]args){ SAXReadersr=newSAXReader(); //忽略標(biāo)簽與標(biāo)簽之間的空白 sr.setStripWhitespaceText(true); //將相鄰元素的內(nèi)容合并處理 sr.setMergeAdjacentText(true); //讀取XML文檔 try{ Documentdoc=sr.read(newFile("exebefore.xml")); Elementroot=doc.getRootElement(); Iteratorits=root.nodeIterator(); while(its.hasNe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論