XQuery API for Java
ಜಾವಾಗಾಗಿ (XQJ) XQuery API ಯು W3C XQuery 1.0 ವಿವರಣೆಗಾಗಿ ಸಾಮಾನ್ಯ ಜಾವಾ API ಅನ್ನು ಸೂಚಿಸುತ್ತದೆ. XQJ API ಜಾವಾ ಪ್ರೋಗ್ರಾಮರ್ಗಳಿಗೆ XML ದತ್ತಾಂಶ ಮೂಲದ ವಿರುದ್ಧ XQuery ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ (ಉದಾಹರಣೆಗೆ. ಒಂದು XML ದತ್ತಸಂಚಯ) ಮಾರಾಟಗಾರರ ಲಾಕ್ ಇನ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡುವಾಗ ಅಥವಾ ತೆಗೆದುಹಾಕುವಾಗ. XQJ API ಜಾವಾ ಅಭಿವರ್ಧಕರಿಗೆ XQuery ದತ್ತಾಂಶ ಮಾದರಿಗೆ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ. ಇದರ ವಿನ್ಯಾಸವು ಕ್ಲೈಂಟ್/ಸರ್ವರ್ ಭಾವನೆಯನ್ನು ಹೊಂದಿರುವ ಜೆಡಿಬಿಸಿ ಎಪಿಐಗೆ ಹೋಲುತ್ತದೆ ಮತ್ತು ಇದು ಸರ್ವರ್-ಆಧಾರಿತ ಎಕ್ಸ್ಎಂಎಲ್ ಡೇಟಾಬೇಸ್ಗಳಿಗೆ ಚೆನ್ನಾಗಿ ಸಾಲ ನೀಡುತ್ತದೆ ಮತ್ತು ಕ್ಲೈಂಟ್-ಸೈಡ್ ಎಕ್ಸ್ ಕ್ವೆರಿ ಪ್ರೊಸೆಸರ್ಗಳಿಗೆ ಕಡಿಮೆ ಸಾಲ ನೀಡುತ್ತದೆ, ಆದಾಗ್ಯೂ "ಸಂಪರ್ಕ" ಭಾಗವು ಇಡೀ ಎಪಿಐನ ಬಹಳ ಸಣ್ಣ ಭಾಗವಾಗಿದೆ. XQJ API ಯ ಬಳಕೆದಾರರು ಜಾವಾ ಮೌಲ್ಯಗಳನ್ನು XQuery ಅಭಿವ್ಯಕ್ತಿಗಳಿಗೆ ಬಂಧಿಸಬಹುದು, ಕೋಡ್ ಇಂಜೆಕ್ಷನ್ ದಾಳಿಯನ್ನು ತಡೆಯಬಹುದು. ಅಲ್ಲದೆ, ಪರಮಾಣು ವಹಿವಾಟಿನ ಭಾಗವಾಗಿ ಅನೇಕ XQuery ಅಭಿವ್ಯಕ್ತಿಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು. ಇತಿಹಾಸ ಮತ್ತು ಅನುಷ್ಠಾನ ಜಾವಾದ XQuery API ಅನ್ನು ಜಾವಾ ಸಮುದಾಯ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ JSR 225 ಎಂದು ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಯಿತು. ಇದು ಒರಾಕಲ್, ಐಬಿಎಂ, ಬಿಇಎ ಸಿಸ್ಟಮ್ಸ್, ಸಾಫ್ಟ್ವೇರ್ ಎಜಿ, ಇಂಟೆಲ್, ನೋಕಿಯಾ ಮತ್ತು ಡಾಟಡೈರೆಕ್ಟ್ನಂತಹ ಕೆಲವು ದೊಡ್ಡ ತಂತ್ರಜ್ಞಾನ ಬೆಂಬಲಿಗರನ್ನು ಹೊಂದಿತ್ತು. ಜಾವಾ ನಿರ್ದಿಷ್ಟತೆಗಾಗಿ XQuery API ನ ಆವೃತ್ತಿ 1 ಅನ್ನು ಜೂನ್ 24,2009 ರಂದು ಜಾವಾ ಡಾಕ್ಸ್, ಒಂದು ಉಲ್ಲೇಖ ಅನುಷ್ಠಾನ ಮತ್ತು TCK (ತಂತ್ರಜ್ಞಾನ ಹೊಂದಾಣಿಕೆ ಕಿಟ್) ಜೊತೆಗೆ ಬಿಡುಗಡೆ ಮಾಡಲಾಯಿತು, ಇದನ್ನು ಅನುಷ್ಠಾನಗೊಳಿಸುವ ಮಾರಾಟಗಾರರು ಅನುಸರಿಸಬೇಕು. XQJ ವರ್ಗಗಳು ಜಾವಾ ಪ್ಯಾಕೇಜ್ javax.xml.xquery ನಲ್ಲಿವೆ, XQuery 3 ಅಥವಾ 3.1 ಗೆ ಬೆಂಬಲವನ್ನು ಒದಗಿಸುವ XQJ ಆವೃತ್ತಿಯನ್ನು ರಚಿಸಲು ಯಾವುದೇ (ಗೋಚರ) ಚಟುವಟಿಕೆಯಿಲ್ಲ, ಉದಾಹರಣೆಗೆ ಕಾರ್ಯಗಳು, ಸರಣಿಗಳು ಅಥವಾ ನಕ್ಷೆಗಳಂತಹ ಡೇಟಾ ಮಾದರಿಗೆ ಸೇರ್ಪಡೆಗಳಿಗಾಗಿ ಜಾವಾ ಬೈಂಡಿಂಗ್ಗಳನ್ನು ಒದಗಿಸುವ ಮೂಲಕ. ಕ್ರಿಯಾತ್ಮಕತೆ XQJ ಅನೇಕ ಅನುಷ್ಠಾನಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿರಲು ಮತ್ತು ಒಂದೇ ಅಪ್ಲಿಕೇಶನ್ನಿಂದ ಬಳಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. XQJ ಸಂಪರ್ಕಗಳು XQuery ಅಭಿವ್ಯಕ್ತಿಗಳನ್ನು ರಚಿಸಲು ಮತ್ತು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಬೆಂಬಲಿಸುತ್ತವೆ. ಅಭಿವ್ಯಕ್ತಿಗಳು ನವೀಕರಿಸುತ್ತಿರಬಹುದು ಮತ್ತು ಪೂರ್ಣ ಪಠ್ಯ ಹುಡುಕಾಟಗಳನ್ನು ಒಳಗೊಂಡಿರಬಹುದು. XQJ ಈ ಕೆಳಗಿನ ವರ್ಗಗಳಲ್ಲಿ ಒಂದನ್ನು ಬಳಸಿಕೊಂಡು XQuery ಅಭಿವ್ಯಕ್ತಿಯನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆಃ XQExpress-ಅಭಿವ್ಯಕ್ತಿಯನ್ನು ಪ್ರತಿ ಬಾರಿಯೂ XQuery ಪ್ರೊಸೆಸರ್ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ. ಎಕ್ಸ್. ಕ್ಯೂ. ಪ್ರಿಪೇರ್ಡ್ ಎಕ್ಸ್ಪ್ರೆಷನ್-ಅಭಿವ್ಯಕ್ತಿಯನ್ನು ಕ್ಯಾಶ್ ಮಾಡಲಾಗಿದೆ ಮತ್ತು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಮಾರ್ಗವನ್ನು ಮೊದಲೇ ನಿರ್ಧರಿಸಲಾಗಿದ್ದು, ಅದನ್ನು ಸಮರ್ಥ ರೀತಿಯಲ್ಲಿ ಅನೇಕ ಬಾರಿ ಕಾರ್ಯಗತಗೊಳಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. XQuery ಅಭಿವ್ಯಕ್ತಿಗಳು XDM ಅಂಶಗಳ ಫಲಿತಾಂಶದ ಅನುಕ್ರಮವನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತವೆ, ಇದನ್ನು XQJಯಲ್ಲಿ XQResultSequense ಇಂಟರ್ಫೇಸ್ ಮೂಲಕ ಪ್ರತಿನಿಧಿಸಲಾಗುತ್ತದೆ. ಪ್ರೋಗ್ರಾಮರ್ ಫಲಿತಾಂಶದ ಅನುಕ್ರಮದಲ್ಲಿ ಪ್ರತ್ಯೇಕ ಎಕ್ಸ್ಡಿಎಂ ಐಟಂಗಳ ಮೇಲೆ ನಡೆಯಲು ಎಕ್ಸ್ ಕ್ಯೂ ರೆಸಲ್ಟ್ ಸೀಕ್ವೆನ್ಸ್ ಅನ್ನು ಬಳಸಬಹುದು. ಅನುಕ್ರಮದಲ್ಲಿರುವ ಪ್ರತಿಯೊಂದು ವಸ್ತುವು ಅದರ ನೋಡ್ ಪ್ರಕಾರದಂತಹ ಎಕ್ಸ್. ಡಿ. ಎಂ. ಪ್ರಕಾರದ ಮಾಹಿತಿಯನ್ನು ಹೊಂದಿದೆ. , ಅಥವಾ ಎಕ್ಸ್. ಡಿ. ಎಂ ಪರಮಾಣು ಪ್ರಕಾರವಾದ, ಅಥವಾ. XQJಯಲ್ಲಿನ XDM ಪ್ರಕಾರದ ಮಾಹಿತಿಯನ್ನು XQItemType ಇಂಟರ್ಫೇಸ್ ಮೂಲಕ ಹಿಂಪಡೆಯಬಹುದು. ಗೆಟ್ಬೈಟ್ () ಮತ್ತು ಗೆಟ್ಫ್ಲೋಟ್ () ನಂತಹ XQItemAಕ್ಸೇಸರ್ ವಿಧಾನಗಳ ಮೂಲಕ ಅಟಾಮಿಕ್ XQuery ವಸ್ತುಗಳನ್ನು ಸುಲಭವಾಗಿ ಜಾವಾ ಪ್ರಿಮಿಟಿವ್ಗಳಿಗೆ ಹಾಕಬಹುದು. ಎಕ್ಸ್ ಕ್ವೆರಿ ಐಟಂಗಳು ಮತ್ತು ಅನುಕ್ರಮಗಳನ್ನು ಡಿಒಎಂ, ಎಸ್ಎಎಕ್ಸ್, ಸ್ಟ್ಯಾಕ್ಸ್ ಮತ್ತು ಜೆನೆರಿಕ್ ಐಒ ಮತ್ತು ವರ್ಗಗಳಿಗೆ ಕ್ರಮಬದ್ಧಗೊಳಿಸಬಹುದು. ಉದಾಹರಣೆಗಳು ಮೂಲಭೂತ ಉದಾಹರಣೆ ಈ ಕೆಳಗಿನ ಉದಾಹರಣೆಯು XML ದತ್ತಸಂಚಯಕ್ಕೆ ಸಂಪರ್ಕವನ್ನು ರಚಿಸುವುದನ್ನು, XQuery ಅಭಿವ್ಯಕ್ತಿಯನ್ನು ಸಲ್ಲಿಸುವುದನ್ನು, ನಂತರ ಫಲಿತಾಂಶಗಳನ್ನು ಜಾವಾದಲ್ಲಿ ಸಂಸ್ಕರಿಸುವುದನ್ನು ವಿವರಿಸುತ್ತದೆ. ಎಲ್ಲಾ ಫಲಿತಾಂಶಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಿದ ನಂತರ, ಅದಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಎಲ್ಲಾ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಮುಕ್ತಗೊಳಿಸಲು ಸಂಪರ್ಕವನ್ನು ಮುಚ್ಚಲಾಗುತ್ತದೆ. //ಒಂದು XML ದತ್ತಾಂಶಸಂಗ್ರಹಾಲಯಕ್ಕೆ ಹೊಸ ಸಂಪರ್ಕವನ್ನು ರಚಿಸಿ XQConnೈಕಸ಼ನ್ಕಾನ್ = vendorDataSource.getConnection ("ನನ್ನ ಬಳಕೆದಾರ", "ನನ್ನ ಪಾಸ್ವರ್ಡ್"); XQExpress ಎಕ್ಸ್ಪ್ರೆಸ್ = conn.createExpression ();// ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ XQuery ಎಕ್ಸ್ಪ್ರೆಶನ್ ಆಬ್ಜೆಕ್ಟ್ XQResultSequance ಫಲಿತಾಂಶವನ್ನು ರಚಿಸಿ = expr.executeQuery ("fn ನಲ್ಲಿ $n ಗಾಗಿಃ ಸಂಗ್ರಹಣೆ ('ಕ್ಯಾಟಲಾಗ್')// ಐಟಂ" + "ರಿಟರ್ನ್ fn: ಡೇಟಾ ($n/ಹೆಸರು)");// ಒಂದು XQuery ಅಭಿವ್ಯಕ್ತಿಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿ// ಫಲಿತಾಂಶದ ಅನುಕ್ರಮವನ್ನು ಪುನರಾವರ್ತಿತವಾಗಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಿ (result.next ()) ಸಂಪರ್ಕವು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ ಎಂದು ಊಹಿಸಿಕೊಳ್ಳಿಃ XQExpress expr = conn.createExpression ();// ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕಾದ XQuery ಅಭಿವ್ಯಕ್ತಿಯು ಸ್ಟ್ರಿಂಗ್ ಎಸ್ = "ವೇರಿಯೇಬಲ್ $x ಅನ್ನು xs ಎಂದು ಘೋಷಿಸಿಃ ಬಾಹ್ಯ ಪೂರ್ಣಾಂಕ;" + "fn ನಲ್ಲಿ $n ಗೆಃ ಸಂಗ್ರಹ ('ಕ್ಯಾಟಲಾಗ್')// ಐಟಂ" + "ಅಲ್ಲಿ $n/ಬೆಲೆ <= $x" + "ರಿಟರ್ನ್ fn: ಡೇಟಾ ($n/ಹೆಸರು)";// QName x expr.bindInt (ಹೊಸ QName ("x"), 21, ಶೂನ್ಯ) ನೊಂದಿಗೆ ಬಾಹ್ಯ ವೇರಿಯೇಬಲ್ಗೆ ಒಂದು ಮೌಲ್ಯವನ್ನು (21) ಬಂಧಿಸಿ;// XQuery ಅಭಿವ್ಯಕ್ತಿಯನ್ನು XQRultSequance ಫಲಿತಾಂಶವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿ. ಈ ಮ್ಯಾಪಿಂಗ್ ನಿಯಮಗಳು ಜೆ. ಎ. ಎಕ್ಸ್. ಬಿ. ಯಲ್ಲಿ ಕಂಡುಬರುವ ಮ್ಯಾಪಿಂಗ್ ನಿಯಮಗಳಿಗೆ ಹೆಚ್ಚಿನ ಹೋಲಿಕೆಗಳನ್ನು ಹೊಂದಿವೆ. XQuery ಅಭಿವ್ಯಕ್ತಿಗಳಲ್ಲಿನ ಬಾಹ್ಯ ಅಸ್ಥಿರಗಳಿಗೆ ಜಾವಾ ಮೌಲ್ಯಗಳನ್ನು ಬಂಧಿಸುವಾಗ ಡೀಫಾಲ್ಟ್ ಮ್ಯಾಪಿಂಗ್ ನಿಯಮಗಳನ್ನು ಈ ಕೆಳಗಿನ ಕೋಷ್ಟಕವು ವಿವರಿಸುತ್ತದೆ. ತಿಳಿದಿರುವ ಅನುಷ್ಠಾನಗಳು ಸ್ಥಳೀಯ XML ದತ್ತಸಂಚಯಗಳು ಜಾವಾ ಅನುಷ್ಠಾನಗಳಿಗಾಗಿ XQuery API ಅನ್ನು ಹೊಂದಿರುವ ಸ್ಥಳೀಯ XML ದತ್ತಸಂಚಯಗಳ ಪಟ್ಟಿ ಈ ಕೆಳಗಿನಂತಿದೆ. ಮಾರ್ಕ್ ಲಾಜಿಕ್ ಎಕ್ಸಿಸ್ಟ್ ಬೇಸ್ಎಕ್ಸ್ ಸೆಡ್ನಾ ಒರಾಕಲ್ ಎಕ್ಸ್ಡಿಬಿ ಟಾಮಿನೊ ಟೈಗರ್ ಲಾಜಿಕ್ ರಿಲೇಷನಲ್ ಡೇಟಾಬೇಸ್ಗಳು ಡೇಟಡೈರೆಕ್ಟ್ ರಿಲೇಷನಲ್ ಡೇಟಾಬೇಸ್ಗಳಿಗಾಗಿ ಎಕ್ಸ್ ಕ್ಯೂ ಜೆ ಅಡಾಪ್ಟರ್ಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ, ಎಕ್ಸ್ ಕ್ವೆರಿ ಕೋಡ್ ಅನ್ನು ಎಸ್ ಕ್ಯೂ ಎಲ್ ಆಗಿ ಭಾಷಾಂತರಿಸುವ ಮೂಲಕ, ನಂತರ ಎಸ್ ಕ್ಯೂ ಎಲ್ ಫಲಿತಾಂಶದ ಸೆಟ್ಗಳನ್ನು ಎಕ್ಸ್ ಕ್ಯೂ ಜೆಗೆ ಮತ್ತಷ್ಟು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಸೂಕ್ತವಾದ ಸ್ವರೂಪವಾಗಿ ಪರಿವರ್ತಿಸುತ್ತದೆ. ಈ ಕೆಳಗಿನವು ಕೆಲವು ಪರಿಚಿತ ಅನುಷ್ಠಾನಗಳಾಗಿವೆ. ಒರಾಕಲ್ ಡಿಬಿ (ಎಕ್ಸ್ಡಿಬಿ ಅಲ್ಲ) ಐಬಿಎಂ ಡಿಬಿ2 ಮೈಕ್ರೋಸಾಫ್ಟ್ ಎಸ್ಕ್ಯೂಎಲ್ ಸರ್ವರ್ ಸೈಬೇಸ್ ಎಎಸ್ಇ ಇನ್ಫಾರ್ಮಿಕ್ಸ್ ಮೈಎಸ್ಕ್ಯೂಎಲ್ ಪೋಸ್ಟ್ಗ್ರೆಎಸ್ಕ್ಯೂಎಲ್ ಡೇಟಾಬೇಸ್ ಅಲ್ಲದ ಅನುಷ್ಠಾನಗಳು ಈ ಕೆಳಗಿನವು ಡೇಟಾಬೇಸ್ ಅಲ್ಲದ ಎಕ್ಸ್ಕ್ವೇರಿ ಪ್ರೊಸೆಸರ್ಗಳ ಪಟ್ಟಿಯಾಗಿದ್ದು, ಇದು ಜಾವಾ ಇಂಟರ್ಫೇಸ್ಗಾಗಿ ಎಕ್ಸ್ಕ್ವೇರಿ ಎಪಿಐ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ (ಸಾಮಾನ್ಯವಾಗಿ ಫೈಲ್ ಸ್ಟೋರ್ನಲ್ಲಿ ಎಕ್ಸ್ಎಂಎಲ್ನಿಂದ ಪಾರ್ಸ್ ಮಾಡಲಾದ ಡಾಕ್ಯುಮೆಂಟ್ಗಳ ವಿರುದ್ಧ ಪ್ರಶ್ನೆಯನ್ನು ಅನುಮತಿಸುತ್ತದೆ ಮತ್ತು ಡಿಒಎಂ ಅಥವಾ ಅಂತಹುದೇ ಮರಗಳಾಗಿ ಮೆಮೊರಿಯಲ್ಲಿ ಇರಿಸಲಾಗುತ್ತದೆ). ಸ್ಯಾಕ್ಸನ್ ಎಕ್ಸ್ಎಸ್ಎಲ್ಟಿ ಮತ್ತು ಎಕ್ಸ್ಕ್ವೆರಿ ಪ್ರೊಸೆಸರ್ ಜೊರ್ಬಾ ಎಂಎಕ್ಸ್ಕ್ವೆರಿ ಒರಾಕಲ್ ಎಕ್ಸ್ಕ್ವೆರಿ ಪ್ರೊಸೆಸರ್ ಪರವಾನಗಿ ಈ ವಿವರಣೆಯನ್ನು "ಕೃತಿಸ್ವಾಮ್ಯ © 2003,2006-2009 ಒರಾಕಲ್" ಎಂದು ಗುರುತಿಸಲಾಗಿದೆ. ಎಲ್ಲಾ ಹಕ್ಕುಗಳನ್ನು ಕಾಯ್ದಿರಿಸಲಾಗಿದೆ ". ವಿವರಣೆಯು ಎರಡು ಪ್ರತ್ಯೇಕ ಪರವಾನಗಿಗಳನ್ನು ಹೊಂದಿದೆಃ ಒಂದು "ವಿವರಣೆ ಪರವಾನಗಿ" ಮತ್ತು ಒಂದು "ಉಲ್ಲೇಖ ಅನುಷ್ಠಾನ ಪರವಾನಗಿ". ನಿರ್ದಿಷ್ಟತೆಯ ಪರವಾನಗಿಯು ನಿರ್ದಿಷ್ಟತೆಯ ಉಚಿತ ನಕಲನ್ನು ಅನುಮತಿಸುತ್ತದೆ, ಅದು ಹಕ್ಕುಸ್ವಾಮ್ಯ ಸೂಚನೆಗಳನ್ನು ಉಳಿಸಿಕೊಳ್ಳುತ್ತದೆ; ಇದು ನಿರ್ದಿಷ್ಟತೆಯ ಅನುಷ್ಠಾನವನ್ನು ರಚಿಸಲು ಮತ್ತು ವಿತರಿಸಲು ಪರವಾನಗಿಯನ್ನು ನೀಡುತ್ತದೆ, ಅದು ಸಂಪೂರ್ಣ ನಿರ್ದಿಷ್ಟತೆಯನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ, ಅದು ಯಾವುದೇ ಇಂಟರ್ಫೇಸ್ಗಳನ್ನು ಮಾರ್ಪಡಿಸುವುದಿಲ್ಲ ಅಥವಾ ವಿಸ್ತರಿಸುವುದಿಲ್ಲ ಮತ್ತು ಹೊಂದಾಣಿಕೆಯ ಪರೀಕ್ಷೆಗಳಲ್ಲಿ ಉತ್ತೀರ್ಣವಾಗುತ್ತದೆ. ಈ ನಿಬಂಧನೆಯು ಕೆಲವು ವಿವಾದಗಳಿಗೆ ಕಾರಣವಾಗಿದೆ. ಮೊದಲನೆಯದಾಗಿ, ಪ್ರಕಟಿತ ವಿವರಣೆಯನ್ನು ಅನುಷ್ಠಾನಗೊಳಿಸುವುದು ಪರವಾನಗಿಯ ಅಗತ್ಯವಿರುವ ಸಂಗತಿಯಾಗಿದೆ ಎಂದು ಸಾರ್ವತ್ರಿಕವಾಗಿ ಒಪ್ಪಿಕೊಳ್ಳಲಾಗಿಲ್ಲ (ಅಂದರೆ, ಪರವಾನಗಿಯ ಅನುಪಸ್ಥಿತಿಯಲ್ಲಿ ಹಕ್ಕುಸ್ವಾಮ್ಯ ಕಾನೂನು ಇದನ್ನು ಅನುಮತಿಸುವುದಿಲ್ಲ). ಎರಡನೆಯದಾಗಿ, ವಿಸ್ತರಣೆಗಳು ಮತ್ತು ಮಾರ್ಪಾಡುಗಳನ್ನು ಮಾಡುವ ನಿಷೇಧದಿಂದಾಗಿ ಪರವಾನಗಿಯು ಮುಕ್ತ ಮೂಲ ಪರವಾನಗಿ ಎಂದು ಅರ್ಹತೆ ಪಡೆಯುವ ಮಾನದಂಡಗಳನ್ನು ಪೂರೈಸುವುದಿಲ್ಲ (ಮುಕ್ತ ಮೂಲ ವ್ಯಾಖ್ಯಾನವನ್ನು ನೋಡಿ). ಇದು ಕೆಲವು ಮುಕ್ತ ಮೂಲ ಉತ್ಸಾಹಿಗಳಿಗೆ XQJ ಅನುಷ್ಠಾನಗಳನ್ನು ಎಂದಾದರೂ ನಿಜವಾದ ಮುಕ್ತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬಹುದೇ ಎಂದು ಪ್ರಶ್ನಿಸಲು ಕಾರಣವಾಗಿದೆ. ಉಲ್ಲೇಖ ಅನುಷ್ಠಾನದ ಪರವಾನಗಿಯು ಸಾಕಷ್ಟು ಸಾಂಪ್ರದಾಯಿಕ ಬಿಎಸ್ಡಿ-ಶೈಲಿಯ ಮುಕ್ತ ಮೂಲ ಪರವಾನಗಿಯಾಗಿದೆ. ಬಾಹ್ಯ ಕೊಂಡಿಗಳು ಜಾವಡಾಕ್ ಫಾರ್ XQJ XQJ ಟ್ಯುಟೋರಿಯಲ್ ಬಿಲ್ಡಿಂಗ್ ಬ್ರಿಡ್ಜಸ್ ಫ್ರಮ್ ಜಾವಾದಿಂದ XQuery, ಚಾರ್ಲ್ಸ್ ಫೋಸ್ಟರ್. XML ಪ್ರೇಗ್ 2012 (ಪ್ರಿಜಿ ಪ್ರಸ್ತುತಿ) ಜಾವಾ ಇಂಟಿಗ್ರೇಷನ್ ಆಫ್ XQuery, ಹ್ಯಾನ್ಸ್-ಜುರ್ಗೆನ್ ರೆನೌ. XQJ ಸ್ಪ್ರಿಂಗ್ ಇಂಟಿಗ್ರೇಷನ್ ಅನ್ನು ಬಳಸುವ ಬಾಲಿಸೇಜ್ 2010 ಆರ್ಬಿಯಾನ್ ಫಾರ್ಮ್ಗಳು XQuery ಬೆಂಬಲ XQS: ಸ್ಕ್ಯಾಲಾಗಾಗಿ XQuery (XQJನ ಮೇಲೆ ಕುಳಿತುಕೊಳ್ಳುತ್ತದೆ) ಇಂಟೆಲಿಜೆ XQuery ಬೆಂಬಲ ಪ್ಲಗಿನ್ ಜಾವಾ APIಗಳು ಜಾವಾ ವಿವರಣೆಯು XML ಡೇಟಾವನ್ನು XML ಡೇಟಾಬೇಸ್ APIಗಳಿಗಾಗಿ ಜಾವಾ APIಗೆ ಪ್ರವೇಶಿಸಲು ವಿನಂತಿಸುತ್ತದೆ.