XQuery API for Java
જાવા માટે XQuery API (XQJ) એ W3C XQuery 1.0 સ્પષ્ટીકરણ માટે સામાન્ય જાવા API નો સંદર્ભ આપે છે. XQJ API જાવા પ્રોગ્રામરોને XML ડેટા સ્રોત સામે XQuery ચલાવવા માટે સક્ષમ કરે છે (દા. ત. એક XML ડેટાબેઝ) જ્યારે વિક્રેતા લોક ઇન ઘટાડે છે અથવા દૂર કરે છે. XQJ API જાવા વિકાસકર્તાઓને XQuery ડેટા મોડેલ માટે ઇન્ટરફેસ પ્રદાન કરે છે. તેની રચના જે. ડી. બી. સી. એ. પી. આઈ. જેવી જ છે જે ક્લાયન્ટ/સર્વરની લાગણી ધરાવે છે અને જેમ કે સર્વર-આધારિત એક્સ. એમ. એલ. ડેટાબેઝને સારી રીતે અને ક્લાયન્ટ-સાઇડ એક્સક્વેરી પ્રોસેસરોને ઓછી સારી રીતે ધિરાણ આપે છે, જો કે "જોડાણ" ભાગ સમગ્ર એ. પી. આઈ. નો ખૂબ જ નાનો ભાગ છે. XQJ API ના વપરાશકર્તાઓ જાવા મૂલ્યોને XQuery અભિવ્યક્તિઓ સાથે જોડી શકે છે, કોડ ઈન્જેક્શન હુમલાઓને અટકાવી શકે છે. ઉપરાંત, બહુવિધ XQuery અભિવ્યક્તિઓ અણુ વ્યવહારના ભાગ રૂપે ચલાવી શકાય છે. ઇતિહાસ અને અમલીકરણ જાવા માટે XQuery API જાવા કોમ્યુનિટી પ્રોસેસ ખાતે JSR 225 તરીકે વિકસાવવામાં આવી હતી. તેમાં ઓરેકલ, આઇબીએમ, બીઇએ સિસ્ટમ્સ, સોફ્ટવેર એજી, ઇન્ટેલ, નોકિયા અને ડેટાડાયરેક્ટ જેવા કેટલાક મોટા તકનીકી સમર્થકો હતા. જાવા સ્પષ્ટીકરણ માટે XQuery APIનું સંસ્કરણ 1 જૂન, 2009ના રોજ જાવા ડોક્સ, એક સંદર્ભ અમલીકરણ અને TCK (ટેકનોલોજી સુસંગતતા કીટ) સાથે બહાર પાડવામાં આવ્યું હતું, જે અમલીકરણ વિક્રેતાઓએ અનુસરવું આવશ્યક છે. XQJ વર્ગો જાવા પેકેજ javax.xml.xquery માં સમાયેલ છે XQJ નું સંસ્કરણ બનાવવા માટે કોઈ (દૃશ્યમાન) પ્રવૃત્તિ નથી જે XQuery 3 અથવા 3 માટે આધાર પૂરો પાડે છે, ઉદાહરણ તરીકે કાર્યો, એરે અથવા નકશા જેવા ડેટા મોડેલમાં ઉમેરાઓ માટે જાવા બંધન પ્રદાન કરીને. કાર્યાત્મકતા XQJ બહુવિધ અમલીકરણને અસ્તિત્વમાં રાખવા અને તે જ એપ્લિકેશન દ્વારા ઉપયોગમાં લેવાની મંજૂરી આપે છે. XQJ જોડાણો XQuery અભિવ્યક્તિઓ બનાવવા અને અમલમાં મૂકવાનું સમર્થન કરે છે. અભિવ્યક્તિઓ અપડેટ થઈ શકે છે અને તેમાં સંપૂર્ણ લખાણ શોધનો સમાવેશ થઈ શકે છે. XQJ નીચેના વર્ગોમાંથી એકનો ઉપયોગ કરીને XQuery અભિવ્યક્તિઓનું પ્રતિનિધિત્વ કરે છેઃ XQExpress-અભિવ્યક્તિ દર વખતે XQuery પ્રોસેસરને મોકલવામાં આવે છે. એક્સક્યુપીરેપર્ડ એક્સપ્રેશન-એક્સપ્રેશન કેશ કરેલું છે અને એક્ઝેક્યુશન પાથ પૂર્વ-નિર્ધારિત છે જે તેને કાર્યક્ષમ રીતે બહુવિધ વખત ચલાવવાની મંજૂરી આપે છે. XQuery સમીકરણો XDM વસ્તુઓનો પરિણામ ક્રમ આપે છે જે XQJ માં XQResultSequance ઈન્ટરફેસ દ્વારા રજૂ થાય છે. પ્રોગ્રામર પરિણામ ક્રમમાં વ્યક્તિગત એક્સ. ડી. એમ. વસ્તુઓ પર ચાલવા માટે એક્સ. ક્યુ. રિઝલ્ટસીક્વન્સનો ઉપયોગ કરી શકે છે. અનુક્રમમાં દરેક વસ્તુમાં તેની સાથે સંકળાયેલ એક્સ. ડી. એમ. પ્રકારની માહિતી હોય છે, જેમ કે તેનો નોડ પ્રકાર. , અથવા એક્સ. ડી. એમ. અણુ પ્રકાર જેમ કે, અથવા. XQJ માં XDM પ્રકારની માહિતી XQItemType ઈન્ટરફેસ દ્વારા મેળવી શકાય છે. ગેટબાઈટ () અને ગેટફ્લોટ () જેવી એક્સક્યૂઆઇટીએમ એક્સેસર પદ્ધતિઓ દ્વારા અણુ એક્સક્વેરી વસ્તુઓને સરળતાથી જાવા પ્રિમિટિવ્સમાં કાસ્ટ કરી શકાય છે. ઉપરાંત XQuery વસ્તુઓ અને શ્રેણીઓને ડી. ઓ. એમ., એસ. એ. એક્સ., એસ. ટી. એ. એક્સ. અને સામાન્ય આઈ. ઓ. અને વર્ગોમાં શ્રેણીબદ્ધ કરી શકાય છે. ઉદાહરણો મૂળભૂત ઉદાહરણ નીચેનું ઉદાહરણ XML ડેટાબેઝ સાથે જોડાણ બનાવવાનું, XQuery અભિવ્યક્તિ સબમિટ કરવાનું, પછી પરિણામોને જાવામાં પ્રક્રિયા કરવાનું સમજાવે છે. એકવાર તમામ પરિણામો પર પ્રક્રિયા થઈ જાય પછી, તેની સાથે સંકળાયેલા તમામ સંસાધનોને મુક્ત કરવા માટે જોડાણ બંધ કરવામાં આવે છે. //XML ડેટાબેઝ સાથે નવું જોડાણ બનાવો XQConnection કોન = vendorDataSource.getConnection ("માયયુઝર", "માયપાસવર્ડ"); XQExpress expr = conn.createExpression ();// ફરીથી વાપરી શકાય તેવું XQuery એક્સપ્રેશન ઓબ્જેક્ટ XQResultSequance પરિણામ = expr.executeQuery બનાવો ("fn માં $n માટેઃ સંગ્રહ ('સૂચિ')// વસ્તુ" + "રીટર્ન fn: ડેટા ($n/નામ)");// XQuery અભિવ્યક્તિ ચલાવો// પરિણામ ક્રમને પુનરાવર્તિત રીતે પ્રક્રિયા કરો જ્યારે (result.next ()) {// અનુક્રમમાં વર્તમાન વસ્તુને છાપો <ID5 ધારો કે જોડાણ પહેલેથી જ અસ્તિત્વમાં છેઃ XQExpress expr = conn.createExpression ();// ચલાવવા માટેની XQuery અભિવ્યક્તિ શબ્દમાળા Es = "ચલ $x ને xs તરીકે જાહેર કરોઃ બાહ્ય પૂર્ણાંક;" + "fn માં $n માટેઃ સંગ્રહ ('સૂચિ')// વસ્તુ" + "જ્યાં $n/કિંમત <= $x" + "રીટર્ન fn: ડેટા ($n/નામ)";// QName x expr.bindInt (નવું QName ("x"), 21, નલ) સાથે બાહ્ય ચલ સાથે મૂલ્ય (21) ને બાંધો;// XQuery અભિવ્યક્તિ XQResquance પરિણામ ચલાવો. આ નકશાના નિયમો જેએએક્સબીમાં જોવા મળતા નકશાના નિયમો સાથે ઘણી સામ્યતા ધરાવે છે. નીચેનું કોષ્ટક XQuery અભિવ્યક્તિઓમાં જાવા મૂલ્યોને બાહ્ય ચલ સાથે જોડતી વખતે મૂળભૂત મેપિંગ નિયમોને સમજાવે છે. જાણીતા અમલીકરણ મૂળ XML ડેટાબેઝ નીચે આપેલા મૂળ XML ડેટાબેઝની યાદી છે જે જાવા અમલીકરણ માટે XQuery API માટે જાણીતા છે. માર્કલોજિક એક્સિસ્ટ બેઝએક્સ સેદના ઓરેકલ એક્સડીબી ટેમિનો ટાઇગરલોજિક રીલેશ્નલ ડેટાબેસેસ ડેટાડાયરેક્ટ રીલેશ્નલ ડેટાબેઝ માટે એક્સક્યુજે એડેપ્ટર્સ પ્રદાન કરે છે, ફ્લાય પર એસક્યુએલમાં એક્સક્વેરી કોડનું ભાષાંતર કરીને, પછી એસક્યુએલ પરિણામ સેટને એક્સક્યુજે માટે વધુ પ્રક્રિયા કરવા માટે યોગ્ય ફોર્મેટમાં રૂપાંતરિત કરે છે. નીચેના કેટલાક જાણીતા અમલીકરણ છે. ઓરેકલ ડી. બી. (એક્સ. ડી. બી. નહીં) આઇ. બી. એમ. ડી. બી. 2 માઇક્રોસોફ્ટ એસ. ક્યુ. એલ. સર્વર સાયબેઝ એ. એસ. ઈ. ઇન્ફોર્મેક્સ માય. એસ. ક્યુ. એલ. પોસ્ટગ્રે. એસ. ક્યુ. એલ. નોન-ડેટાબેઝ અમલીકરણ નીચે આપેલા બિન-ડેટાબેઝ એક્સક્વાયરી પ્રોસેસરોની યાદી છે જે જાવા ઇન્ટરફેસ માટે એક્સક્વાયરી એપીઆઈ પ્રદાન કરે છે (સામાન્ય રીતે ફાઇલસ્ટોરમાં એક્સ. એમ. એલ. માંથી વિશ્લેષણ કરાયેલા દસ્તાવેજો સામે ક્વેરીને મંજૂરી આપે છે, અને મેમરીમાં ડીઓએમ અથવા સમાન વૃક્ષો તરીકે રાખવામાં આવે છે). સેક્સોન એક્સએસએલટી અને એક્સક્વેરી પ્રોસેસર ઝોર્બા એમએક્સક્વેરી ઓરેકલ એક્સક્વેરી પ્રોસેસર લાઇસન્સ સ્પષ્ટીકરણને "કૉપિરાઇટ © 2003,2006-2009 ઓરેકલ" તરીકે ચિહ્નિત કરવામાં આવ્યું છે. તમામ અધિકારો સુરક્ષિત છે. સ્પષ્ટીકરણમાં બે અલગ લાઇસન્સ છેઃ "સ્પષ્ટીકરણ લાઇસન્સ" અને "સંદર્ભ અમલીકરણ લાઇસન્સ". સ્પષ્ટીકરણ લાઇસન્સ સ્પષ્ટીકરણની મફત નકલ કરવાની મંજૂરી આપે છે જો કે કૉપિરાઇટ સૂચનાઓ જાળવી રાખવામાં આવે છે; તે સ્પષ્ટીકરણના અમલીકરણને બનાવવા અને વિતરિત કરવા માટે લાઇસન્સ પણ આપે છે જો કે તે સંપૂર્ણ સ્પષ્ટીકરણનો સંપૂર્ણ અમલ કરે છે, કે તે કોઈપણ ઇન્ટરફેસોને સંશોધિત અથવા વિસ્તૃત કરતું નથી, અને તે સુસંગતતા પરીક્ષણો પાસ કરે છે. આ જોગવાઈએ કેટલાક વિવાદો ઉભા કર્યા છે. પ્રથમ, તે સાર્વત્રિક રીતે સ્વીકારવામાં આવતું નથી કે પ્રકાશિત સ્પષ્ટીકરણનો અમલ કરવો એ એવી વસ્તુ છે જેના માટે લાયસન્સની જરૂર હોય (એટલે કે, લાયસન્સની ગેરહાજરીમાં કૉપિરાઇટ કાયદો આને મંજૂરી નહીં આપે). બીજું, વિસ્તરણ અને ફેરફારો કરવા પરના પ્રતિબંધને કારણે લાઇસન્સ ઓપન સોર્સ લાઇસન્સ તરીકે લાયકાત મેળવવા માટેના માપદંડને પૂર્ણ કરતું નથી (ઓપન સોર્સ વ્યાખ્યા જુઓ). આનાથી કેટલાક ઓપન સોર્સ ઉત્સાહીઓએ પડકાર ફેંક્યો છે કે શું XQJ અમલીકરણને ક્યારેય સાચો ઓપન સોર્સ ગણી શકાય. સંદર્ભ અમલીકરણ માટેનું લાઇસન્સ એકદમ પરંપરાગત બીએસડી-શૈલીનું ઓપન સોર્સ લાઇસન્સ છે. સંદર્ભો XQJ XQJ ટ્યુટોરિયલ બિલ્ડીંગ બ્રિજીસ ફોર જાવા થી XQuery, ચાર્લ્સ ફોસ્ટર માટે બાહ્ય લિંક્સ જાવાડોક. XML પ્રાગ 2012 (પ્રેઝી પ્રેઝન્ટેશન) XQuery, હંસ-જુર્ગેન રેનાઉનું જાવા એકીકરણ. XQJ સ્પ્રિંગ ઇન્ટિગ્રેશનનો ઉપયોગ કરીને બેલિસેજ 2010 ઓર્બીઓન ફોર્મ્સ XQuery સપોર્ટ XQS: સ્કેલા માટે XQuery (XQJની ટોચ પર બેસે છે) ઇન્ટેલીજે XQuery સપોર્ટ પ્લગઇન જાવા API જાવા સ્પષ્ટીકરણ XML ડેટાને XML ડેટાબેઝ API માટે જાવા API સુધી પહોંચવાની વિનંતી કરે છે