999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Java解析XML的一種數據綁定技術

2012-01-15 06:02:48劉平
電子設計工程 2012年15期
關鍵詞:跨平臺可視化方法

劉平

(西安財經學院 信息與教育技術中心,陜西 西安 710061)

在跨平臺的Web技術應用中,XML[1]技術占據著非常重要的地位,如不同系統之間的數據交互,同一系統各模塊之間實現松耦合[2],如果沒有XML技術的支持,要做好軟件技術開發是很難想象的。對于應用層軟件開發人員來講,遇到的主要技術困難就是跨平臺,因為他們所用的開發平臺大都各自成為完整的體系,而且系統大都集成了各種插件。下面通過處理 “學生基本信息”這一實例系統地論述跨平臺地XML與Java綁定技術和方法。

1 創建圖形化的XSM文件

根據對學生基本信息的分析,可以建立描述學生基本信息的可視化XSM文件,如圖1所示。

2 創建XSD文件

接下來將XSM圖形文件轉換成XSD[3](XML Schema)模板文件,名為:XMLStudents.XSD,轉換后的內容如下:

3 將XSD文件的各元素與Java類綁定

下一步根據XMLStudents.XSD文件的內容,創建相應的Java類[4]:XmlStudents.Java、XMLStudent.java 和 XmlStudentType.java文件,實現解析功能主要代碼分別如下:

1)XmlStudents.Java

該文件中主要創建對整個XML文件的元素節點操作的類,以及操作每個元素節點的增刪方法和讀存節點數據值的方法,需要引進的類如下:

java.io.*,import java.util*,org.exolab.castor.xml.*,import org.xml.sax.ContentHandler;

/********創建XmlStudents類主要代碼***********/

