XML شکل عناصر

تعریف اور استعمال

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|لیسٹ کا ماخذ (#all|لیسٹ کا ماخذ (extension|restriction))))
final=(#all|لیسٹ کا ماخذ (#all|لیسٹ کا ماخذ (extension|restriction))))
کسی خاص خصوصیت کا استعمال نہ کریں
>
annotation?,((simpleType|complexType)?,(unique|key|keyref)*))
</element>

(? علامت element عنصر میں اعلان کی گئی ہے، جس میں یہ عنصر کبھی نہیں آ سکتا یا ایک بار آ سکتا، * علامت کو عنصر کا اعلان کیا گیا ہے، جس میں یہ عنصر کبھی نہیں آ سکتا یا کتنا بھی بار آ سکتا ہے)۔

کیفیت

id

اختیاری۔عنصر کیلئے منفرد آئی ڈی مقرر کریں۔

name

اختیاری۔عنصر کا نام مقرر کریں۔ اگر والد عنصر schema عنصر ہو تو اس کا مقصد ضروری ہوگا۔

ref

اختیاری۔دوسرے عنصر کی مراجعہ کریں۔ref کا مقصد ایک نامسپاچ نام پیش کریں۔ اگر والد عنصر schema عنصر ہو تو اس کا استعمال نہیں کیا جاسکتا۔

type

اختیاری۔بنیادی نوعیت کا نام مقرر کریں یا simpleType یا complexType عنصر کا نام مقرر کریں۔

substitutionGroup

اختیاری۔اس عنصر کیلئے استعضاف کے لیے استعمال کی جاسکتی ہوئی عنصر کا نام مقرر کریں۔ اس عنصر کو ویسے ہی نوعیت رکھنا چاہئیے یا اس نوعیت سے نکلی نوعیت رکھنا چاہئیے۔

اگر والد عنصر schema عنصر نہیں ہو تو اس کا استعمال نہیں کیا جاسکتا۔

default

اختیاری۔عنصر کیلئے نمونہ قیمت مقرر کریں (صرف جب عنصر کا مواد سادہ نوعیت یا textOnly ہو)۔

fixed

اختیاری۔عنصر کیلئے مستقل قیمت مقرر کریں (صرف جب عنصر کا مواد سادہ نوعیت یا textOnly ہو)۔

روکھتار

اختیاری۔ اس عنصر کا روکھتار، یقینی طور پر یقینی کیا جائے گا، اس کا مراد یہ ہے کہ اس کا روکھتار اس پرزہ کا 'schema' عنصر کا 'elementFormDefault' پرزہ کا مراد رکھتا ہے۔ اس کا مراد کسی سلسلے کا شمار نہیں، بلکہ اس سلسلے میں 'qualified' یا 'unqualified' کا شمار رکھتا ہے۔

اگر والد عنصر 'schema' عنصر ہے تو اس پرزہ کو استعمال نہ کیا جاسکتا ہے۔

  • اگر اس کا مراد 'unqualified' ہے تو اس عنصر کو ناامسپاسم نامی سیکس کا پیش نہ کیا جائے گا۔
  • اگر اس کا مراد 'qualified' ہے تو اس عنصر کو ناامسپاسم نامی سیکس کا پیش کیا جائے گا۔

maxOccurs

اختیاری۔ اس پرزہ اس بات کو کیا دکھاتا ہے کہ 'element' عنصر والد عنصر میں کتنی بار آسکتا ہے اور اس کا مراد یہ ہے کہ اس کا مراد صفر یا زیادہ سے صفر کا بند کی تعداد کا معنا نہیں رکھتا، بلکہ اس کا مراد صفر یا زیادہ سے صفر کا بند کی تعداد کا معنا رکھتا ہے۔ اگر آپ کو زیادہ سے صفر کا بند کی کسی حد نہیں رکھنا چاہئیں تو اس کا مراد یہ ہے کہ اس پرزہ کا مراد 'unbounded' سلسلے کا معنا رکھتا ہے۔ کیونکہ اس کا معادر یقینی طور پر یقینی کیا گیا ہے، اس لئے اس کا مراد یہ نہیں کہ اس پرزہ کا استعمال کیا جاسکتا ہے۔

اگر والد عنصر 'schema' عنصر ہے تو اس پرزہ کو استعمال نہ کیا جاسکتا ہے۔

minOccurs

اختیاری۔ اس پرزہ اس بات کو کیا دکھاتا ہے کہ 'element' عنصر والد عنصر میں کتنی بار آسکتا ہے اور اس کا مراد یہ ہے کہ اس کا مراد صفر یا زیادہ سے صفر کا بند کی تعداد کا معنا نہیں رکھتا، بلکہ اس کا مراد صفر یا زیادہ سے صفر کا بند کی تعداد کا معنا رکھتا ہے۔ کیونکہ اس کا معادر یقینی طور پر یقینی کیا گیا ہے، اس لئے اس کا مراد یہ نہیں کہ اس پرزہ کا استعمال کیا جاسکتا ہے۔

اگر والد عنصر 'schema' عنصر ہے تو اس پرزہ کو استعمال نہ کیا جاسکتا ہے۔

nillable

اختیاری۔ یہ پرزہ اس بات کو کیا دکھاتا ہے کہ آیا اس عنصر کو صفر کا بند (nil) تعین کیا جاسکتا ہے یا نہیں۔ یہ پرزہ عنصر کی محتوائی کے لئے ہے اور اس پرزہ کا استعمال نہیں کیا جاسکتا۔ کیونکہ اس کا معادر یقینی طور پر یقینی کیا گیا ہے، اس لئے اس کا مراد یہ نہیں کہ اس پرزہ کا استعمال کیا جاسکتا ہے۔

اگر 'nillable' یقینی طور پر یقینی کیا جائے تو اس کا معنا یہ ہوگا کہ اس عنصر کا نمونہ دستاویز اس کا 'nil' پرزہ یقینی طور پر یقینی کرسکتا ہے۔ 'nil' پرزہ نمونہ دستاویز کا ایک حصہ ہے جو XML آرکیٹیکچر کی ناامسپاسم نامی سیکس میں شامل ہے۔

مثلاً اگلایا بند میں ایک عنصر کا تعریف کیا جائے گا اور اس کا 'nillable' پرزہ یقینی طور پر یقینی کیا جائے گا۔

<xs:element name="myDate" type="xs:date" nillable="true"/>

اگلایا بند میں اس عنصر کا استعمال کیا جائے گا اور اس کا مراد صفر کا بند (nil پرزہ یقینی طور پر یقینی کیا جائے گا)۔

<myDate xsi:nil="true"></myDate>

عام

اختیاری۔ یہ عنصر اس بات کو کیا دکھاتا ہے کہ اس عنصر کو نمونہ دستاویز میں استعمال کیا جاسکتا ہے یا نہیں۔ اگر اس کا مراد یہ ہے کہ اس عنصر کو نمونہ دستاویز میں استعمال نہ کیا جاسکتا ہے تو اس کا مراد یہ ہے کہ اس عنصر کو نمونہ دستاویز میں دکھایا نہ جائے اور اس کی جگہ پر substitutionGroup پرزہ کا استعمال کیا جائے جس میں اس عنصر کی限定 نام (QName) کا استعمال کیا جائے گا۔ متعدد عناصر اس پرزہ میں اس عنصر کا استعمال کرسکتے ہیں۔ کیونکہ اس کا معاد驻ک بولایا گیا ہے، اس لئے اس کا مراد یہ نہیں کہ اس عنصر کو نمونہ دستاویز میں استعمال نہ کیا جاسکتا ہے۔

بلاک

اختیاری۔ ترسیل شدہ نوعیت۔ بلاک پرزہ اس کا معنا ہے کہ کسی ترسیل شدہ نوعیت کی کسی عنصر کو اس عنصر کی جگہ پر استعمال نہ کیا جاسکتا ہے۔ اس کا مراد کسی سلسلے کا شمار نہیں، بلکہ اس سلسلے میں 'extension'، 'restriction' یا 'substitution' کی ذیلی تقسیم ہوتی ہے:

  • ترسیل - روکھتار کیوں کہ ترسیل سے ابھرنے والی عناصر اس عنصر کی جگہ پر استعمال نہ کئے جاسکیں。
  • 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 ہے جس میں complex type "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>