हाँ, यहाँ XQuery spec से an example है:।।
"में शामिल है, जो एक एकल परिणाम में एकाधिक स्रोतों से डेटा गठबंधन, क्वेरी की एक बहुत ही महत्वपूर्ण प्रकार के होते हैं इस भाग में हम उदाहरण देकर स्पष्ट करना होगा कि कई मिलती है के प्रकार XQuery में व्यक्त किया जा सकता हम निम्नलिखित तीन दस्तावेजों पर हमारे उदाहरण का आधार होगा:।
parts.xml
नामक एक दस्तावेज है कि कई part
तत्व शामिल हैं, बारी में प्रत्येक part
तत्वमें शामिल हैऔर description
उपखंड।
suppliers.xml
नामक एक दस्तावेज़ जिसमें supplier
तत्व शामिल हैं; प्रत्येक supplier
तत्व में बदले में suppno
और suppname
सबलेमेंट्स शामिल हैं।
catalog.xml
नामक एक दस्तावेज़ जिसमें आपूर्तिकर्ताओं और भागों के बीच संबंधों के बारे में जानकारी शामिल है। कैटलॉग दस्तावेज़ में कई item
तत्व हैं, जिनमें से प्रत्येक में partno
, suppno
, और price
सबलेमेंट्स शामिल हैं।
एक पारंपरिक ("आंतरिक") दो या दो से अधिक संबंधित स्रोतों से रिटर्न जानकारी में शामिल हो जाता है, जैसा कि निम्नलिखित उदाहरण से सचित्र है, जो तीन दस्तावेजों से जानकारी को जोड़ता है। उदाहरण कैटलॉग दस्तावेज़ से व्युत्पन्न "वर्णनात्मक कैटलॉग" उत्पन्न करता है, लेकिन आपूर्तिकर्ता संख्याओं के बजाय भाग संख्याओं और आपूर्तिकर्ता नामों के बजाय भाग विवरण शामिल करता है। नई सूची हिस्सा वर्णन से और दूसरी प्राथमिकता आपूर्तिकर्ता नाम से वर्णानुक्रम है। *
<descriptive-catalog>
{
for $i in fn:doc("catalog.xml")/items/item,
$p in fn:doc("parts.xml")/parts/part[partno = $i/partno],
$s in fn:doc("suppliers.xml")/suppliers
/supplier[suppno = $i/suppno]
order by $p/description, $s/suppname
return
<item>
{
$p/description,
$s/suppname,
$i/price
}
</item>
}
</descriptive-catalog>
पूर्व क्वेरी केवल भागों है कि आपूर्तिकर्ताओं और आपूर्तिकर्ताओं है कि भागों है के बारे में जानकारी देता है। बाहरी शामिल एक ऐसा जुड़ाव है जो भाग लेने वाले स्रोतों में से एक या अधिक से अधिक जानकारी को संरक्षित करता है, जिसमें अन्य स्रोतों में कोई तत्व तत्व नहीं है।उदाहरण के लिए, एक बाहरी में शामिल होने के आपूर्तिकर्ताओं और भागों के बीच छोड़ दिया आपूर्तिकर्ताओं कोई मिलता-जुलता भागों है कि के बारे में जानकारी वापस कर सकती है। "
ध्यान दें कि XQuery एक मानक दस्तावेज़ नहीं है() फ़ंक्शन (यह एक XSLT function है) और बदले doc() समारोह है, जो "XQuery 1.0 and XPath 2.0 Functions and Operators" का हिस्सा है
वहाँ क्रिस द्वारा जवाब में कम से कम दो त्रुटियाँ हैं:।
- XQuery is case sensitive - क्रिस 'उदाहरण में उपयोग किए गए पूंजीकृत कीवर्ड को एक अनुरूप XQuery प्रोसेसर द्वारा अनुमति नहीं दी जाएगी।
- मानक फ़ंक्शन जैसे दस्तावेज़() को उपसर्ग करना आवश्यक नहीं है, मैं केवल XQuery spec को उद्धृत कर रहा हूं, जिसमें उपसर्ग है। अन्यथा, मेरे अपने कोड में मैं "
fn
" उपसर्ग छोड़ दूंगा।
- फ़ंक्शन दस्तावेज़() मानक XQuery/XPath फ़ंक्शन नहीं है। इसके बजाय doc() फ़ंक्शन का उपयोग किया जाना चाहिए।
स्रोत
2009-01-27 18:10:22
यह शायद एक टाइपो है, लेकिन आप 'खोलने जा रहे file1.xml' 3 बार। –