XForms और XPath

XForms XPath का प्रयोग डाटा को तुरन्त पता लगाने के लिए करता है। यह प्रक्रिया बांधन कहलाती है。

XForms बांधन

XForms का प्रयोग दो भागों के द्वारा डाटा को परिभाषित करने के लिए करता है: XForms मॉडल और XForms उपयोगकर्ता इंटरफेस。

XForms मॉडल डाटा के लिए एक XML टैम्प्लेट (इनस्टेंस) है और XForms उपयोगकर्ता इंटरफेस डाटा के इनपुट और प्रदर्शन के लिए एक वर्णन है。

XForms का प्रयोग XPath दोनों भागों के बीच कनेक्शन को परिभाषित करने के लिए प्रयोग करता है। यह कहलाता हैबांधन (binding)

XPath

XPath XML दस्तावेज के विभिन्न भागों को परिभाषित करने के लिए W3C मानक व्याकरण का प्रयोग करता है。

XPath XML दस्तावेज में नोड को पहचानने के लिए रास्ता प्रदर्शक एक्सप्रेशनों का प्रयोग करता है। ये एक्सप्रेशन आपके कंप्यूटर प्रणाली में देखे गए फ़ाइल पथ एक्सप्रेशनों के समान हैं。

XPath एक्सप्रेशन:

/person/fname

XML दस्तावेज में fname नोड को पता लगाने के लिए:

<person>
   <fname>David</fname>
   <lname>Smith</lname>
</person>

हमारे XPath ट्यूटोरियल के बारे में अधिक जानें।

Ref के द्वारा बांधें

XForms मॉडल इस तरह है:

<instance>
  <person>
    <name>
      <fname/>
      <lname/>
    </name>
  </person>
</instance>

XForms यूज़र इंटरफ़ेस को ref अट्रिब्यूट के द्वाराबाइंडिंग <input> एलीमेंट:

<input ref="name/fname">
<label>First Name</label>
</input>
<input ref="name/lname">
<label>Last Name</label>
</input>

उपरोक्त उदाहरण में ref="name/fname" एट्रिब्यूट एक्सेस प्रदाता है जो इनस्टेंस मॉडल में <fname> एलीमेंट के लिए XPath एक्सप्रेशन है। यह इनपुट फील्ड कोबाइंडिंगफॉर्म से डाटा संग्रह करने वाले XML दस्तावेज (इनस्टेंस) में <fname> एलीमेंट के लिए。

XForms उपयोगकर्ता इंटरफेस भी उदाहरण के लिए उपस्थिति का प्रयोग कर सकता है:

<input ref="/person/name/fname">
<label>First Name</label>
</input>
<input ref="/person/name/lname">
<label>Last Name</label>
</input>

उपरोक्त उदाहरण में, XPath एक्सप्रेशन की शुरुआत में बाएँ से वाला उभयांग (/) संदिग्ध एक्सएमएल डॉक्यूमेंट के रूट को संकेत करता है।

Bind के द्वारा बाइंडिंग

XForms मॉडल इस तरह है:

<model>
<instance>
  <person>
    <name>
      <fname/>
      <lname/>
    </name>
  </person>
</instance>
<bind nodeset="/person/name/fname" id="firstname"/>
<bind nodeset="/person/name/lname" id="lastname"/>
</model>

XForms यूज़र इंटरफ़ेस को bind अट्रिब्यूट के द्वाराबाइंडिंग <input> एलीमेंट:

<input bind="firstname">
<label>First Name</label>
</input>
<input bind="lastname">
<label>Last Name</label>
</input>

इनपुट कंट्रोल एलीमेंट को इंस्टैंस डाटा के साथ बाइंड करने के दो तरीके क्यों हैं?

क्या कहना है, जब आप जटिल अनुप्रयोगों में XForms का उपयोग करना शुरू करते हैं, तो आपको देखा जाएगा कि bind के द्वारा बाइंडिंग करना बहुत आगे बढ़ाया गया एक अधिक लचीला तरीका है जिससे बहुत फॉर्म और बहुत इंस्टैंस मॉडल को संभाला जा सकता है。