XML Schema element উপাদান
বিবরণ ও ব্যবহার
element ইলেকট্রনমুক্তোমূলকটি একটি ইলেকট্রনমুক্তোমূলককে নির্দিষ্ট করে。
ইলেকট্রনমুক্তোমূলক তথ্য
উপস্থিতি প্রক্রিয়া | আকৃতিতে নির্দিষ্ট ইলেকট্রনমুক্তোমূলকের সংখ্যা |
পূর্বপুরুষ | schema、choice、all、sequence |
কনটেন্ট | simpleType、complexType、key、keyref、unique |
গঠন
<element id=ID name=NCName ref=QName type=QName substitutionGroup=QName default=string fixed=string form=qualified|unqualified maxOccurs=nonNegativeInteger|unbounded minOccurs=nonNegativeInteger nillable=true|false abstract=true|false block=(#all|list of (extension|restriction)) final=(#all|list of (extension|restriction)) অ্যানি অ্যাট্রিবিউটস > annotation?,((simpleType|complexType)?,(unique|key|keyref)*)) </element>
(? সংকেতটি element ইলেকট্রনমুক্তোমূলকে ব্যবহৃত হয়, এই ইলেকট্রনমুক্তোমূলকটি কোনও কোনও সময় বা একবার দেখানো যাবে, * সংকেতটি ইলেকট্রনমুক্তোমূলকটি কোনও কোনও সময় বা বেশ কয়েকবার দেখানো যাবে。)
অ্যাট্রিবিউট
id
সুবিধায়োগ্য।এই ইলেকট্রনমুক্তোমূলককে একটি অতুলনীয় ID নির্দিষ্ট করুন。
name
সুবিধায়োগ্য।ইলেকট্রনমুক্তোমূলককে নাম নির্দিষ্ট করুন।যদি মাত্রাক্রমক ইলেকট্রনমুক্তোমূলক হলে, তবে এই অ্যাট্রিবিউটটি অপরিহার্য হবে。
ref
সুবিধায়োগ্য।অন্য একটি ইলেকট্রনমুক্তোমূলককে উল্লেখ করুন।ref অ্যাট্রিবিউটটি একটি নামস্পেস প্রিফিক্স ধারণ করতে পারে।যদি মাত্রাক্রমক ইলেকট্রনমুক্তোমূলক হলে, তবে এই অ্যাট্রিবিউটটি ব্যবহার করা যাবে না。
type
সুবিধায়োগ্য।এই ইলেকট্রনমুক্তোমূলককে একটি নির্দিষ্ট নির্মিত ডাটা ধরনের নাম অথবা simpleType বা complexType ইলেকট্রনমুক্তোমূলকের নাম নির্দিষ্ট করুন。
substitutionGroup
সুবিধায়োগ্য।এই ইলেকট্রনমুক্তোমূলককে আদান-প্রদান করার জন্য ব্যবহৃত ইলেকট্রনমুক্তোমূলকের নাম নির্দিষ্ট করুন।এই ইলেকট্রনমুক্তোমূলকটি একই ধরনের হতেই হবে অথবা নির্দিষ্ট ইলেকট্রনমুক্তোমূলক ধরন থেকে উদ্ভূত হবে。
যদি মাত্রাক্রমক ইলেকট্রনমুক্তোমূলক না হলে, তবে এই অ্যাট্রিবিউটটি ব্যবহার করা যাবে না。
default
সুবিধায়োগ্য।ইলেকট্রনমুক্তোমূলক এবং textOnly হলেই এই ইলেকট্রনমুক্তোমূলককে ডিফল্ট মূল্য নির্দিষ্ট করুন。
fixed
সুবিধায়োগ্য।ইলেকট্রনমুক্তোমূলক এবং textOnly হলেই এই ইলেকট্রনমুক্তোমূলককে নির্দিষ্ট স্থায়ী মূল্য নির্দিষ্ট করুন。
form
অপশনাল। এই ইলেকট্রনমোণ্ডটির রূপ। ডিফল্ট মান হলো এই অ্যাট্রিবিউটটি ধারণকারী schema ইলেকট্রনমোণ্ডটির elementFormDefault অ্যাট্রিবিউটের মান। এই মানটি নিম্নলিখিত স্ট্রিংগুলোর একটি হতে পারে: 'qualified' বা 'unqualified'
যদি পারেন্ট ইলেকট্রনমোণ্ড schema ইলেকট্রনমোণ্ড হয়, তবে এই অ্যাট্রিবিউটটি ব্যবহার করা যাবে না
- যদি এই মানটি 'unqualified' হয়, তবে এই ইলেকট্রনমোণ্ডকে নামস্পেস প্রিফিক্স দ্বারা সীমাবদ্ধ করা হবে না
- যদি এই মানটি 'qualified' হয়, তবে এই ইলেকট্রনমোণ্ডকে নামস্পেস প্রিফিক্স দ্বারা সীমাবদ্ধ করা হতে হবে
maxOccurs
অপশনাল। element ইলেকট্রনমোণ্ডটি পারেন্ট ইলেকট্রনমোণ্ডে দেখা যাওয়া সবচেয়ে বেশি সংখ্যক উপস্থিতির সীমা। এই মানটি পঞ্চম থেকে বেশি বা সমান হতে পারে। যদি বেশি সংখ্যক উপস্থিতির সীমা নির্ধারণ করা হয় না, তবে 'unbounded' স্ট্রিং ব্যবহার করা হবে। ডিফল্ট মান 1
যদি পারেন্ট ইলেকট্রনমোণ্ড schema ইলেকট্রনমোণ্ড হয়, তবে এই অ্যাট্রিবিউটটি ব্যবহার করা যাবে না
minOccurs
অপশনাল। element ইলেকট্রনমোণ্ডটি পারেন্ট ইলেকট্রনমোণ্ডে দেখা যাওয়া সবচেয়ে কম সংখ্যক উপস্থিতির সীমা। এই মানটি পঞ্চম থেকে বেশি বা সমান হতে পারে। ডিফল্ট মান 1
যদি পারেন্ট ইলেকট্রনমোণ্ড schema ইলেকট্রনমোণ্ড হয়, তবে এই অ্যাট্রিবিউটটি ব্যবহার করা যাবে না
nillable
অপশনাল। যদি এই ইলেকট্রনমোণ্ডকে স্পষ্ট শূন্য মান (nil) সেট করা যায় কি বলে ইঙ্গিত করে। এই মানটি ইলেকট্রনমোণ্ডটির কন্টেন্টে লাগে এবং এটি ইলেকট্রনমোণ্ডটির অ্যাট্রিবিউট নয়। ডিফল্ট মান false
যদি nillable true হয়, তবে এই ইলেকট্রনমোণ্ডটির ইনস্ট্যান্সটি nil অ্যাট্রিবিউট সেট করা যাবে true। nil অ্যাট্রিবিউট XML স্কেচা ন্যামস্পেসের একটি অংশ হিসাবে নির্দিষ্ট হয়
উদাহরণস্বরূপ, এই ইলেকট্রনমোণ্ডটি একক ইলেকট্রনমোণ্ড নির্দিষ্ট করে এবং nillable সেট করা হয় true
<xs:element name="myDate" type="xs:date" nillable="true"/>
এই ইলেকট্রনমোণ্ডটি ব্যবহার করা হয় এবং এটির নির্দিষ্ট শূন্য মান (nil অ্যাট্রিবিউট সেট করা হয় true) রয়েছে。
<myDate xsi:nil="true"></myDate>
abstract
অপশনাল। ইলেকট্রনমোণ্ডকে ইনস্ট্যান্স ডকুমেন্টে ব্যবহার করা যায় কি বলে ইঙ্গিত করে। যদি এই মানটি true হয়, তবে ইলেকট্রনমোণ্ডটি ইনস্ট্যান্স ডকুমেন্টে দেখা যাবে না। এর পরিবর্তে substitutionGroup অ্যাট্রিবিউট এই ইলেকট্রনমোণ্ডকের QName নির্দিষ্ট অন্য ইলেকট্রনমোণ্ডকে এই ইলেকট্রনমোণ্ডকের স্থানে দেখা যাবে। একাধিক ইলেকট্রনমোণ্ডকে তাদের substitutionGroup অ্যাট্রিবিউটে এই ইলেকট্রনমোণ্ডকে উল্লেখ করা যায়। ডিফল্ট মান false।
block
অপশনাল। উদ্ভূত ধরন। block অ্যাট্রিবিউট একটি নির্দিষ্ট উদ্ভূত ধরনের ইলেকট্রনমোণ্ডকে বিকল্প হিসাবে ব্যবহার করা থেকে রোকা হয়। এই মানটিতে #all বা একটি তালিকা থাকতে পারে, যেটি extension, restriction বা substitution এর উপাদান হতে পারে:
- extension - প্রসার দ্বারা উদ্ভূত ইলেকট্রনমোণ্ড এই ইলেকট্রনমোণ্ডকে বিকল্প হিসাবে ব্যবহার করা থেকে রোকা হয়。
- restriction - প্রতিস্থাপন করার জন্য সীমিত উত্তরসূরী এলিমেন্টকে ব্যবহার না করা
- substitution - প্রতিস্থাপন করার জন্য স্থানান্তরিত উত্তরসূরী এলিমেন্টকে ব্যবহার না করা
- #all - প্রতিস্থাপন করার জন্য সমস্ত উত্তরসূরী এলিমেন্টকে ব্যবহার না করা
final
অপশনাল।element এলিমেন্টের final অ্যাট্রিবিউটের ডিফল্ট মান নির্ধারণ করুন।যদি পার্যন্তক এলিমেন্ট schema এলিমেন্ট না হয়, তবে এই অ্যাট্রিবিউট ব্যবহার করা যাবে না।এই মানটি #all বা extension এবং restriction এর একটি তালিকা হতে পারে:
- extension - প্রতিস্থাপন করার জন্য সম্প্রসারিত উত্তরসূরী এলিমেন্টকে ব্যবহার না করা
- restriction - প্রতিস্থাপন করার জন্য সীমিত উত্তরসূরী এলিমেন্টকে ব্যবহার না করা
- #all - এই এলিমেন্টটিকে প্রতিস্থাপন করার জন্য সমস্ত উত্তরসূরী এলিমেন্টকে ব্যবহার না করা
অ্যানি অ্যাট্রিবিউটস
অপশনাল।একটি non-schema নামকরণ স্পেস ধারণকারী অন্য কোনো অ্যাট্রিবিউট নির্দিষ্ট করুন。
ইনস্ট্যান্স
উদাহরণ 1
নিচের উদাহরণটি একটি schema যাতে চারটি সাধারণ এলিমেন্ট আছে: "fname", "lname", "age" এবং "dateborn"।এইসব এলিমেন্টগুলির টাইপ string, nonNegativeInteger এবং date হয়:
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="fname" type="xs:string"/> <xs:element name="lname" type="xs:string"/> <xs:element name="age" type="xs:nonNegativeInteger"/> <xs:element name="dateborn" type="xs:date"/> </xs:schema>
উদাহরণ 2
নিচের উদাহরণটি একটি schema যাতে একটি জটিল টাইপের "note" এলিমেন্ট আছে।"note" এলিমেন্টটি চারটি সাধারণ এলিমেন্ট ধারণ করে: "to", "from", "heading" এবং "body":
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
উদাহরণ 3
এই উদাহরণটি উদাহরণ 2-এর সমান কিন্তু এই উদাহরণে আমরা ref অ্যাট্রিবিউট ব্যবহার করেছি যার মাধ্যমে এলিমেন্টের নাম উল্লেখ করা হয়:
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element ref="to"/> <xs:element ref="from"/> <xs:element ref="heading"/> <xs:element ref="body"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:schema>