क्या LINQ प्रश्नों को XSLT में बदलने का कोई तरीका है? उसी तरह LINQ को SQL में बदला जा सकता है?

मेरा मतलब है कि अगर मेरे पास एक ठोस अच्छी तरह से परिभाषित एक्सएमएल है (एक्सएसडी के अनुरूप) क्या उस एक्सएमएल के संबंध में सिस्टम के तहत सामान को संकलित करने का कोई तरीका है।

धन्यवाद।

Dimitries के अनुरोध के लिए मैं थोड़ा विस्तार करने की कोशिश करूंगा ... मूल रूप से मेरे पास एक ही स्थान पर कुछ डेटा है (यह मूल रूप से xml serializable डेटा का हिस्सा है), और मुझे उन्हें संसाधित करने की आवश्यकता है, मुझे उन्हें गठबंधन और संसाधित करने की आवश्यकता है।

आने वाले मूल डेटा और आउटपुट परिणाम डेटा दोनों ही XML क्रमानुसार हैं, और एक अच्छी तरह से परिभाषित XSD के अनुरूप हैं।

मैं प्रसंस्करण तर्क गतिशील रूप से उत्पन्न करना चाहता हूं - कहीं और। और मेरे उपयोगकर्ता को प्रसंस्करण के साथ बदलने और खेलने की अनुमति दें। मैं अभिव्यक्ति पेड़ों के साथ इसे आसानी से प्रसंस्करण का प्रतिनिधित्व कर सकता हूं। एक्सप्रेशन ट्री पार्स ट्री के समान हैं और प्रोग्राम कोड को कैप्चर कर सकते हैं। इस तरह से linq से SQL काम करता है यह अभिव्यक्ति पेड़ों को SQL प्रश्नों में परिवर्तित करता है।

चूंकि सभी आय डेटा और आउटपुट दोनों एक अच्छी तरह से परिभाषित एक्सएमएल हैं, इसलिए मैं एक्सएसएलटी के साथ आसानी से परिवर्तन कर सकता हूं, लेकिन मैं एक्सएसएलटी से एक गतिशील एक्सएसएलटी जनरेटर लिखने के लिए पर्याप्त रूप से परिचित नहीं हूं। तो मैंने सोचा कि मैं सी # में परिवर्तन बना सकता हूं और उन्हें एक्सएसएलटी में परिवर्तित कर सकता हूं .... फिर से इसका सामान्य उद्देश्य सी # नहीं है, लेकिन शायद एक अच्छी तरह से परिभाषित डेटा प्रदाता पर विशिष्ट प्रश्न हैं।

उदाहरण के लिए:

(असली कोड नहीं)

var schemas = XSchemaSet.Load("a","b");
var doc = XDocument.Load("File",schemas);