public class XmlStudents implements java.io.Serializable{

private java.util.Vector_XMLStudentList;

public XmlStudents() {super(); _XMLStudentList=new Vector();}//構造方法

//--添加節點方法

public void addXMLStudent(xsd.XMLStudent vXMLStudent)

throws java.lang.IndexOutOfBoundsException

{

_XMLStudentList.addElement(vXMLStudent);

}

public void addXMLStudent (int index, xsd.XMLStudent vXMLStudent)

throws java.lang.IndexOutOfBoundsException

{

_XMLStudentList.insertElementAt(vXMLStudent, index);

}

public java.util.Enumeration enumerateXMLStudent()

{

return_XMLStudentList.elements();

}

//--獲取節點方法

public xsd.XMLStudent getXMLStudent(int index)

throws java.lang.IndexOutOfBoundsException

{

//--測試綁定索引

if((index<0) ||(index>_XMLStudentList.size())) {

throw new IndexOutOfBoundsException();

}

return (xsd.XMLStudent) _XMLStudentList.elementAt(index);

}

下面是該類實現的一組節點存取數據、刪除數據和驗證點數據的方法,將整個XML文件轉化成要解析的對象,從中讀取各節點[5]的數據,對XML文件進行讀寫操作(省略方法內容):getXMLStudent (),getXML-StudentCount (),isValid(,marshal (java.io.Writer,setXMLStudent (int, xsd.XMLStudent),setXMLStudent (xsd.XMLStudent,unmar-shal (Reader reader),unmarshalReader),validate(),marshal(org.xml.sax.ContentHandler handler),marshal(org.xml.sax.ContentHandler),removeAllXML Student(),removeXMLStudent(int).

}

2)XMLStudent.Java

該文件主要創建針對每一個XMLStudent節點進行具體操作的類。需要引進的類如下:

java.io.*,import java.util*,org.exolab.castor.xml.*,import org.xml.sax.ContentHandler;

/*******創建XmlStudent類主要代碼*************/

public class XMLStudent extends XmlStudentType implements java.io.Serializable

{

public XMLStudent() {

super();

//--驗證合法性

public boolean isValid()

{

try{

validate();

}

catch (ValidationException vex) {

return false;

}

return true;

}

/*********將節點對象寫入XML文件中********/

public void marshal(java.io.Writer[6]out)

Throws MarshalException,ValidationException

{

Marshaller.marshal(this, out);

} public void marshal(org.xml.sax.ContentHandler handler)

Throws IOException,MarshalException,Validation Exception

{

Marshaller.marshal(this, handler);

}

/*******從XML文件中讀取節點對象************/

public static java.lang.Object unmarshal(java.io.Reader reader)

throwsMarshalException,ValidationException

{

return (xsd.XMLStudent) Unmarshaller.unmarshal(xsd.XML Student.class, reader);

}

//--void validate()

public void validate()

throws org.exolab.castor.xml.ValidationException

{

org.exolab.castor.xml.Validatorvalidator= new Validator();

validator.validate(this);

}}

3)XmlStudentType.java

該文件主要創建對每個XmlStudent節點的子節點的數據解析類,需要引進的類如下:

java.io.*,import java.util*,org.exolab.castor.xml.*,import org.xml.sax.ContentHandler;

/**********創建XmlStudentType類主要代碼*******************/

public class XmlStudentType implements java.io.Serializable{

private int_ID;

private boolean_has_ID;

private java.lang.String_identify;

private java.lang.String_name;

private java.lang.String_sex;

private java.lang.String_birthday;

private java.lang.String_address;

private java.lang.String_telephone;

private java.lang.String_mem;

//--構造方法

public XmlStudentType() {

super();

}

public void deleteID()

{

this._has_ID=false;

}//--void deleteID()

/**************相應每一個屬性的一對setXxx/getXxx方法,這里略寫*******/

...............................................

//--驗證合法性

public boolean isValid()

{

try{

validate();

}

catch (ValidationException vex) {

return false;

}

return true;

}

//寫數據

public void marshal(java.io.Writer out)

Throws MarshalException,ValidationException

{

Marshaller.marshal(this, out);

}

public void marshal(ContentHandler handler)

throws IOException,MarshalException,Validation Exception

{

Marshaller.marshal(this, handler);

}

//--讀數據

public static java.lang.Object unmarshal(java.io.Reader reader)

Throws MarshalException,ValidationException

{

return (xsd.XmlStudentType) Unmarshaller.unmarshal(xsd.XmlStudentType.class, reader);

}

public void validate()

throws ValidationException

{

org.exolab.castor.xml.Validator validator=new Validator();

validator.validate(this);

}//--void validate()

}

4 創建可視化界面測試程序

創建可視化界面類,如圖2所示,將有關學生信息輸入該界面,然后提交給上面有關的類,即可實現測試。

5 結束語

根據以上代碼的實踐,筆者將XML與Java程序代碼完整地綁定在一起,為跨平臺地數據交互提供了很大地方便,并為開發人員提供了XML文件解析的另一中有效途徑。

[1]郝俊壽.XML程序設計案例教程[M].北京:機械工業出版社,2012.

[2]徐宏喆.實用軟件設計模式教程[M].北京:清華大學出版社,2010.

[3]楊少波.J2EE Web核心技術-XHTML與XML應用開發[M].北京:清華大學出版社,2011.

[4]陳燁.JBuilder7編程實作指南[M].北京:北京希望電子出版社,2003.

[5]Brett D.Mclaugblin.Java與XML[M].江文,譯.北京:中國電力出版社,2011.

[6]吳亞峰.Java se 6.0.[M].北京:人民郵電出版社,2007.

猜你喜歡
跨平臺可視化方法
基于CiteSpace的足三里穴研究可視化分析
基于Power BI的油田注水運行動態分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
基于CGAL和OpenGL的海底地形三維可視化
“融評”:黨媒評論的可視化創新
傳媒評論(2019年4期)2019-07-13 05:49:14
跨平臺APEX接口組件的設計與實現
測控技術(2018年9期)2018-11-25 07:44:58
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
基于QT的跨平臺輸電鐵塔監控終端軟件設計與實現
基于OPC跨平臺通信的電機監測與診斷系統
主站蜘蛛池模板: 好吊妞欧美视频免费| 全午夜免费一级毛片| 亚洲无码免费黄色网址| 手机成人午夜在线视频| 日韩精品毛片| 亚洲精品无码抽插日韩| 91青草视频| 亚洲六月丁香六月婷婷蜜芽| 成人年鲁鲁在线观看视频| 精品一区国产精品| 91欧美在线| 日韩亚洲综合在线| 成AV人片一区二区三区久久| 日韩大乳视频中文字幕| 欧美日韩专区| 亚洲视频免费在线看| 久996视频精品免费观看| 喷潮白浆直流在线播放| 欧美精品亚洲二区| 午夜激情福利视频| 亚洲国产欧洲精品路线久久| 亚洲无线视频| 亚洲色无码专线精品观看| 精品91视频| 特级毛片免费视频| 亚洲乱亚洲乱妇24p| 亚洲乱伦视频| 青青草国产一区二区三区| 美美女高清毛片视频免费观看| 2024av在线无码中文最新| 一级不卡毛片| 色综合久久88| 丁香综合在线| 国产一区二区三区免费| 欧美性爱精品一区二区三区| 久久夜夜视频| 亚洲成aⅴ人在线观看| 亚洲欧美另类视频| 久久久精品无码一区二区三区| 国产成人AV综合久久| 欧美一区福利| 欧美日韩动态图| 久久99久久无码毛片一区二区| 亚洲福利片无码最新在线播放| 久热99这里只有精品视频6| 久久青草免费91观看| 男人天堂亚洲天堂| 欧美国产中文| 成年片色大黄全免费网站久久| 成人欧美日韩| 91麻豆国产精品91久久久| 2021国产乱人伦在线播放| 中文毛片无遮挡播放免费| 91久久国产热精品免费| 亚洲人妖在线| 午夜一区二区三区| 毛片网站在线播放| 999精品视频在线| 国产视频 第一页| 五月激激激综合网色播免费| 广东一级毛片| 国产精品任我爽爆在线播放6080 | 在线观看亚洲天堂| 无码专区国产精品一区| 婷五月综合| 国产精品自拍露脸视频| 久久人体视频| 欧美国产三级| 国产美女无遮挡免费视频| 91丝袜美腿高跟国产极品老师| 一级不卡毛片| 国产清纯在线一区二区WWW| 国产一区成人| 亚洲欧美成人在线视频| 午夜精品久久久久久久无码软件 | 天堂网亚洲系列亚洲系列| 中文字幕在线免费看| 欧美午夜小视频| 99re免费视频| www.youjizz.com久久| 日韩一二三区视频精品| 青青操视频在线|