ডেলফি এক্সএমএল ডেটা বাইন্ডিং উইজার্ড ব্যবহার করার সময় প্রয়োজনীয় ট্যাগগুলি উপস্থিত নেই


99

আমি ব্যবহার করছি 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>

সমস্যাটি হ'ল যদি আমি উদাহরণস্বরূপ- Valuesগোষ্ঠীগুলিতে কোনও উপাদান যুক্ত না করি তবে কোনও- ট্যাগ থাকবে না <Values>এবং এক্সএমএল-ফাইলটি এর বিরুদ্ধে বৈধতা ব্যর্থ করবে XSD। ইন্টারফেসটি- Valuesট্যাগটি "যুক্ত" করার জন্য যদি কোনও পদ্ধতি সরবরাহ করে তবে এটি সম্ভবত কোনও সমস্যা হবে না ।

এটি পরিচালনা করার কোনও মানক উপায় আছে, বা আমি সঠিকভাবে উত্পন্ন কোডটি ব্যবহার করছি?

সহজভাবে বললে , নেই কোন উপায় কাজ-অ্যারাউন্ড বা অন্যথায়, থেকে কোড ব্যবহার Data Binding Wizard, নিম্নলিখিত উত্পাদন করতে XML(যা কি উপরে স্কিমা ব্যবহার যাচাই করতে প্রয়োজন হয় যখন কোনো সন্তান নোড হয়) দেওয়া HeaderType, ValuesTypeএবং EventsTypecomplexType হয় :

<MyReport>
  <Header />
  <Values />
  <Events />
</MyReport> 

(আমি জানি অন্যান্য অনুরূপ অন্যান্য সমস্যা রয়েছে যেমন <xs:sequence>চূড়ান্ত-ফাইলে সঠিক অর্ডার প্রয়োগ না করে কোড উত্পন্ন XML, তবে কমপক্ষে একটিটির জন্য, কেবলমাত্র সঠিক ক্রমে বাচ্চাগুলি সন্নিবেশ করে একটি কাজ করা আছে I আমি এখনও মনে করি Embarcaderoএকটি সম্পূর্ণ ইন্টারফেস সরবরাহ করে যদি এটি দুর্দান্ত হয়, যা এই বৈশিষ্ট্যগুলিকে আরও বিবেচনা করে নেয়))


অর্ডার দেওয়ার সময় আপনি ইতিমধ্যে সমস্যার মূল আবিষ্কার করেছেন। উত্পন্ন শ্রেণিটি এক্সএমএল অবজেক্ট মডেলের চারপাশে বোবা মোড়ক; জিজ্ঞাসা করা হলে এটি উপস্থিত থাকবে। স্ট্রিং টাইপের সাথে এটি যথেষ্ট সহজ (কেবল একটি খালি স্ট্রিং যুক্ত করুন) তবে জটিল ধরণের জন্য আমি নিশ্চিত নীল কাজ করবে কিনা তা নিশ্চিত নই।
লিওনার্দো হেরেরার

এটি আসলে বেশ সত্য নয়। TXMLValuesType.AfterConstructionপঠনের কোডটি RegisterChildNode('Value', TXMLValueType); FValue := CreateCollection(TXMLValueTypeList, IXMLValueType, 'Value') as IXMLValueTypeList;তাই মান-আইটেমগুলির সংগ্রহ (প্যারেন্ট ভ্যালু-ট্যাগের অধীনে) বিদ্যমান, যা খালি মূল্য-ট্যাগটি তৈরি করা এত কঠিন করে তোলে। খালি মূল্য তালিকা কার্যকরভাবে আপনাকে ট্যাগটি SaveToFileতৈরি করতে বাধ্য করবে<Values />
র্যান্ডোমিস্টার

4
@ র্যান্ডোমিস্টার - আপনার এক্সএসডি: <xs: সমস্ত ম্যাকঅ্যাক্সার্স = "1"> এ minOccurs = "1" বৈশিষ্ট্যটি চেষ্টা করুন। এছাড়াও, <xs: ক্রম> <xs: all> এর পরিবর্তে ব্যবহার করার চেষ্টা করুন। আমি বাইন্ডিং উইজার্ডের সাথে একটি ভাল কাজ করেছি (ডেল্ফি এক্সিতে) এবং কোনও সমস্যার মুখোমুখি হই নি - তবে আপনাকে অবশ্যই নিশ্চিত করতে হবে যে আপনি নিজের ধরণের এবং বৈশিষ্ট্যগুলি সঠিকভাবে ঘোষণা করেছেন যাতে উইজার্ড আদেশ এবং বাধ্যতামূলক মানগুলি বুঝতে পারে।
ভেক্টর

উত্তর:


1

বোঝার জন্য নিশ্চিত নয় তবে আপনি যা খুঁজছেন তা হ'ল ব্যবহার = "alচ্ছিক"

<xs:element name="MyReport" type="MyReportType" />
<xs:complexType name="MyReportType">
  <xs:all>
    <xs:element name="Header" type="HeaderType" use="optional" />
    <xs:element name="Values" type="ValuesType" use="optional" />
    <xs:element name="Events" type="EventsType" use="optional" />
  </xs:all>
</xs:complexType>

ঠিক আছে কিনা বলুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.