var result = from node in doc.Nodes
             where node.Name == "Cats" || node.Name == "Dogs"
             select (new Node(){Name = "Animal Owner", Value = node.Owner)
var newDoc = new XDocument().AddNodes(result);
newDoc.Validate(schemas);

मूल रूप से मुझे कुछ ऐसा चाहिए जो इस तरह काम करे ... मैं इसे एक ही linq क्वेरी में लिख सकता हूं यदि मैं IQueryable.Aggregate का उपयोग करता हूं

9
AK_ 3 अगस्त 2011, 16:59
4
क्या आप विस्तार से समझा सकते हैं? आपका प्रश्न ज्यादा समझ में नहीं आता है। एक एक्सएसएलटी एक एक्सएमएल से दूसरे में परिवर्तन के एक सेट को परिभाषित करता है। यह LINQ से कैसे संबंधित है। क्या आप कोई ठोस उदाहरण दे सकते हैं? बीटीडब्ल्यू। यदि आपके पास एक्सएसडी है तो आप xsd.exe का उपयोग ऑब्जेक्ट मॉडल बनाने के लिए कर सकते हैं और उस ऑब्जेक्ट मॉडल पर ऑब्जेक्ट्स के लिए LINQ का उपयोग कर सकते हैं। और आप वैसे भी XSLT का उपयोग क्यों करना चाहते हैं :-p
 – 
Steven
3 अगस्त 2011, 17:06
1
आपका क्या मतलब है "LINQ को XML में बदला जा सकता है" क्या आप LINq-to-XML का उपयोग करने के बारे में बात कर रहे हैं तो LINQ XML में परिवर्तित नहीं होता है, लेकिन XML दस्तावेज़ से पूछताछ करता है
 – 
Rune FS
3 अगस्त 2011, 17:13
4
मैं xslt और अभिव्यक्ति/LINQ दोनों से परिचित हूं, लेकिन मुझे वास्तव में यहां क्रॉसओवर नहीं दिख रहा है - यह एक "स्पष्ट" डिज़ाइन विकल्प नहीं है, आईएमओ। क्या xslt आपके समाधान का एक अनिवार्य हिस्सा है? या यह सिर्फ एक उपकरण है? यदि ऐसा है, तो मुझे दृढ़ता से संदेह है कि समान अंत प्राप्त करने के अन्य (बेहतर) तरीके हैं। सी # के लिए भी गतिशील पीढ़ी की जा सकती है। व्यक्तिगत रूप से, मैं यहां मेटा-प्रोग्रामिंग समाधान देख रहा हूं।
 – 
Marc Gravell♦
7 अगस्त 2011, 11:33
1
मैं देखता हूं, @ हेलफ्रॉस्ट। यदि आप सी # कोड का एक उदाहरण प्रदान करते हैं जो एक परिवर्तन करता है, तो मैं इस सी # कोड को एक्सएसएलटी में बदलने के तरीकों के बारे में सोच सकता हूं - हालांकि मुझे नहीं लगता कि किसी भी सी # कोड को लिखना क्यों जरूरी है - हम कर सकते हैं बस एक्सएसएलटी कोड लिखें।
 – 
Dimitre Novatchev
7 अगस्त 2011, 22:21
1
अगर मैं आपको सही समझता हूं, तो आप एक LINQ अभिव्यक्ति वृक्ष बनाना चाहते हैं, उसे एक्सएसएलटी में कनवर्ट करना चाहते हैं और एक्सएमएल को बदलने के लिए इसका इस्तेमाल करना चाहते हैं। लेकिन मुझे एक्सएसएलटी चरण की आवश्यकता नहीं दिख रही है: आप सीधे LINQ से XML के साथ काम कर सकते हैं।
 – 
svick
10 अगस्त 2011, 04:26

2 जवाब

सबसे बढ़िया उत्तर

हाँ, आप अपना स्वयं का क्वेरी प्रदाता लागू कर सकते हैं, जो आंतरिक रूप से XSLT का उपयोग करता है, यदि आप एक्सएसएलटी के साथ क्वेरी करने का तरीका समझ सकते हैं।

3
George Polevoy 3 अगस्त 2011, 18:02
लिंक के लिए +1। लेकिन मैं अपने प्रश्न के लिए और अधिक प्रासंगिक कुछ के लिए और अधिक उम्मीद कर रहा था
 – 
AK_
3 अगस्त 2011, 18:53

सिर्फ Linq2XML का उपयोग क्यों न करें? यह XDocument और XElement . पर काम करता है

या वैकल्पिक रूप से यदि आप चाहते हैं कि लोग xlst का उपयोग करके ट्रांसफॉर्म को परिभाषित करें तो कोड में दस्तावेज़ के विरुद्ध केवल xslt निष्पादित क्यों न करें?

मैं नहीं देखता कि कैसे एक Linq2XSLT होने से किसी समस्या को एक अलग रूप में फिर से बनाए बिना हल करने में मदद मिलेगी

0
John Nicholas 12 अगस्त 2011, 18:53