मैं उपयोग कर रहा हूँ XML Data Binding Wizardमें Delphi XE2। स्कीमा को इस प्रकार के टैग की आवश्यकता होती है:
<xs:element name="MyReport" type="MyReportType" />
<xs:complexType name="MyReportType">
<xs:all>
<xs:element name="Header" type="HeaderType" />
<xs:element name="Values" type="ValuesType" />
<xs:element name="Events" type="EventsType" />
</xs:all>
</xs:complexType>
समस्या यह है कि अगर मैं किसी भी तत्व को उदाहरण के लिए -group में Valuesनहीं <Values>जोड़ता, तो कोई -tag नहीं होगा, और XML-फ़ाइल के विरुद्ध सत्यापन विफल हो जाएगा XSD। यह शायद एक समस्या नहीं होगी अगर इंटरफ़ेस Values-tag को "जोड़ने" के लिए एक विधि प्रदान कर रहा था ।
क्या इसे संभालने का एक मानक तरीका है, या क्या मैं उत्पन्न कोड का सही तरीके से उपयोग कर रहा हूं?
सीधे शब्दों में कहें, क्या कोई तरीका है, काम-के आसपास या अन्यथा, कोड का उपयोग करके Data Binding Wizard, निम्नलिखित का उत्पादन करने के लिए XML(जो कि ऊपर दिए गए स्कीमा का उपयोग करने के लिए मान्य करने की आवश्यकता है जब कोई बच्चे नोड्स नहीं हैं), दिए गए HeaderType, ValuesTypeऔरEventsType जटिल हैं :
<MyReport>
<Header />
<Values />
<Events />
</MyReport>
(मुझे पता है कि इस तरह के अन्य मुद्दे भी हैं, जैसे कि <xs:sequence>फाइनल- XMLफ़िले में सही क्रम लागू नहीं करने से उत्पन्न कोड , लेकिन कम से कम उस एक के लिए, केवल सही क्रम में बच्चों को सम्मिलित करके एक कार्य-आस-पास है। मुझे अभी भी लगता है। यह अच्छा Embarcaderoहोगा यदि पूर्ण इंटरफ़ेस प्रदान किया जाए, जो इन विशेषताओं को अधिक ध्यान में रखता है।]
TXMLValuesType.AfterConstructionपढ़ता है, RegisterChildNode('Value', TXMLValueType); FValue := CreateCollection(TXMLValueTypeList, IXMLValueType, 'Value') as IXMLValueTypeList;इसलिए मूल्य-वस्तुओं का संग्रह (मूल मान-टैग के तहत) मौजूद है, जो वह है जो रिक्त मान-टैग बनाने के लिए इतना कठिन बनाता है। खाली मूल्य-सूची आपको प्रभावी रूप से -tagSaveToFile<Values />