锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 渚嬪瓙錛氭枃浠禼haracters.xml <characters> 鏌ヨ鏂囦歡錛欴ate.xquery 鍦ㄥ懡浠ゆ彁紺轟笅錛岃緭鍏ワ細(xì) D:\xml>java net.sf.saxon.Query -s characters.xml Date.xquery
1銆佸噯澶囧伐浣?BR> sax鐩稿叧鐨勭被閮藉皝瑁呭湪org.xml.sax涓紝鍏朵腑鎺ュ彛org.xml.sax.XMLReader鏄疭AX2鐨勬牳蹇?jī)绫诲Q屼綘鐨剎ml瑙f瀽鍣ㄥ簲璇ユ彁渚涜繖涓帴鍙g殑瀹炵幇綾匯傛瘮濡?org.apache.xerces.parsers.SAXParser"榪欎釜綾匯?BR>2銆乻ax鐨勫鐞嗘祦紼?BR> sax鍩烘湰鐨勫鐞嗘柟娉曟槸鍦ㄨВ鏋愪箣鍓嶆敞鍐屽悇縐嶅鐞嗙被錛圚andler錛夛紝鍦ㄨВ鏋愮殑鏃跺檆allback榪欎簺澶勭悊鍣紝鍐呭澶勭悊鍣ㄥ氨鏄叾涓渶涓昏鐨勪竴涓備婦渚嬫潵璇存槑鐨勮瘽錛屽涓嬬殑xml鏂囨。錛?BR>
<?xml version="1.0"?>
<samples>
<server>UNIX</server>
<monitor>color</monitor>
</samples>
Start document
Start element (samples)
Characters (white space)
Start element (server)
Characters (UNIX)
End element (server)
Characters (white space)
Start element (monitor)
Characters (color)
End element (monitor)
Characters (white space)
End element (samples)
org.xml.sax.ContentHandler
package org.xml.sax;
public interface ContentHandler
{
public void setDocumentLocator (Locator locator);
public void startDocument ()throws SAXException;
public void endDocument()throws SAXException;
public void startPrefixMapping (String prefix, String uri) throws SAXException;
public void endPrefixMapping (String prefix)throws SAXException;
public void startElement (String namespaceURI, String localName,String qName, Attributes atts)
throws SAXException; public void endElement (String namespaceURI, String localName,String qName)throws SAXException;
public void characters (char ch[], int start, int length)throws SAXException;
public void ignorableWhitespace (char ch[], int start, int length)throws SAXException;
public void processingInstruction (String target, String data)throws SAXException;
public void skippedEntity (String name)throws SAXException;
}
ErrorHandler榪欎釜綾繪彁渚涗袱涓柟娉曪紝warning鍜宔rror錛岀敤浜庡湪澶勭悊瑙f瀽榪囩▼鍙戠敓鐨勯敊璇拰璀﹀憡錛屽寘鎷瑇ml鏍煎紡鐨勯敊璇拰鏂囨。緇撴瀯媯(gè)鏌ョ殑閿欒銆?BR>5銆佽繃婊ゅ櫒鍜屽啓鍏ュ櫒
org.xml.sax.XMLFilter榪欎釜鎺ュ彛鎵╁睍浜?jiǎn)XMLReader鎺ュ彛錛屾坊鍔犱簡(jiǎn)涓や釜鏂版柟娉曪細(xì)
public void setParent(XMLReader reader);
public XMLReader getParent();
浠栫殑鎰忓浘姣旇緝鏄庢樉錛屽皢涓涓凡鏈夌殑XMLReader浣滀負(fù)涓婄駭瑙f瀽鍣紝浠栧皢寰椾互鍦ㄨ繖涓猉MLReader鎵ц鎹曡幏sax浜嬩歡涔嬪墠鎹曡幏浠栦滑錛屽茍浣滀竴浜涙搷浣滐紝鏈鍚庡湪閾懼悜XMLReader鐨勫璞★紝榪欓噷鐨勬蹇靛緢鍍廲ocoon鐨勫唴閮ㄥ疄鐜般?BR> 榪欓噷榪樿鎻愬埌鐨勪竴涓被鏄細(xì)org.xml.sax.helpers.XMLFilterImpl榪欎釜綾誨疄鐜頒簡(jiǎn)XMLFilter鎺ュ彛錛屼笉浠呭姝わ紝浠栬繕鎻愪緵浜?jiǎn)ContentHandler錛孍rrorHandler絳夊鐞嗗櫒鐨勫鐞嗘柟娉曢氶亾銆備篃灝辨槸璇達(dá)紝濡傛灉緇ф壙XMLFilterImpl騫惰鐩杝tartElement鏂規(guī)硶錛岄偅涔堜綘鍐欏緱浠g爜灝嗗湪瀹為檯鐨凴eader鎵цstartElement鏂規(guī)硶琚墽琛屼箣鍓嶈鎵ц銆備笅闈㈡槸涓涓敞鍐孎ilter鐨勪緥瀛愶細(xì)
XMLReader reader = XMLReaderFactory.createXMLreader();
MyFilter filter = new MyFilter(reader
.);
filter.setContenHandler(
);
鍙﹀錛屼綘褰撶劧涔熷彲浠ュ啀鍐欎竴涓猣ilter2,鑰屾妸filter浣滀負(fù)parent浼犲叆錛岃繖鏍峰氨鏋勬垚浜?jiǎn)涓涓簨浠跺鐞嗛摼銆?BR>
org.xml.sax.XMLWriter鏄竴涓疄闄呯殑榪囨護(hù)鍣紝浠栦篃鏄氳繃涓婇潰璇村埌鐨勬柟寮忥細(xì)鎵╁睍XMLFilterImpl鏉ュ疄鐜扮殑銆傚叿浣撶殑綾婚櫎浜?jiǎn)XMLWriter澶栬繕鏈塂ataWriter錛屼粬鎵╁睍XMLWriter銆?BR> 闇瑕佹敞鎰忕殑鏄繖涓や釜綾諱竴鑸笉鐢ㄦ潵鍋氬疄闄呯殑鍐欏叆嫻佹搷浣滐紝浣嗘槸浠栦滑鍙互鐢ㄤ簬寰堝ソ鐨勮〃鐜皊ax澶勭悊閾劇殑涓棿緇撴灉錛屼篃灝辨槸蹇収snapshot
6銆乻ax鐨勫睘鎬у拰鐗瑰緛
灞炴у拰鐗瑰緛鍦╔MLReader鎺ュ彛閲岄潰浣撶幇涓猴細(xì)
getFeature(String),setFeature(String,boolean)鏂規(guī)硶鍜実etProperty(String),setProperty(String,Object)鏂規(guī)硶錛岀敤鏉ユ帶鍒惰В鏋愯繃紼嬬殑涓浜涢夐」錛屾瘮濡傛槸鍚﹁繘琛孌TD鏍¢獙銆傛瘮濡傦細(xì)
reader.setFeature("reader.setFeature("
client.xml
<鑱旂郴浜哄垪琛?/SPAN>> <鑱旂郴浜?/SPAN>>
<濮撳悕>寮犱笁</濮撳悕>
<ID>001</ID>
<鍏徃>A鍏徃</鍏徃>
<EMAIL>zhang@aaa.com</EMAIL>
<鐢?shù)璇?/SPAN>>(010)62345678</鐢?shù)璇?/SPAN>>
<鍦板潃>
<琛楅亾>浜旇1234鍙?/SPAN></琛楅亾>
<鍩庡競(jìng)>鍖椾含甯?/SPAN></鍩庡競(jìng)>
<鐪佷喚>鍖椾含</鐪佷喚>
</鍦板潃>
<鐩存帴涓婂徃>
<濮撳悕>鐜嬩簲</濮撳悕>
<鐢?shù)璇?/SPAN>>
<縐樹功鐢?shù)璇?/SPAN>>(010)62345678</縐樹功鐢?shù)璇?/SPAN>>
<鎵嬫満>13601234567</鎵嬫満>
</鐢?shù)璇?/SPAN>>
</鐩存帴涓婂徃>
</鑱旂郴浜?/SPAN>>
</鑱旂郴浜哄垪琛?/SPAN>>
浠ヤ笂鏄垜浠兂瑕佹渶緇堣〃杈劇殑鏁版嵁鏍煎紡錛屽叾涓紝鑱旂郴浜虹殑鐩存帴涓婂徃灞炴ф湁鐐歸夯鐑?chǔ)锛屽洜湄?fù)鏁翠釜鐩存帴涓婂徃琛ㄨ揪鐨勬槸涓涓滀紒涓氱粡鐞嗏濈殑鈥滃璞♀濓紝璇モ滃璞♀濆彲浠ヤ互鍙﹀鐨刋ML褰㈠紡浣撶幇錛屽涓嬶細(xì)
<?xml version="1.0" encoding="GB2312"?>
<浼佷笟緇忕悊>
<濮撳悕>鐜嬩簲</濮撳悕>
<鐢?shù)璇?/SPAN>>
<縐樹功鐢?shù)璇?/SPAN>>(010)62345678</縐樹功鐢?shù)璇?/SPAN>>
<鎵嬫満>13601234567</鎵嬫満>
</鐢?shù)璇?/SPAN>>
</浼佷笟緇忕悊>
鐪嬩互涓婄殑涓や釜鏂囨。錛屽疄闄呬笂灝辨槸鎴戜滑鎯寵〃杈劇殑鏁版嵁錛屼袱涓娊璞$殑瀹炰綋鈥滆仈緋諱漢鈥濆拰鈥滀紒涓氱粡鐞嗏濅箣闂村瓨鍦ㄧ潃涓瀵逛竴鐨勫叧緋匯?BR> 浣嗘槸鎴戜滑鐜板湪鏈変釜楹葷儲(chǔ)錛屽湪鑱旂郴浜哄垪琛ㄨ繖涓猉ML褰撲腑錛屾湁涓や釜鈥滃鍚嶁濆厓绱犲拰涓や釜鈥滅數(shù)璇濃濆厓绱狅紝浠栦滑琛ㄨ揪鐨勬槸涓嶅悓鐨勬剰鎬濓紝鍏舵枃妗f牸寮忓畾涔変篃涓嶅悓銆備粬浠垎鍒搴旂潃涓嶅悓鐨凞TD鎴栬呮槸Schema銆?BR> 涓轟簡(jiǎn)瑙e喅榪欎竴闂錛屽氨鏈変簡(jiǎn)鍛藉悕絀洪棿鐨勬蹇碉紝棣栧厛錛屽浜庢垜浠鏈緇堜綔鐢ㄤ簬鍏朵笂鐨刢lient.xml錛屼粬蹇呴』棣栧厛鍖哄埆鑱旂郴浜哄拰浼佷笟緇忕悊錛屽仛娉曞氨鏄湪鍓嶉潰鍔犲墠緙錛屾瘮濡傝仈緋諱漢鐨勫悕瀛楁敼涓衡滆仈緋諱漢錛氬悕瀛椻濊屼紒涓氱粡鐞嗙殑鍚嶅瓧鍒欐敼涓衡滀紒涓氱粡鐞嗭細(xì)鍚嶅瓧鈥?BR> 鍏舵錛屼袱涓笉鍚岀殑鏂囨。瀹氫箟鏂囦歡蹇呴』棣栧厛瀹氫箟濂藉懡鍚嶇┖闂達(dá)紝鍦ㄤ綔鐢ㄤ簬XML鏂囦歡鐨勬椂鍊欙紝浣垮懡鍚嶇┖闂村拰XML澹版槑涓殑鍛藉悕絀洪棿涓鑷?/STRONG>銆?BR> 涓嬮潰鍒嗗埆緇欏嚭渚嬪瓙浠g爜錛?BR> client.xml錛?BR>
<?xml version="1.0" encoding="GB2312"?>
<鑱旂郴浜?鑱旂郴浜哄垪琛?nbsp;
xmlns:鑱旂郴浜?/SPAN>="id"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="id client.xsd id2 manager.xsd"
xmlns:浼佷笟緇忕悊="id2">
<鑱旂郴浜?鑱旂郴浜?/SPAN>>
<鑱旂郴浜?濮撳悕>寮犱笁</鑱旂郴浜?濮撳悕>
<鑱旂郴浜?ID>001</鑱旂郴浜?ID>
<鑱旂郴浜?鍏徃>A鍏徃</鑱旂郴浜?鍏徃>
<鑱旂郴浜?EMAIL>zhang@鑱旂郴浜?com</鑱旂郴浜?EMAIL>
<鑱旂郴浜?鐢?shù)璇?/SPAN>>(010)62345678</鑱旂郴浜?鐢?shù)璇?/SPAN>>
<鑱旂郴浜?鍦板潃>
<鑱旂郴浜?琛楅亾>浜旇1234鍙?/SPAN></鑱旂郴浜?琛楅亾>
<鑱旂郴浜?鍩庡競(jìng)>鍖椾含甯?/SPAN></鑱旂郴浜?鍩庡競(jìng)>
<鑱旂郴浜?鐪佷喚>鍖椾含</鑱旂郴浜?鐪佷喚>
</鑱旂郴浜?鍦板潃>
<鑱旂郴浜?鐩存帴涓婂徃>
<浼佷笟緇忕悊:濮撳悕>鐜嬩簲</浼佷笟緇忕悊:濮撳悕>
<浼佷笟緇忕悊:鐢?shù)璇?/SPAN>>
<浼佷笟緇忕悊:縐樹功鐢?shù)璇?/SPAN>>(010)62345678</浼佷笟緇忕悊:縐樹功鐢?shù)璇?/SPAN>>
<浼佷笟緇忕悊:鎵嬫満>13601234567</浼佷笟緇忕悊:鎵嬫満>
</浼佷笟緇忕悊:鐢?shù)璇?/SPAN>>
</鑱旂郴浜?鐩存帴涓婂徃>
</鑱旂郴浜?鑱旂郴浜?/SPAN>>
<鑱旂郴浜?鑱旂郴浜?/SPAN>>
<鑱旂郴浜?濮撳悕>鏉庡洓</鑱旂郴浜?濮撳悕>
<鑱旂郴浜?ID>002</鑱旂郴浜?ID>
<鑱旂郴浜?鍏徃>B鍏徃</鑱旂郴浜?鍏徃>
<鑱旂郴浜?EMAIL>li@bbb.org</鑱旂郴浜?EMAIL>
<鑱旂郴浜?鐢?shù)璇?/SPAN>>(021)87654321</鑱旂郴浜?鐢?shù)璇?/SPAN>>
<鑱旂郴浜?鍦板潃>
<鑱旂郴浜?琛楅亾>鍗椾含璺?876鍙?/SPAN></鑱旂郴浜?琛楅亾>
<鑱旂郴浜?鍩庡競(jìng)>涓婃搗甯?/SPAN></鑱旂郴浜?鍩庡競(jìng)>
<鑱旂郴浜?鐪佷喚>涓婃搗</鑱旂郴浜?鐪佷喚>
</鑱旂郴浜?鍦板潃>
<鑱旂郴浜?鐩存帴涓婂徃>aa</鑱旂郴浜?鐩存帴涓婂徃>
</鑱旂郴浜?鑱旂郴浜?/SPAN>>
</鑱旂郴浜?鑱旂郴浜哄垪琛?/SPAN>>
client.xsd錛?BR>
<?xml version="1.0" encoding="GB2312" standalone="yes"?>
<!--W3C Schema generated by XMLSpy v2005 sp1 U (http://www.xmlspy.com)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="id" targetNamespace="id" elementFormDefault="qualified">
<xs:element name="EMAIL" type="xs:string"/>
<xs:element name="ID" type="xs:string"/>
<xs:element name="鍏徃" type="xs:string"/>
<xs:element name="鍦板潃">
<xs:complexType>
<xs:sequence>
<xs:element ref="琛楅亾"/>
<xs:element ref="鍩庡競(jìng)"/>
<xs:element ref="鐪佷喚"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="鍩庡競(jìng)" type="xs:string"/>
<xs:element name="濮撳悕" type="xs:string"/>
<xs:element name="鐢?shù)璇? type="xs:string"/>
<xs:element name="鐪佷喚" type="xs:string"/>
<xs:element name="鑱旂郴浜?>
<xs:complexType>
<xs:sequence>
<xs:element ref="濮撳悕"/>
<xs:element ref="ID"/>
<xs:element ref="鍏徃"/>
<xs:element ref="EMAIL"/>
<xs:element ref="鐢?shù)璇?/>
<xs:element ref="鍦板潃"/>
<xs:element ref="鐩存帴涓婂徃"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="鑱旂郴浜哄垪琛?>
<xs:complexType>
<xs:sequence>
<xs:element ref="鑱旂郴浜? maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="琛楅亾" type="xs:string"/>
<xs:element name="鐩存帴涓婂徃" type="xs:anyType"/>
</xs:schema>
manager.xsd錛?BR>
<?xml version="1.0" encoding="GB2312" standalone="yes"?>
<!--W3C Schema generated by XMLSpy v2005 sp1 U (http://www.xmlspy.com)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="id2" targetNamespace="id2" elementFormDefault="qualified">
<xs:element name="浼佷笟緇忕悊">
<xs:complexType>
<xs:sequence>
<xs:element ref="濮撳悕"/>
<xs:element ref="鐢?shù)璇?/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="濮撳悕" type="xs:string"/>
<xs:element name="鎵嬫満" type="xs:string"/>
<xs:element name="鐢?shù)璇?>
<xs:complexType>
<xs:sequence>
<xs:element ref="縐樹功鐢?shù)璇?/>
<xs:element ref="鎵嬫満"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="縐樹功鐢?shù)璇? type="xs:string"/>
</xs:schema>
璇存槑錛氭垜鍦ㄨ繖閲岀敤id鍜宨d2鏉ヨ〃紺哄懡鍚嶇┖闂存槸搴斾負(fù)寰堝浜轟細(xì)璁や負(fù)閭d釜鍛藉悕絀洪棿鐨勭綉鍧浼?xì)鍦ㄨВ鏋怷ML鐨勬椂鍊欒璁塊棶錛屾垜涓寮濮嬩篃榪欐牱璁や負(fù)錛屾墍浠ユ敼鎴恑d鏉ュ仛涓祴璇曘?img src ="http://www.tkk7.com/lqsun/aggbug/1840.html" width = "1" height = "1" />
絎竴鐐硅娉ㄦ剰鐨勶細(xì)DTD涓殑鍏抽敭瀛楀繀欏誨叏閮ㄥぇ鍐欙紒
涓銆丏TD鐨勪綅緗?BR> DTD鍙互鏀懼湪xml鏂囨。閲岄潰錛?BR>
鍑?guó)檱奨ML鍏ラ棬銆?BR>
<?xml version = "1.0" encoding="GB2312" standalone = "yes"?>
<!DOCTYPE 鑱旂郴浜哄垪琛╗
<!ELEMENT 鑱旂郴浜哄垪琛?nbsp;(鑱旂郴浜?*>
<!ELEMENT 鑱旂郴浜?nbsp;(濮撳悕,ID,鍏徃,EMAIL,鐢?shù)璇?鍦板潃)>
<!ELEMENT 鍦板潃 (琛楅亾,鍩庡競(jìng),鐪佷喚)>
<!ELEMENT 濮撳悕 (#PCDATA)>
<!ELEMENT ID (#PCDATA)>
<!ELEMENT 鍏徃 (#PCDATA)>
<!ELEMENT EMAIL (#PCDATA)>
<!ELEMENT 鐢?shù)璇?nbsp;(#PCDATA)>
<!ELEMENT 琛楅亾 (#PCDATA)>
<!ELEMENT 鍩庡競(jìng) (#PCDATA)>
<!ELEMENT 鐪佷喚 (#PCDATA)>
]>
<鑱旂郴浜哄垪琛?/SPAN>>
...................................
鏀懼湪閲岄潰鐨勬椂鍊欙紝搴旇娉ㄦ剰鈥渟tandalone = "yes"鈥?BR>涔熷彲浠ユ斁鍦ㄥ闈紝鏀懼湪澶栭潰鏈変袱縐嶅艦寮忥紝涓縐嶆槸寮曠敤鏈湴鏂囦歡錛屽錛?BR>
<?xml version = "1.0" encoding="GB2312" standalone = "no"?>
<!DOCTYPE 鑱旂郴浜哄垪琛?nbsp;SYSTEM "fclml.dtd">
<鑱旂郴浜哄垪琛?/SPAN>>
..................
寮曠敤鐨勬牸寮忔槸錛?lt;!DOCTYPE 鏍瑰厓绱犲悕 SYSTEM "澶栭儴DTD鏂囦歡鐨刄RL">
鍙﹀涓縐嶆槸寮曠敤鍏叡鐨勬枃妗e畾涔夛紝濡傦細(xì)
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
鍏朵腑DTD鍚嶇О瑙i噴涓猴細(xì)
榪欎釜DTD鏍囪瘑鐨勫懡鍚嶈鍒欏拰XML鏂囦歡鐨勫懡鍚嶈鍒欑◢鏈変笉鍚屻傚叿浣撳湴璇達(dá)紝DTD鍚嶇О鍙兘鍖呭惈瀛楁瘝銆佹暟瀛椼佺┖鏍煎拰涓嬮潰鐨勭鍙鳳細(xì)_%$#@()+:=/!*;?銆傚悓鏃訛紝DTD鍚嶇О榪樺繀欏葷鍚堜竴浜涙爣鍑嗙殑瑙勫畾銆備緥濡傦紝ISO鏍囧噯鐨凞TD浠モ淚SO鈥濅笁涓瓧姣嶅紑澶達(dá)紱琚敼榪涚殑闈濱SO鏍囧噯鐨凞TD浠ュ姞鍙封?鈥濆紑澶達(dá)紱鏈鏀硅繘鐨勯潪ISO鏍囧噯鐨凞TD浠ュ噺鍙封?鈥濆紑澶淬?BR>鎵浠ヨstruts鐨勯厤緗枃浠跺氨鏄滄湭琚敼榪涚殑闈濱SO鏍囧噯鐨凞TD鏂囨。鈥?BR>
浜屻丏TD鐨勫唴瀹?BR>DTD鏂囨。鐨勫唴瀹規(guī)葷粨涓嬫潵鏈夊嚑涓瘮杈冮噸瑕佷篃姣旇緝甯哥敤鐨勶細(xì)鍙傛暟瀹炰綋瀹氫箟銆佸厓绱犲畾涔夊拰灞炴у畾涔?BR>1銆佸弬鏁板疄浣撳畾涔?BR> 瀹炰綋瀹為檯涓婂湪XML褰撲腑鍏呭綋瀹忓畾涔夋垨鑰呭埆鍚嶄箣綾葷殑鎰忔濓紝涔熷彲浠ョ悊瑙f垚public static String......
鍙傛暟瀹炰綋鏄笓闂ㄧ敤鍦―TD褰撲腑鐨勶紝浣犲彲浠ュ湪涓嬮潰涓ら」鍏冪礌瀹氫箟鍜屽睘鎬у畾涔変腑寮曠敤鍙傛暟瀹炰綋銆?BR> 鍏跺畾涔夋柟寮忓涓嬶細(xì)
<!ENTITY % 瀹炰綋鍚?"瀹炰綋鍐呭"> 娉ㄦ剰錛屽湪XML涓殑瀹炰綋瀹氫箟鏄病鏈?鐨?BR> 鎴栬呮槸錛?BR> <!ENTITY % 瀹炰綋鍚?SYSTEM "澶栭儴鏂囦歡鍚?>
寮曠敤鏂瑰紡錛?BR> %瀹炰綋鍚?BR> 渚嬪瓙錛?BR> <!ENTITY % Boolean "(true|false|yes|no)">琛ㄧず瀹氫箟浜?jiǎn)涓涓狟oolean 鐨勫弬鏁板疄浣擄紝鍊兼槸"(true|false|yes|no)"
鍦╯truts鐨勯厤緗枃浠剁殑DTD涓湁濡備笅鎻忚堪錛?BR> <!ATTLIST form-bean dynamic %Boolean; #IMPLIED>
涔熷氨瀹氫箟浜?jiǎn)form-bean榪欎釜鍏冪礌鐨刣ynamic灞炴у彲浠ュ彇寰楀兼槸true銆乫alse銆亂es銆乶o鍏朵腑涔嬩竴銆?BR>
2銆佸厓绱犲畾涔?BR> 鐢ㄦ潵瀹氫箟鍏冪礌鐨勬牸寮忎互鍙?qiáng)鍏冪礌鐨勫瓙瀛櫧{夈?BR> 瀹氫箟褰㈠紡錛?nbsp;
<!ELEMENT 鍏冪礌鍚?鍏冪礌鍐呭鎻忚堪>
鍏冪礌瀹氫箟榪欓噷鐢變簬綃囧箙鏈夐檺錛屼粎鍒楀嚑涓緥瀛?BR> 1銆?lt;!ELEMENT 鑱旂郴浜哄垪琛?ANY>琛ㄧず鑱旂郴浜哄垪琛ㄨ繖涓厓绱犵殑鏍煎紡鍙?qiáng)鍏跺瓙瀛欓兘涓嶅彈闄愬埗銆?BR> 2銆?lt;!ELEMENT 濮撳悕(#PCDATA)>琛ㄧず濮撳悕榪欎釜鍏冪礌鍙兘鍖呭惈鏂囨湰鏁版嵁
3銆?lt;!ELEMENT 鑱旂郴浜?濮撳悕 EMAIL)>琛ㄧず鑱旂郴浜鴻繖涓厓绱犲彧鑳藉寘鍚鍚嶅拰EMAIL涓ょ瀛愬瓩錛岄『搴忎笉闄愶紝騫朵笖濮撳悕鍙兘鐢變竴涓紝EMAIL涔熷彧鑳界敱涓涓?BR> 4銆?lt;!ELEMENT 鑱旂郴浜?濮撳悕,EMAIL)>琛ㄧず鑱旂郴浜鴻繖涓厓绱犲彧鑳藉寘鍚鍚嶅拰EMAIL涓ょ瀛愬瓩錛屾湁欏哄簭鐨勯檺鍒訛紝騫朵笖濮撳悕鍙兘鐢變竴涓紝EMAIL涔熷彧鑳界敱涓涓?BR> 5銆?lt;!ELEMENT 鑱旂郴浜?濮撳悕錛孍MAIL+)>琛ㄧず鑱旂郴浜哄繀欏繪湁涓斾粎鏈変竴涓鍚嶅瓙瀛欙紝鏈変竴涓埌澶氫釜EMAIL瀛愬瓩錛屽叾涓紝濡傛灉+鎹綔*錛屽垯琛ㄧず闆朵釜鎴栬呭涓?/FONT>
6銆?lt;!ELEMENT 鑱旂郴浜?濮撳悕錛孍MAIL)+>琛ㄧず鑱旂郴浜烘湁涓緇勫埌澶氱粍瀛愬瓩錛屾瘡緇勪腑鏈変笖浠呮湁涓瀵瑰鍚嶅拰EMAIL
7銆?lt;!ELEMENT 鑱旂郴浜?濮撳悕錛?鐢?shù)璇?FONT color=#ff0000>|EMAIL))>琛ㄧず鑱旂郴浜烘湁涓緇勫埌澶氱粍瀛愬瓩錛屾瘡緇勪腑絎竴涓厓绱犱竴瀹氭槸濮撳悕錛岀浜屼釜鍏冪礌瑕佷箞鏄數(shù)璇濓紝瑕佷箞鏄疎MAIL錛屼袱鑰呴変竴涓?BR> 8銆?lt;!ELEMENT 鑱旂郴浜?EMPTY>鑱旂郴浜鴻繖涓厓绱犱笉鍖呭惈浠諱綍瀛愬瓩錛屼篃涓嶅寘鍚枃鏈?BR>
3銆佸睘鎬у畾涔?BR> 鏍煎紡錛?/STRONG><!ATTLIST 鍏冪礌鍚?錛堝睘鎬у悕 灞炴х被鍨?緙虹渷鍊鹼級(jí)*>
渚嬪瓙錛?BR> 1銆?lt;!ATTLIST 欏甸潰浣滆?
濮撳悕 #CDATA #IMPLIED
騫撮緞 #CDATA #IMPLIED
鑱旂郴淇℃伅 #CDATA #REQUIRED
緗戠珯鑱屽姟 #CDATA #FIXED "欏甸潰浣滆?
涓漢鐖卞ソ #CDATA "涓婄綉">
鍏朵腑錛屽畾涔変簡(jiǎn)欏甸潰浣滆呰繖涓厓绱犵殑灞炴у彲浠ユ湁鈥滃鍚嶁濓紝鈥滃勾榫勨濓紝鈥滆仈緋諱俊鎭濓紝鈥滅綉绔欒亴鍔♀濆拰鈥滀釜浜虹埍濂解?BR> 騫朵笖錛屽鍚嶅拰騫撮緞鏄函鏂囨湰錛屽彲浠ユ病鏈夛紝鑱旂郴淇℃伅蹇呴』鏈夛紝緗戠珯鑱屽姟涓瀹氭槸鈥滈〉闈綔鑰呪濓紝涓漢鐖卞ソ濡傛灉涓嶅~錛屽垯榛樿鏄笂緗戙?BR>
2銆?lt;!ATTLIST 鑲?綾誨瀷( 楦¤倝 | 鐗涜倝 | 鐚倝 | 楸艱倝 ) "楦¤倝">鍏冪礌鑲夊彲浠ユ湁鈥滅被鍨嬧濆睘鎬э紝綾誨瀷灞炴у彲浠ラ夋嫨 楦¤倝 | 鐗涜倝 | 鐚倝 | 楸艱倝鍏朵腑涓涓紝榛樿鏄滈浮鑲夆?BR> 3銆?lt;!ATTLIST 鑱旂郴浜?緙栧彿 ID #REQUIRED>鑱旂郴浜哄厓绱犳湁涓斿繀欏繪湁緙栧彿灞炴э紝鍏剁被鍨嬫槸ID鍨嬬殑錛孖D鍨嬫垨鑰呮槸IDREF鍨嬬殑灞炴у煎繀欏繪槸涓涓湁鏁堢殑XML鍚嶇О錛屽畠鐢卞瓧姣嶃佹暟瀛楁垨涓嬪垝綰垮紑濮嬶紝鍚嶅瓧涓笉鑳藉嚭鐜扮┖鐧界銆傜被浼糎tml涓殑ID銆?BR> 4銆佸彟澶栫被鍨婲MTOKEN鍜孨MTOKENS榪樻湁NOTATION綾誨瀷鎴戣繕涓嶆槸澶槑鐧斤紝閭d綅鏄庣櫧鐨勪笉濡ㄧ粰鍑篰_^銆?BR>
鐪嬪埌鏈変漢闂浣曚嬌鐢▁query錛屽叾瀹炴垜涔熸槸涓彍楦熴?BR>鍒氬垰榪愯浜?jiǎn)涓や釜渚嬪瓙锛尵l欎笉浼?xì)鐨勬寚涓矾銆?BR>棣栧厛涓嬭澆saxon8.1.1 http://saxon.sourceforge.net/
Saxon-B 8.1.1鏄厤璐圭殑錛孲axon-SA 8.1.1鏄湁璇曠敤鏈熺殑錛屽墠鑰呭氨澶熶簡(jiǎn)銆?BR>緋葷粺瑕佸畨瑁卝dk1.4.1浠ヤ笂鐗堟湰錛屽洜涓簊axon鏄敤榪欎釜鐗堟湰鍐欑殑錛屼絾涓嶇煡閬?.3.1琛屼笉銆?BR>璁板緱璁劇疆JAVA_HOME鐜鍙橀噺鎸囧悜jdk銆?BR>鐒跺悗錛岃瘯璇曞惂錛?
<character>
<name>Aleria</name>
<gender>Female</gender>
<species>Heroleim</species>
<vocation>Bard</vocation>
<level>5</level>
<health>25</health>
</character>
<character>
<name>Shar</name>
<gender>Male</gender>
<species>Human</species>
<vocation>Merchant</vocation>
<level>6</level>
<health>28</health>
</character>
<character>
<name>Gite</name>
<gender>Female</gender>
<species>Aelvar</species>
<vocation>Mage</vocation>
<level>7</level>
<health>18</health>
</character>
<character>
<name>Horukkan</name>
<gender>Male</gender>
<species>Udrecht</species>
<vocation>Warrior</vocation>
<level>5</level>
<health>32</health>
</character>
<character>
<name>Gounna</name>
<gender>Female</gender>
<species>Noleim</species>
<vocation>Mage</vocation>
<level>8</level>
<health>31</health>
</character>
<character>
<name>Sheira</name>
<gender>Female</gender>
<species>Human</species>
<vocation>Cleric</vocation>
<level>4</level>
<health>17</health>
</character>
<character>
<name>Drue</name>
<gender>Female</gender>
<species>Voleim</species>
<vocation>Warrior</vocation>
<level>6</level>
<health>32</health>
</character>
<character>
<name>Paccu</name>
<gender>Male</gender>
<species>Human</species>
<vocation>Merchant</vocation>
<level>5</level>
<health>24</health>
</character>
</characters>
for $character in doc('characters.xml')//character
order by $character/name descending
return
<dateReport>
{$character/name}
</dateReport>
(: Stylus Studio meta-information - (c)1998-2003. Sonic Software Corporation. All rights reserved.
<metaInformation>
<scenarios/><MapperInfo><TargetSchema SchemaFilePath="" SchemaRoot="" AssociatedInstance=""/></MapperInfo>
</metaInformation>
:)
set classpath=d:\saxon\saxon8.jar 錛坰axon8.jar鎵鍦ㄦ枃浠跺す錛?BR>java net.sf.saxon.Query -s characters.xml Date.xquery
ok!
鐪嬬粨鏋滃惂錛?/P>
<?xml version="1.0" encoding="UTF-8"?>
<dateReport>
<name>Sheira</name>
</dateReport>
<dateReport>
<name>Shar</name>
</dateReport>
<dateReport>
<name>Paccu</name>
</dateReport>
<dateReport>
<name>Horukkan</name>
</dateReport>
<dateReport>
<name>Gounna</name>
</dateReport>
<dateReport>
<name>Gite</name>
</dateReport>
<dateReport>
<name>Drue</name>
</dateReport>
<dateReport>
<name>Aleria</name>
</dateReport>
1銆亁ml錛氳繖涓笉鐢ㄨ浜?jiǎn)锛屽彲鎵╁睍鏍囪璇a
2銆乨td&schema錛氱敤浜庤瀹歺ml鏂囨。姝g‘鎬х殑涓滀笢銆傝繖涓笢瑗塊噷闈㈠唴瀹瑰ソ澶氾紝澶熷涓闃靛瓙鐨勩?BR>3銆亁sl錛歟Xtensible Stylesheet Language錛屽彲鎵╁睍鐨勬牱寮忚〃璇█錛岃繖鏄釜濂戒笢瑗匡紝鍙互灝唜ml杞寲鎴愪換浣曚笢瑗匡紙姣斿杞寲鎴恓avaBean鐨勭被婧愭枃浠訛紝鎴栬卻ql鑴氭湰錛?BR> 浠婂ぉ榪樺緱鐭ワ紝xsl鍖呮嫭涓ゅぇ閮ㄥ垎錛寈slt錛坋Xtensible Stylesheet Language Transformation錛夊拰xsl-fo錛坒ormatting Object錛夛紝鍓嶄竴閮ㄥ垎鐢ㄦ潵杞崲xml錛屽悗涓閮ㄥ垎鐢ㄦ潵鏍煎紡鍖栬緭鍑猴紙綾諱技css鐨勫姛鑳斤級(jí)銆?BR>4銆亁slt錛氬鍓嶆墍榪幫紝鐢ㄦ潵杞寲xml錛屼粬鍙互閫夋嫨閭d簺鏄劇ず閭d簺涓嶆樉紺猴紝鍙互鎺掑簭錛岀敋鑷沖彲浠ョ粺璁★紝姣斿count錛堬級(jí)銆傝屼笖鐩墠xslt涔熷湪蹇熷彂灞曠潃錛屾柊鐨勫嚱鏁板簱灞傚嚭涓嶇┓錛屽煎緱鏈熷緟鍜屾繁鍏ュ涔?fàn)銆?BR>5銆亁Path錛歺slt涓竴涓噸瑕佺粍鎴愰儴鍒嗭紝鐩墠鐗堟湰濂藉儚鏄?.0錛孹Path鏄敤鏉ュ府鍔SLT鍦╔ML婧愭枃妗d腑鏌ユ壘瀹氫綅淇℃伅鐨勮璦錛屽姛鑳介潪甯哥殑寮哄ぇ錛屾棩鍚庡皢浣滀負(fù)涓涓笓棰樿繘琛屽涔?fàn)銆?BR>6銆丼AX錛歋imple Application interface for XML錛屼竴涓畝鍗曠殑xml澶勭悊api錛屽鐞嗕竴鑸祦紼嬪涓嬶細(xì)
7銆乨om錛氶珮綰ф娊璞$殑xml鎿嶄綔鎺ュ彛錛屽綋鐒朵篃瑕佷嬌鐢ㄦ瘮濡倄erces榪欐牱鐨勮В鏋愬櫒銆俤om涓互鏍?wèi)鍨嬮槻闂畑ml鏂囨。錛屽茍涓旀湁xslt錛寈Path絳夌殑鏀寔銆?BR>8銆丣AXP錛歴un鍏徃鐨勭О涓衡淛ava API for XML Parsing鈥濈殑Java XML瑙f瀽鍣ˋPI錛屽叾涓?STRONG>騫朵笉鍖呭惈瑙f瀽鍣紒
JAXP鏄竴涓娊璞″眰錛岀粰鍑烘帴鍙e畾涔夛紝浠栧繀欏諱嬌鐢ㄧ涓夋柟鐨勫xerces榪欐牱鐨勮В鏋愬櫒錛屼絾鏄粬鍙互閫氳繃閰嶇疆鏂囦歡鐨勫艦寮忓緢鏂逛究鐨勬洿鎹㈣В鏋愬櫒錛屼粬鐨勪綔鐢ㄥ氨鏄粰涓嶅悓鐨勮В鏋愬櫒鎻愪緵浜?jiǎn)涓涓粺涓鎿嶄綔鐨勫鉤鍙幫紝鎻愪緵SAX鐨勯挬瀛愶紝鎻愪緵DOM鐨勯挬瀛愩?BR>9銆亁Query錛氫竴縐嶆洿鍔犲己澶х殑XML鏌ヨ璇█錛屽鏋淴ML鏈変竴澶╁彲浠ュ彇浠e叧緋繪暟鎹簱鐨勮瘽錛岃繖涓笢涓滆偗瀹氫細(xì)鍍廠QL浠婂ぉ榪欐牱椋庤錛佽繖杈規(guī)湁涓涓畝鍗曠殑渚嬪瓙鏉ユ紨紺篨Query
璁茬殑涓嶅鐨勫湴鏂硅鎸囨錛?/P>