XML Schema element element
definition and usage
element defines an element.
element information
occurrence count | the number of elements defined in the schema. |
parent element | schema、choice、all、sequence |
content | simpleType、complexType、key、keyref、unique |
grammar
<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
অপশনাল। ইলেমেন্টটির নাম নির্দিষ্ট করুন। যদি পারেন্ট ইলেমেন্ট schema ইলেমেন্ট হয়, তবে এই প্রতিশব্দটি অত্যাবশ্যকীয় হবে。
ref
অপশনাল। আরেকটি ইলেমেন্টের পরিচয়না। ref প্রতিশব্দটি একটি নামস্পেস প্রিফিক্স ধারণ করতে পারে। যদি পারেন্ট ইলেমেন্ট schema ইলেমেন্ট হয়, তবে এই প্রতিশব্দটি ব্যবহার করা যাবে না。
type
অপশনাল। বৃদ্ধি হওয়ার মান বা simpleType বা complexType ইলেমেন্টটির নাম নির্দিষ্ট করুন。
substitutionGroup
অপশনাল। এই ইলেমেন্টটিকে প্রতিস্থাপন করা যাওয়ার যোগ্য ইলেমেন্টটির নাম নির্দিষ্ট করুন। এই ইলেমেন্টটি একই ধরনের হতে হবে বা নির্দিষ্ট ইলেমেন্টটির ধরন থেকে উদ্ভূত হতে হবে。
যদি পারেন্ট ইলেমেন্ট স্কেমা ইলেমেন্ট না হয়, তবে এই প্রতিশব্দটি ব্যবহার করা যাবে না。
default
অপশনাল। ইলেমেন্টটিকে ডিফল্ট মান নির্দিষ্ট করুন (শুধুমাত্র যখন ইলেমেন্টটির মান সাধারণ ধরনের হয় বা textOnly হয়)。
fixed
অপশনাল। ইলেমেন্টটিকে স্থায়ী মান নির্দিষ্ট করুন (শুধুমাত্র যখন ইলেমেন্টটির মান সাধারণ ধরনের হয় বা textOnly হয়)。
form
অপশনাল। এই ইলেমেন্টটির রূপ। ডিফল্ট মান হল যেটি এই প্রতিশব্দটির সংজ্ঞাটির elementFormDefault প্রতিশব্দটির মান। এই মানটি নিম্নলিখিত শব্দগুলির একটি হতে হবে: "qualified" বা "unqualified"。
যদি পারেন্ট ইলেকট্রন schema ইলেকট্রন হয়, তবে এই অ্যাট্রিবিউটটি ব্যবহার করা যাবে না。
- যদি এই মান "unqualified" হয়, তবে এই ইলেমেন্টটিকে নামস্পেস প্রিফিক্স দ্বারা নির্দিষ্ট করতে হবে না。
- যদি এই মান "qualified" হয়, তবে এই ইলেমেন্টটিকে নামস্পেস প্রিফিক্স দ্বারা নির্দিষ্ট করতে হবে。
maxOccurs
অপশনাল। এলিমেন্ট ইলেমেন্টটি পারেন্ট ইলেমেন্টের মধ্যে কতবার উপস্থিত হতে পারে। এই মানটি শুধুমাত্র বড় কিংবা শুধুমাত্র শূন্য থেকে শুরু করে বড় কাছাকাছি সংখ্যা। যদি আপনি কোনও সর্বজনীন সীমানা না সেট করতে চান, তবে "unbounded" শব্দটি ব্যবহার করুন। ডিফল্ট মান 1।
যদি পারেন্ট ইলেকট্রন schema ইলেকট্রন হয়, তবে এই অ্যাট্রিবিউটটি ব্যবহার করা যাবে না。
minOccurs
অপশনাল।element ইলেকট্রনটি পারেন্ট ইলেকট্রনে উপস্থিত হতে পারেনা এবং প্রত্যক্ষ সংখ্যা নির্দিষ্ট করে।এই মানটি শূন্য থেকে বেশি বা সমান হতে পারে।ডিফল্ট মান 1।
যদি পারেন্ট ইলেকট্রন schema ইলেকট্রন হয়, তবে এই অ্যাট্রিবিউটটি ব্যবহার করা যাবে না。
nillable
অপশনাল।এই ইলেকট্রনকে স্পষ্ট শূন্য মান দেওয়া যাক কি না বোঝায়।এই অনুষীলনটি ইলেকট্রন কনটেন্টে প্রয়োগ করা হয় এবং এটি ইলেকট্রনের অ্যাট্রিবিউট নয়।ডিফল্ট মান 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 অ্যাট্রিবিউটটির অন্যান্য ইলেকট্রনগুলি এই ইলেকট্রনের স্থানে উপস্থিত হবে।একাধিক ইলেকট্রনগুলি substitutionGroup অ্যাট্রিবিউটে এই ইলেকট্রনকে উল্লেখ করা যাবে।ডিফল্ট মান হল false。
block
অপশনাল।উত্তরসূরী টাইপ।block অ্যাট্রিবিউট ব্যবহার করে নির্দিষ্ট উত্তরসূরী টাইপটির ইলেকট্রনটিকে প্রতিস্থাপন করার জন্য বন্ধ করে রাখুন।এই মানটি #all বা একটি তালিকা হতে পারে, যেটি extension, restriction বা substitution এর উপসমূহ হতে পারে:
- extension - এই ইলেকট্রনটিকে প্রতিস্থাপন করার জন্য উত্তরসূরী ইলেকট্রনকে বন্ধ করে রাখুন。
- restriction - এই ইলেকট্রনটিকে প্রতিস্থাপন করার জন্য উত্তরসূরী ইলেকট্রনকে বন্ধ করে রাখুন。
- substitution - এই ইলেকট্রনটিকে প্রতিস্থাপন করার জন্য উত্তরসূরী ইলেকট্রনকে বন্ধ করে রাখুন。
- #all - এই ইলেকট্রনটিকে প্রতিস্থাপন করার জন্য সব উত্তরসূরী ইলেকট্রনকে বন্ধ করে রাখুন。
final
অপশনাল।element ইলেকট্রনের final অ্যাট্রিবিউটের ডিফল্ট মান সেট করুন।যদি পারেন্ট ইলেকট্রন schema ইলেকট্রন না হয়, তবে এই অ্যাট্রিবিউটটি ব্যবহার করা যাবে না।এই মানটি #all বা একটি তালিকা হতে পারে, যেটি extension বা restriction এর উপসমূহ হতে পারে:
- extension - প্রতিস্থাপন করার জন্য সম্প্রসারিত উত্তরসূরী এলিমেন্টকে ব্যবহার করা না হবে
- restriction - প্রতিস্থাপন করার জন্য নির্বাচিত উত্তরসূরী এলিমেন্টকে ব্যবহার করা না হবে
- #all - এই এলিমেন্টটিকে প্রতিস্থাপন করার জন্য সমস্ত উত্তরসূরী এলিমেন্টকে ব্যবহার করা না হবে
কোনো অতিরিক্ত এট্রিবিউট
অপশনাল।নোন-স্কেমা নামকরণের কোনো অন্য এট্রিবিউট নির্দিষ্ট করে
ইনস্ট্যান্স
উদাহরণ 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>