亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Java解析XML的一種數(shù)據(jù)綁定技術(shù)

        2012-01-15 06:02:48劉平
        電子設(shè)計工程 2012年15期
        關(guān)鍵詞:跨平臺代碼可視化

        劉平

        (西安財經(jīng)學(xué)院 信息與教育技術(shù)中心,陜西 西安 710061)

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

        1 創(chuàng)建圖形化的XSM文件

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

        2 創(chuàng)建XSD文件

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

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

        下一步根據(jù)XMLStudents.XSD文件的內(nèi)容,創(chuàng)建相應(yīng)的Java類[4]:XmlStudents.Java、XMLStudent.java 和 XmlStudentType.java文件,實現(xiàn)解析功能主要代碼分別如下:

        1)XmlStudents.Java

        該文件中主要創(chuàng)建對整個XML文件的元素節(jié)點操作的類,以及操作每個元素節(jié)點的增刪方法和讀存節(jié)點數(shù)據(jù)值的方法,需要引進(jìn)的類如下:

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

        /********創(chuàng)建XmlStudents類主要代碼***********/

        public class XmlStudents implements java.io.Serializable{

        private java.util.Vector_XMLStudentList;

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

        //--添加節(jié)點方法

        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();

        }

        //--獲取節(jié)點方法

        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);

        }

        下面是該類實現(xiàn)的一組節(jié)點存取數(shù)據(jù)、刪除數(shù)據(jù)和驗證點數(shù)據(jù)的方法,將整個XML文件轉(zhuǎn)化成要解析的對象,從中讀取各節(jié)點[5]的數(shù)據(jù),對XML文件進(jìn)行讀寫操作(省略方法內(nèi)容):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

        該文件主要創(chuàng)建針對每一個XMLStudent節(jié)點進(jìn)行具體操作的類。需要引進(jìn)的類如下:

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

        /*******創(chuàng)建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;

        }

        /*********將節(jié)點對象寫入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文件中讀取節(jié)點對象************/

        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

        該文件主要創(chuàng)建對每個XmlStudent節(jié)點的子節(jié)點的數(shù)據(jù)解析類,需要引進(jìn)的類如下:

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

        /**********創(chuàng)建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;

        //--構(gòu)造方法

        public XmlStudentType() {

        super();

        }

        public void deleteID()

        {

        this._has_ID=false;

        }//--void deleteID()

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

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

        //--驗證合法性

        public boolean isValid()

        {

        try{

        validate();

        }

        catch (ValidationException vex) {

        return false;

        }

        return true;

        }

        //寫數(shù)據(jù)

        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);

        }

        //--讀數(shù)據(jù)

        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 創(chuàng)建可視化界面測試程序

        創(chuàng)建可視化界面類,如圖2所示,將有關(guān)學(xué)生信息輸入該界面,然后提交給上面有關(guān)的類,即可實現(xiàn)測試。

        5 結(jié)束語

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

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

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

        [3]楊少波.J2EE Web核心技術(shù)-XHTML與XML應(yīng)用開發(fā)[M].北京:清華大學(xué)出版社,2011.

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

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

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

        猜你喜歡
        跨平臺代碼可視化
        基于CiteSpace的足三里穴研究可視化分析
        基于Power BI的油田注水運(yùn)行動態(tài)分析與可視化展示
        云南化工(2021年8期)2021-12-21 06:37:54
        基于CGAL和OpenGL的海底地形三維可視化
        “融評”:黨媒評論的可視化創(chuàng)新
        傳媒評論(2019年4期)2019-07-13 05:49:14
        跨平臺APEX接口組件的設(shè)計與實現(xiàn)
        創(chuàng)世代碼
        動漫星空(2018年11期)2018-10-26 02:24:02
        創(chuàng)世代碼
        動漫星空(2018年2期)2018-10-26 02:11:00
        創(chuàng)世代碼
        動漫星空(2018年9期)2018-10-26 01:16:48
        創(chuàng)世代碼
        動漫星空(2018年5期)2018-10-26 01:15:02
        基于QT的跨平臺輸電鐵塔監(jiān)控終端軟件設(shè)計與實現(xiàn)
        国产免费一区二区三区最新不卡| 国产传媒精品成人自拍| 麻婆视频在线免费观看| av在线免费观看网站免费| 国产激情久久久久久熟女老人| 朋友的丰满人妻中文字幕| 青娱乐极品视觉盛宴国产视频| 巨胸喷奶水www视频网站| 三级在线看中文字幕完整版| 国产精品后入内射日本在线观看| 日韩欧美第一页| 国产v综合v亚洲欧美大天堂 | 亚洲va无码手机在线电影| 中文亚洲成a人片在线观看| 亚洲av中文无码字幕色三| 在线视频你懂的国产福利| 久久精品国产精品亚洲婷婷| 女优免费中文字幕在线| 国产熟妇一区二区三区网站| 日本本土精品午夜视频| 蜜臀一区二区三区精品| 好紧好爽免费午夜视频| 黄瓜视频在线观看| 最好看的最新高清中文视频| 国产av一区网址大全| av福利资源在线观看| 日本一区二区三区经典视频| 狠狠色噜噜狠狠狠狠97首创麻豆| 亚洲va国产va天堂va久久| 欧美日韩一卡2卡三卡4卡 乱码欧美孕交| 精品国产群3p在线观看| 国产无遮挡又黄又爽无VIP| 在线观看播放免费视频| 国产手机在线观看一区二区三区| 成人无码av一区二区| 国产成人综合色在线观看网站| 国产午夜久久久婷婷| 91久久精品一二三区蜜桃| 国产爽快片一区二区三区| 亚洲 欧美 综合 在线 精品| 国产成熟人妻换╳╳╳╳|