ThepaperisorganizedasfollowsInthenextsectionwegiveanintroductiontotheprogrammingwithXMLobjectsInSection3wedescribetheconnectionbetweenXMLobjectsandregularhedgeexpressionsandintroducesubtypingInSection ID: 856482
Download Pdf The PPT/PDF document "XMLOBjEctsprojectXOBELK02overcomesthedif..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
1 XMLOBjEctsproject(XOBE)[LK02]overcomesth
XMLOBjEctsproject(XOBE)[LK02]overcomesthedifferencesbetweenXMLstructuresasstringsandcorrespondingobjectsbyanextensionoftheobjectorientedpro-gramminglanguageJava.Inotherwords,whenusingXMLsyntaxinXOBE,italwaysdenotesXMLobjects,i.e.generatingandanalyzingXMLisdoneconceptuallyonlyonthebasisofobjects.ThereforeXOBEintroducesaclassforeveryelementtypeofausedschema,butdoesnotgeneratetheseclassesexplicitlyasJavaclasses.Insteadofthattheycanbeusedlikebuilt-indatatypes.Theyarede®nedinsuchawaythatthegenerationofXMLobjectsisdoneinasyntaxorientedmannerallowingtocheckmostportionsofthepropertyvalidity,whichwecallstaticvalidity,ofallgeneratedXMLstructures,i.e.XMLobjects,atcompiletime.ThepresentpaperfocusesontheXOBEtypesystem.ThemainproblemoftheXOBEtypesystemisindecidingifanXMLobjectisallowedatthepositionitappears.Thisdecisionproblemforsubtypingisalgorithmicallydif®cult.WeintroduceanalgorithmwhichchecksthesubtyperelationshipofXMLobjects.ThealgorithmcanbeviewedasanimprovementofAntimirov'salgorithmsforth
2 edecisionproblemofregularexpressions.Eve
edecisionproblemofregularexpressions.EvenonXOBEapplicationsthatinvolvequitelargetypes,suchasthecompleteschemaofXHTML,ouralgorithmcompletesinreasonabletime.OuralgorithmenablesXOBEtoguaranteestaticvalidityatcompiletimewhichimpliesthefollowingadvantages:1.XOBEprogramsaremoreef®cientbecauseweavoidexpensiveruntimecheckstoguaranteevalidity.2.XOBEprogramsaremorereliablebecausewecanomittheprogrammingofrecov-eryprocedureswhichareneededifruntimechecksfail.3.XOBEenablesafasterdevelopmentofimplementations,becausewecanavoidex-tensivetestruns,whicharenecessarytomakethevalidityofthegeneratedXMLdocumentsfeasible.4.XOBEimprovesthemaintenanceofwebservicesandwebapplicationsbecauseitleadstoasimplersourcecodestructure. Thepaperisorganizedasfollows.Inthenextsection,wegiveanintroductiontotheprogrammingwithXMLobjects.InSection3,wedescribetheconnectionbetweenXMLobjectsandregularhedgeexpressionsandintroducesubtyping.InSection4,wepresentoursubtypingalgorithm,themainpartofthepaper.Section5explainsourimplementa
3 tiontechniquesandSection6discussessomepe
tiontechniquesandSection6discussessomeperformancemeasurements.WesurveyrelatedworkinSection7,i.e.wesummarizethestateoftheartofprogrammingwebapplicationsandwebservices.Section8concludesthepaperandgivesanoutlookonfuturework. XMLobjectsinXOBE.ThereforeXMLobjectsare®rst-classdatavaluesthatmaybepassedandstoredlikeanyotherdatavalues.ThegivenschemaisusedtotypedifferentXMLobjects.XOBEprogramsimportschemade®nitions,declaredbyanimportstatement CartdepictedinFigure1.Theclasshasamember®eld intarticleNr) request /account done /shoppingCart /shopResponse ;returnresponse; XOBEincorporatesXPath[W3C99]foraccessingXMLobjectsinXOBEprograms.XPathprovidesamechanismtoexpresspathexpressionsextractingsomenodesinanXMLstructure.Apathexpressioningeneralconsistsofa processRequestprocessinganincom-ingshoprequest.Therequestispassedtotheaddressedcart,whichreturnstheresultingresponse.NotethataglobalvariableallCartsisusedwhichgivesaccesstoallregis-teredCart-objects.1shopResponseprocessRequest(shopRequestrq) //proc
4 essRequestListing2:MethodprocessRequestF
essRequestListing2:MethodprocessRequestFromtheincomingrequestrqthemethodextractstheshoppingcartandassignsittovariablesc.Afterwardsthetargetedcartischosenfromthesetofavailablecartsall-Carts.Anestedconditionalstatementdifferentiatesthethreepossiblerequestsandcallsthesuitablemethods.Therequiredparametersaregatheredfromtherequest.InthemethodprocessRequestweuseXPathconstructsforaccessingXMLobjectcontent.Usingthepathnotations(4-8)itispossibletonavigatethroughXMLobjects.BecausetheXPathnodetestreturnsalistofresultingXMLobjects,wehavetoaccessthe®rstitemofthesequencewiththeXPathintegerpredicate(4-7).WedeterminethesizeofsuchalistusingmethodgetLength(6-8).TheimpactofourapproachonthehostlanguageJavaisanXMLconsistentextensionofthetypesystem.BecauseoftheoutstandingroleofXMLinthewebapplicationandwebservicesprogrammingworld,andmaybethewholesoftwaredevelopmentworldinthefuture,thisseemstobeaconsequentstep.Webelievethatthetrade-offsbetweentheextensionofanexistingprogramminglanguageononehandandtheapproa
5 chofde®ninganewprogramminglanguagearoun
chofde®ninganewprogramminglanguagearoundXMLontheotherareminimal.Insteadthebene®tsofusingalreadydevelopedcodearesigni®cant.3BasicDe®nitionsAsseeninthelastsectionXOBEallowsXMLsyntaxinexpressions,assignmentsandmethodparameters.DuringcompilationtheXOBEsystemveri®esthecorrectnessofthe assignmentintwosteps.Firstitdeterminesthetypesoftherightandlefthandsidesusingtypeinference.Secondly,thesubtyperelationshipoftheinferredtypesischeckedbyasubtypingalgorithm.InXOBEweformalizeandrepresenttypesasregularhedgeexpressionsrepresentingreg-ularhedgelanguages[BKMW01].Consequentlyaschemaisformalizedandrepresentedinternallybyaregularhedgegrammar. withaset with Anon-nullableexpressionisaregularhedgeexpressionwhichdoesnotcontaintheemptyhedge.Wede®netheregularhedgeexpressions,referredtoinshortasregularexpressions,similartothenotationusedin[W3C01a].De®nition2(regularhedgeexpression)Givenasetofterminalsymbols andaset ofnonterminalsymbols,theset theemptyset, thesimpletypes, thecomplextypes, theelements,
6 theKleenestaroperation.forall , , , . As
theKleenestaroperation.forall , , , . AsanexampleweformalizetheschemaSIF(AppendixA)introducedinthelastsectionasaregularhedgegrammaras with: , shopRequest shopResponse shoppingCart account add 1Thetwoconstraintsensureregularity. get request items article description andthesetofcomplextypes havetobedisjunct.Inthispaperweusedifferentfontstoseparateelementnamesfromcomplextypenames.Mixedcontentisformalizedasasimpletypestring.Wedealwithattributessimilartoelements,butwithaspeciallymarkedname,rewritingthemwithregularhedgeconstructors.Any-typesarerewrittentoaregularunionofalldeclaredelementtypesaswell.AsmentionedaboveXOBEinfersatcompiletimebothtypesoftherightandlefthandsidesofanassignment.Becauseallvariableshavetobedeclared,thetypeinferenceofvariablesissimple.InourexampleofListing1avariable )isusedasconcatenationoperationinregularexpression,weusethesemicolon( exampleXOBEhastochecktheso-called shoppingCart account integer where standsforthesubtyperelationship.Note,thatthename ontherighthandsid
7 estandsforthecomplextype .ThenameshopRes
estandsforthecomplextype .ThenameshopResponseonthelefthandsideisanelementname. leadingNames.Theoperationleadingnamesisde®nedasfollows.De®nition3(leadingnames)Givenaregularexpression theoperation returnsthesetofallleadingterminalsymbols: with , , Itisde®nedrecursivelyandreturnstheleadingsimpletypenamesandelementnames.Ifacomplextypenameoccurstheoperationusestheproductionde®nition.Foraregularconcatenationtheoperationneedsthe predicatetochecktheemptyhedgeinclusion. Foreachdeterminednamethealgorithmtriestoreducebothsidesoftheinequalitybythisname.Theresultingreducedinequalitiesaresimplerthanthestartinginequalityinthemajorityofcasesandcanbecheckedbyarecursiveapplicationofthealgorithm.Thealgorithmtracksalreadytreatedinequalitiesinasetofinequalities,whichisemptyinthebeginning.Thisensuresterminationifweencounterthesameinequalitylateron.Wedonotprovesubtypingdirectly,insteadwecalculatethesetofallpossiblereducedinequalitiesofthegiveninequality.Ifwereceiveatriviallyinconsistentinequalityweconc
8 ludethatthegiveninequalityisincorrect.In
ludethatthegiveninequalityisincorrect.Inallothercasesweassumethatthegiveninequalityholds.Thisisastandardproceedinginsubtypingalgorithmsofrecursivetypes.Therearetwodifferentresultsofourrecursivealgorithm.Firstthealgorithmrespondsfalseiftheinequalityinquestionistriviallyinconsistentusingthe De®nition4(subtypingalgorithm)Givenaset isde®nedbythefollowingpseudocode:boolprove(r if((isNullable(r)&&ÄisNullable(s)) )returnfalse;elsif((r s) partialDerivatives(n,r s);A:=A r s ) ) pd)ok:=ok&&(prove( ,A) prove( ,A));returnok; Antimirovintroducesso-calledpartialderivativesofregularexpressionstoexpressre-ducedregularexpressions.Apartialderivativereducesaregularexpressionbyagiventypenameorelementname.Inthehedgegrammarsettingwemodifypartialderivativesconcerningtypenamesandelementnames.Forexample,ifwehavetheregularexpres-sion integer request t request integer .Theresultisasetingeneral,becausewecangetmultiplederivativesforagivenregularexpression.Theelementsofthesetarepairscorrespondingtothetwodimens
9 ionsinaregularhedge,theparent-childdimen
ionsinaregularhedge,theparent-childdimensionandthesiblingdimension.Intheexamplethe®rstcomponentofthepairisthetypeofthecontentofelementaccount.Thesecondistheregularexpressionreducedbyelementaccount.AdditionallyAntimirovintroducesso-calledpartialderivativesofregularinequalitiestoexpressreducedinequalities.Inthehedgegrammarcasethesebecomemorecomplicated.Becausethepartialderivativesofregularexpressionsarepairswehavetoperformaset- Theorem5(subsetrelationonCartesianproduct)Givensomesets , ,..., ,..., thefollowingholds: .Aswecansee,thistheoremreducesthesubsetrelationonCartesianproductstoasubsetrelationonsets.Becausetypescanbeinterpretedassetsofvalues,wecanwritethefollowingrelationemergingafterreducingtheleftandrighthandsidesofaninequalitybytheleadingname with .Tothisrelationwecanapplythegiventheoremandreceive and and .Inthede®nitionofthepartialderivativesofregularinequalitieswecollectthedisjunctionsseparatelyinaset.Additionallywerewritetherelationusingtheregularexpressionop-eratorsregular
10 union insteadofsubsetonsets .De®nition6
union insteadofsubsetonsets .De®nition6(partialderivativesofregularinequality)Givenaregularinequality with andaterminalsymbol and proverecursively.Intheremainingsectionweapplyoursubtypingalgorithmtoasmallexample.Con-sidertheexamplewherewehavethetwotypes integer inthefollowing,forwhichwestartthesubtypingalgorithmwithanemptysetofinequalities .Inthe®rstrecursionthealgorithmcalculatesthesetofleadingnames description .Additionallytheset ofalreadyprocessedinequalitiesisenlargedto .Weget string andDe®nition6leadsto string string (1) account integer account integer and account integer forfurtherdescription.Forprovinginequality8thealgorithmcalculatesthesetsofleadingnames account .Againthesetofinequalitiesisenlargedto .Thefollowingpartialderivativesaregeneratedduringthealgorithm: integer integer (9) (10) integer (11) .(12)Itiseasytosee,thatinequality9holdsandinequalities10and11evaluatetofalse.Thelastinequality12istrue,becauseitisalreadyinoursetofalreadyprocessedinequalities 5ImplementationI
11 ssuesTheprevioussectionspresentedtherepr
ssuesTheprevioussectionspresentedtherepresentationoftypesinXOBE.WenowdescribeourXOBEimplementationarchitecture[Kra02],whichisshowninFigure2.Althoughit Java compiler Java transformation Type checking XOBE Java parser Java with DOMXOBE preprocessorXOBE programXML schemaFigure2:XOBEJavaArchitectureispossibletointegratethefunctionalityofXOBEintotheJavacompiler,wehavechosentoimplementXOBEasaJavapreprocessor.TheXOBEpreprocessorconsistsofthefollowingthreecomponents:1.TheXOBEparser,2.thetypecheckinganalysisand3.thetransformationtostandardJavacode.TheXOBEparserreadstheXOBEprogramandconvertstheXMLportionsofthepro-gramtoaninternalrepresentation.TheparserincludesinadditiontoastandardJavaparser aschemaparserandaslightlymodi®edXMLparser.TheschemaparserisnecessarytoscantheschemasimportedbytheXOBEprogram.TheXMLparserisneededtorecog-nizetheXMLconstructorsdistributedovertheprogramsourcecode.BecausetheXMLconstructorscanincludeXMLvariableswehavetomodifythestandardXMLparser.Inourimplementationweutilizet
12 heJavacompilercompilerJavaCC[Web02]togen
heJavacompilercompilerJavaCC[Web02]togeneratetheXOBEparser.AdditionallyweusetheXMLparserXerces[The01]torecognizetheusedschemas.TheinternalrepresentationoftheprocessedXOBEprogramisdonewiththeJavatreebuilderJTB[TWP00].Inthetypeanalysisphasethepreprocessordetermineswhethertheparsedprogramiswell-typedornot.Well-typedinXOBEmeansthattheprocessedXMLobjectsarevalidaccordingtothedeclaredschemas.At®rstthetypeanalysisphasevalidatestheimportedschemas.Afterwards,thetypecheckofJavaexpressionsusingXMLobjects,likeassign-mentsormethodcalls,isperformedaccordingtothedescriptionoftheprevioussection.ThetypeinferenceofXMLconstructorsandXMLvariablesisfollowedbysubtypingproofstoverifytheexpressions.BecausethetypesystemofstandardXMLisstrictandcanbeformalizedbyrestrictedregularhedgeexpressions,wecanusetheregularhedgegrammarbasedalgorithmtodecidetheequivalenceofregularexpressionsforthatpurpose.XMLSchemaweakensthestrictnessbyintroducingtypeextensionandtyperestriction,whichrequiresamoresophisticatedtypeinferenc
13 estrategy.Thedetaileddescriptionofthisex
estrategy.Thedetaileddescriptionofthisextendedalgorithmwillbeintroducedinthesis[Kem03].ThelasttaskthepreprocessorperformsisthetransformationoftheXOBEprogramintoJavasourcecode,whichisacceptedbythestandardJavacompiler.ForthisresultingJavacodeseveralimplementationalternativesexist,dependingontheXMLrepresentation.WechosethestandardrepresentationoftheDocumentObjectModel,orDOM[W3C98a],recommendedbytheW3Consortium.ThetransformationreplacestheXMLconstructorsandXPathexpressionsoftheXOBEprogramwithsuitableDOMcode.Theexacttrans-formationruleswillbepresentedin[Kem03].PleasenotethateventhoughDOMisanuntypedXMLimplementationnotguaranteeingstaticvalidity,thetransformedXMLob-jectsintheXOBEprogramarevalid.Thisholdsbecauseourtypecheckingalgorithmguaranteesthisproperty.InourimplementationthetransformationisperformedontheinternalJTBrepresentation,wherewereplacethesubtreesrepresentingXOBEconstructsbynewlycreatedsubtrees,whichrepresentthesuitableDOMcode. isasmallprogramwhichgeneratesXHTMLwebpagesforanestat
14 ebroker.RealestatesarestoredinanXML®lef
ebroker.RealestatesarestoredinanXML®lefollowingasmallnon-standardschema.These®lesaretakenasinputandconvertedintofree-standingXHTMLdocuments.Loginisaservletwhichrealizestheloginforanacademicexerciseadministrationsys-tem.Itrequestsloginandpasswordandpassestheinputtothesystem.MobileArchiveisaservlet-basedwebapplicationrealizingaWML-connectiontoamed-icalmediaarchive.Anavigationthroughthearchivestructuresimilartoa®lesys-temtreeispossible,inadditiontoamediasearch.Somemediaobjectsofspeci®cformatscanbeviewedaswell.The®rstapplicationiswrittenasseveralsimpleiterativemethods,performingastraight-forwardtraversaloftheinputtree.ThesecondapplicationcommunicatesoverJDBCwithanInformixdatabasemanagementsystem.TheclientinputispassedtothedatabasetherespondofwhichiswrappedintoXHTMLandsenttotheclient.ThelastapplicationisaWMLconnectiontoamediaarchive.ThemediaarchiveisaccessedthroughagivenAPI.Theapplicationmemorizesthepositionoftheactualclientinthestructureofthearchive.WeuseXHTML(morepreciseXHTML-trans
15 itional)asschemainprogramsEstateandLogin
itional)asschemainprogramsEstateandLoginandWMLinMobileArchive.ThelasttwoapplicationshavebeenmigratedfromastandardJavaservletimplementation.Manysillymistakesinthenon-XOBEimplementa-tionhavebeenfounddoingthistask.Despitecarefultestrunsofthepreviousimplemen-tation,manymistakeshavebeenoverlooked. linesofcode compiletime(s) executiontime(s)Application XOBE schema total subtyping standard XOBE Estate 158 1231 2.16 0.05 - 0.9 Login 195 1196 4.61 0.07 0.01 0.01 MobileArchive 1045 355 4.49 0.16 0.03 0.04InthetablethenumberoflinesofthewholeXOBEprogramsandthenumberoflinesoftheimportedschemasispresentedinthe®rsttwocolumns.InthesecondgroupofcolumnsthetableshowsthetimespentforprecompilingtheXOBEprogram.Itincludestheparsing,thetypeinference,thesubtypingalgorithmandthecodetransformationintostandardJava,asdescribedinSection5.Thetimespentduringthesubtypingalgorithmisshownincolumnªsubtypingº.ThethirdcolumngroupofthetablegivesanimpressionofhowtheperformanceoftheservletsisaffectedbytheDOM-basedimpleme
16 ntation.Thecolumnªstandardºshowsthetim
ntation.Thecolumnªstandardºshowsthetimewhichhaselapsedevaluatingthestandardnon-XOBEservletimplementation.ThelastcolumngivestherunningtimeoftheXOBEprogram.Asindicatedbythetableourtypecheckingalgorithmrunsatacceptablespeedfortheseapplications.EventheapplicationswhichusequitelargetypesfromtheXHTMLorWMLschemaarecompiledinencouragingtime.TheexecutionspeedofourDOM-basedservletimplementationsisslowerthanthestandardservletsasexpectedbutstillinaconvenientrange. 7RelatedWork CompiletimevalidationWeareawareofonlythreeapproacheswhicharereallycomparabletoXOBE.TheXDucelanguage[HVP00]isafunctionallanguagedevelopedasanXMLprocessinglanguage.Itintroducessocalledregularexpressiontypesthevaluesofwhicharecompa-rabletoourXMLobjects.Elementsarecreatedbyspeci®cconstructorsandthecontentcanbeaccessedthroughpatternmatching.XDucesupportstypeinferenceforpatternsandvariablesandperformsasubtypinganalysistoensurevalidityofregularexpressiontypeinstancesatcompiletime.BigWig[BMS01]isaprogramminglanguagefordevelopin
17 ginteractivewebservices.ItcompilesBigWig
ginteractivewebservices.ItcompilesBigWigsourcecodeintoacombinationofstandardwebtechnologies,likeHTML,CGI,applets,andJavaScript.TypedXMLdocumenttemplateswithgapsareintroduced.InordertogenerateXMLdocumentsdynamically,gapscanbesubstitutedatruntimebyothertemplatesorstrings.ForalltemplatesBigWigvalidatesalldynamicallycomputeddocumentsaccordingtoagivenDTD.Thisisdonebytwodata¯owanalysesconstructingagraphwhichsummarizesallpossibledocuments.Thisgraphisanalyzedtodeterminevalidityofthosedocuments.IncomparisontoourapproachtemplatescanbeseenasmethodsreturningXMLobjects.Theargumentsofthemethodscorrespondtothegapsofthetemplates.Anotherchallengingapproachispresentedbythelanguagespeci®cationofXL[FGK02].XLisanXMLprogramminglanguagefortheimplementationofwebservices.Incontrasttoourapproach,itisastand-aloneprogramminglanguage,i.e.itisnotanextensionofanexistinglanguagelikeJava.Itprovideshigh-levelanddeclarativeconstructsadopt-ingXQuery.AdditionallyimperativelanguagestatementsareintroducedmakingXLacombin
18 ationofanimperativeanddeclarativeprogram
ationofanimperativeanddeclarativeprogramminglanguage.AdditionallyitisworthnoticingthattheupcomingstandardofanXMLquerylanguageXQuery[W3C02]hastosupportstaticvalidityaswell. Evaluation Literaturverzeichnis[ABS00]SergeAbiteboul,PeterBuneman,andDanSuciu. http://www.rpbourret.com/xml/XMLDataBinding.htm,28.July2002.[Exo01]ExoLabGroup.Castor.ExoLabGroup,http://castor.exolab.org/,11De-cember2001.[FGK02]DanielaFlorescu,AndreasGrÈunhagen,andDonaldKossmann.XL:AnXMLProgram-mingLanguageforWebServiceSpeci®cationandComposition.InProceedingsof InternationalWorldWideWebConference(WWW2002),May7-11,Honolulu,Hawaii,USA http://www.jdom.org/docs/faq.html.[Kem03]MartinKempa.Schema-abhÈangigeProgrammierungvonXML-basiertenWeb-Anwendungen.PhDthesis,InstitutfÈurInformationssysteme,UniversitÈatzuLÈubeck,2003.toappear,ingerman.[KL01]MartinKempaandVolkerLinnemann.V-DOMandP-XML±TowardsAValidPro-grammingOfXML-basedApplications.InAkmalB.ChaudhriandAwaisRashid,ed-itors,OOPSLA'01WorkshoponObjects,XMLandDatabase
19 s,TambaBay,Florida,USA,October2001.[KL02
s,TambaBay,Florida,USA,October2001.[KL02]MartinKempaandVolkerLinnemann.OnXMLObjects.InInformalProceedingsoftheWorkshoponProgrammingLanguageTechnologiesforXML(PLAN-X2002),PLI2002,Pittsburgh,USA,pages44±54,3.-8.October2002.[Kra02]JensKramer.ErzeugunggarantiertgÈultigerServer-SeitenfÈurDokumentederExtensibleMarkupLanguageXML.Master'sthesis,InstitutfÈurInformationssysteme,UniversitÈatzuLÈubeck,2002.ingerman.[Lin81]VolkerLinnemann.Context-freeGrammarsandDerivationTreesinAlgol68.InPro-ceedingsInternationalConferenceonALGOL68,Amsterdam,pages167±182,1981.[LK02]VolkerLinnemannandMartinKempa.SprachenundWerkzeugezurGenerierungvonHTML-undXML-Dokumenten.InformatikSpektrum,25(5):349±358,2002.ingerman.[Mic01]MicrosoftCorporation..NETFrameworkDeveloper'sGuide.webdocument,http://msdn.microsoft.com/library/default.asp,2001.[Net97]NetscapeCommunicationsCorporation.JavaScript1.1LanguageSpeci®cation.http://www.netscape.com/eng/javascript/index.html,1997.[Ora01]OracleCorporation.Oracle9i,Applicat
20 ionDeveloper'sGuide-XML,Release1(9.0.1).
ionDeveloper'sGuide-XML,Release1(9.0.1).RedwoodCity,CA94065,USA,June2001.ShelleyHiggins,PartNumberA88894-01.[PLC99]EduardoPelegrÂi-LlopartandLarryCable.JavaServerPagesSpeci®cation,Version1.1.JavaSoftware,SunMicrosystems,http://java.sun.com/products/jsp/download.html,30.November1999.[Sun01]SunMicrosystems,Inc.TheJavaArchitectureforXMLBinding,UserGuide.http://www.sun.com,May2001.[The01]TheApacheXMLProject.XercesJavaParser.http://xml.apache.org/xerces-j/index.html,15.November2001.Version1.4.4.[TWP00]KevinTao,WanjunWang,andDr.JensPalsberg.JavaTreeBuilderJTB.http://www.cs.purdue.edu/jtb/,15.May2000.Version1.2.2.[W3C98a]W3Consortium.DocumentObjectModel(DOM)Level1Speci®cation,Version1.0.Recommendation,http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/,1.October1998. [W3C98b]W3Consortium.ExtensibleMarkupLanguage(XML)1.0.Recommendation, JavaServletsbyExample.ManningPublicationsCo.,Greenwich,1999.[WS92]L.WallandR.L.Schwartz.ProgrammingPerl.O'Reilly&Associates,Inc.,Sebastipol,California,199