ساختار یک سند XML
Document Elements . المان ها (Elements) بمنزله ستون فقرات در سندهای XML مطرح و ساختار مورد نیاز جهت پردازش های لازم توسط برنامه های ذیربط و یا style-sheet را فراهم می نمایند. المان ها با استفاده از تگ مربوطه که نام یک المان را مشخص می نماید ، تعریف می گردنند. المان ها می توانند دارای نام و مقادیر مربوط به یک Attribute نیز باشند. خصایص فوق، اطلاعات اضافه تری را نسبت به محتویات یک سند مشخص خواهند کرد.تمامی المان ها می بایست دارای نام باشند. اسامی المان ها بر روی حروف بزرگ و کوچک حساس بوده و می بایست حتما" با یک حرف و یا Underscore آغاز گردند.اسامی المان ها می تواند شامل حروف، ارقام ، hypen,underscore و نقطه باشد. ( کاراکتر colon برای namespace ها رزو شده است ) . هر تگ محدوده مربوط به یک المان را مشخص می نماید. تگ شروع یک المان ، دارای گرامری مشابه زیر است :.
|
برای المان هائی که دارای Attribute نمی باشند ، تگ شروع بصورت زیر تعریف می گردد.
<elementName> |
تگ پایان ، انتهای یک المان را مشخص کرده و نمی تواند شامل Attribute باشد. تگ های فوق همواره دارای شکل عمومی زیر خواهند بود:
یک المان همواره محصور بین تگ های شروع و پایان است .
|
در مثال فوق المان Person دارای دو المان دیگر به نام FirstName و LastName است. المان FirstName شامل مقدار Ali و المان LastName شامل مقدار Irani است . از تگ های خالی ، در مواردیک المان مورد نظر دارای محتویاتی نباشد ، استفاده می گردد. برای نشان دادن این نوع تگ ها به دو صورت می توان رفتار نمود: در روش اول در ابتدا یک تگ شروع و بلافاصله یک تگ پایان قرار می گیرد.
|
در روش دوم ، می توان صرفا" از یک تگ خالی بصورت
ارتباط المان ها با یکدیگر : بمنظور تشریح المان های موجود در یک سند XML ، می توان از دو روش ساختار درختواره ای و یا ساختار فامیلی استفاده کرد . سند XML ، می بایست دارای یک المان ریشه و یا یک سند (Document) باشد. المان ریشه ، شامل سایر محتویات سند خواهد بود. کدهای زیر یک المان ریشه با نام Person را تعریف می کند.
|
یک سند XML ، نمی تواند شامل دو المان ریشه باشد. کدهای زیر یک سند XML نادرست را نشان می دهد .
|
در ساختار درختواره ای ، برگ ها بمنزله المان ها ئی بوده که خود شامل المان دیگری نمی باشند. ( نظیر برگ های موجود در یک شاخه درخت ) . عناصر برگ ، المان هائی هستند که صرفا" شامل متن و یا تهی می باشند ( گره خالی و یا گره های شامل متن ) . در مثال فوق مشخصات مربوط به هر مقاله در المان های برگ ذخیره می گردنند. در ساختار فامیلی ارتباطات بین المان ها از طریق : Parent,Child,Ancestor, Descendant , Sibiling تشریح می گردد.
برگشت به ساختار سند XML
Xml Decleration . بخش فوق در اکثر سندهای XML در اولین خط قرار خواهد گرفت . استفاده از تعریف فوق الزامی نبوده و در صورتیکه نیاز ، می بایست بعنوان اولین خط در سندهای XML قرار گیرد. بخش تعاریف در یک سند Xml از اجزای زیر تشکیل شده است :• شماره ورژن . شماره فوق همزمان با توسعه XML ، تغییر خواهد کرد. شماره نسخه فعلی XML ، یک است .
|
• تعریف نحوه رمزگشائی سند . بخش فوق اختیاری بوده و در صورت لزوم می بایست بلافاصله پس از شماره ورژن قرار گرفته و نشاندهنده یک Characterset درست باشد.
|
• بخشStandAlone.. استفاده از بخش فوق اختیاری بوده و در صورت لزوم می بایست در بخش انتهائی تعاریف سندهای XML. قرار گیرد. بخش فوق مشخص خواهد کرد که آیا سند مورد نظر از لحاظ منابع اطلاعاتی به منابع خارجی دیگری وابسته است یا خیر ؟ در صورتیکه مقدار آن Yes باشد بمنزله عدم دریافت منابع خارجی بوده و در غیر اینصورت بمنزله دریافت اطلاعات از منابع خارجی است .
برگشت به ساختار سند XML
Processing Instructions . از بخش فوق برای پاس دادن اطلاعات به سایر برنامه ها استفاده می گردد. دستورالعمل های پردازش الزامی به داشتن یک گرامر داخلی نداشته و ممکن است از کاراکترهای نشانه گذاری استفاده نمایند. بدین ترتیب امکان استفاده آنان در هر محل از سند و خارج از نشانه گذاری ها امکان پذیر خواهد بود . دستورات فوق ، می توانند در prolog ، بهمراه DTD و یا در بخش محتویات استفاده گردند . نحوه نمایش دستورالعمل های پردازش توسط Schema و یا پردازنده های DTD توضیح داده نخواهند شد. دستورالعمل های پردازشی می بایست با یک شناسه Target آغاز گردنند. این نوع شناسه ها نسبت به حروف بزرگ و کوچک حساس بوده و می بایست با یک حرف و یا یک UnderScore آغاز گردنند. کدهای زیر نمونه ای از دستورالعمل های پردازشی را نشان می دهد.دستورالعمل های فوق با <؟ خاتمه خواهند یافت .
Style Sheet Processing Instructions . شرکت مایکروسافت در هماهنگی با W3C اقدام به پیاده سازی یک دستورالعمل پردازشی با نام Xml-StyleSheet نموده است . دستورالعمل فوق می بایست در بخش prolog و قبل از المان ریشه قرار گیرد . نحوه بکارگیری دستور فوق به شکل زیر است :
type ، یک text/css ( در صورت لینک به فایل Cascading Style Sheet ) و یا text/XSL ( در صورت لینک به فایل XSLT ) است . Uri)Universal resource Identifier) آدرس محل استقرار stylesheet را مشخص کرده و با آدرس محل استقرار سند xml ارتباط خواهد داشت . کدهای زیر نمونه ای از دستورالعمل های پردازش ، برای یک Style-Sheet را نشان می دهد که با استفاده از یک CSS ایجاد شده است .
کدهای زیر نحوه بکارگیری و تعریف یک Style-Sheet را که بر اساس XSL ایجاد شده است را نشان می دهد.
برگشت به ساختار سند XML
DocType Declerations . بخش فوق ، امکان مشخص نمودن المان ریشه و DTD)Document Type Definition) را با مراجعه به یک فایل خارجی و یا از طریق تعاریف مستقیم ( داخلی ) برای یک سند XML فراهم می نماید . تعریف یک DOCType شامل موارد زیر است :• نام سند و یا المان ریشه ( وجود بخش فوق زمانیکه از تعاریف DocType استفاده می گردد ،الزامی است ) .
• شناسه های system و Public برای DTD بمنظور بررسی صحت ساختار سند.
• یک زیر مجموعه داخلی از تعاریف DTD . بخش فوق بین علائم [ و ] قرار خواهد گرفت .
در ساده ترین حالت تعریف DocType ، صرفا" المان ریشه معرفی می گردد.
اغلب سندهائی که از بخش تعاریف DocType استفاده می کنند به یک سند خارجی که شامل تعاریف مربوطه برای ایجاد DTD است، مراجعه خواهند کرد .
URIreference به فایلی که شامل تعاریف است ، اشاره می نماید.
PublicIdentifier شناسه ای مجزا را معرفی می نماید که برخی پارسر ها را قادر به استفاده از آن جهت مراجعه به DTD در مقابل URIreference باشند. دربخش تعاریف DocType ،می توان اقدام به درج تعاریف بصورت مستقیم کرد . در چنین مواردی از گرامر زیر استفاده می گردد:
declarations |
در صورتیکه تعاریف DTD با یک فایل خارجی مرتبط می گردنند ،از گرامر زیر استفاده می گردد.
declarations |
برگشت به ساختار سند XML
Comments .از بخش فوق بمنظور درج توضیحات لازم در رابطه با سند XML استفاده می گردد . در چنین مواردی پارسر، عملیات خاصی را بر روی آنها ( توضیحات ) انجام نخواهد داد. توضیحات با علامت--!> شروع و با علامت < -- خاتمه می یابد . عبارت زیر توضیحات دلخواهی را در یک سند XML درج می نماید .توضیحات می توانند در بخش prolog ، همراه DTD ، بعد از سند و یا در قسمت محتویات درج گردند. امکان استفاده از توضیحات بهمراه Attribute و یا درون تگ ها وجود ندارد . پارسر با مشاهده < -- از خاتمه توضیحات آگاه و عملیات عادی خود برای پردازش سند XML را دنبال ( پس از یک وقفه کوتاه همزمان با درج توضیحات ) خواهد کرد . با توجه به رسالت <-- ، ( خاتمه دهنده توضیحات ) نمی توان از آن در بخش های متفاوت عبارات مندرچ در قسمت توضیحات استفاده کرد . بجزء محدودیت فوق ، امکان استفاده از سایر کاراکترهای مجاز XML در بخش توضیحات ، میسر خواهد بود . ( مشابه بخش CDATA) .
برگشت به ساختار سند XML
NameSpace . با استفاده از XML namespace ، می توان این اطمینان را پیدا نمود که بین اسامی المان ها ی مشابه ( با مفا هیم متفاوت ) تداخل و تعارضی بوجود نخواهد آمد.برگشت به ساختار سند XML
Attribute . ویژگی فوق،امکان مشخص نمودن و تعریف اطلاعات تکمیلی در رابطه با یک المان را فراهم می نماید.از Attribute برای تعریف Property های یک المان نیز استفاده می گردد.Attribute ها را می بایست در تگ های شروع و یا خالی استفاده کرد . گرامراستفاده از Attribute بصورت زیر است :
|
یا |
|
Attribute ، می بایست دارای نام و مقدار باشد. یک المان نمی تواند دارای دو attribute باشد.
برگشت به ساختار سند XML
CDATA . در این بخش به پارسر اعلان می گردد که کدهای نشانه گذاری در کاراکترهای موجود در بخش CDATA وجود ندارد. بخش فوق اغلب مورد استفاده زبانهای اسکریپت و نمونه محتویات HTML,XML است . زمانیکه پارسر با ] CDATA] ! > مواجه می گردد ، هیچگونه تفسیری در رابطه کاراکترهای موجود در بخش فوق را انجام نخواهد داد . پارسر با مواجه شدن با <[[ ، عملیات عادی خود برای تفسیر را دنبال ادامه خواهد داد ( پس از یک توقف کوتاه و صرفا" ارائه گزارش ) . گرامراستفاده از CDATA بصورت زیر است .
,]]> |
برگشت به ساختار سند XML
Character and entity Refrences . امکان درج مستقیم کد حروف در یک سند XML نیز وجود دارد. ( در این حالت برای درج حروف از تایپ کاراکترها بصورت مستقیم استفاده نشده است ) . استفاده از ویژگی فوق در موارد زیر مفید خواهد بود :• امکان درج مستقیم کاراکترها در یک سند (بدلیل تفسیر آنان بعنوان کدهای نشانه گذاری) وجود نداشته باشد .
• امکان درج مستقیم کاراکترها بدلیل محدودیت دستگاه ورود اطلاعات وجود داشته باشد .
• امکان ارسال مطمئن کاراکترها از طریق پردازنده ئی با محدودیت کاراکترهای تک بایت وجود داشته باشد .
• یک رشته و یا بخشی از سند بصورت متناوب تکرار و می توان آن را بصورت مختصر استفاده کرد .
بمنظور ارائه محتویات دلخواه ، XML از تعدادی عبارت خاص که با علامت & شروع و با ; خاتمه می یابند، استفاده می نماید . مرجع کاراکترها ، امکانی را بمنظور درج کاراکترهای Unicode که توسط یک عدد مشخص می گردند ، فراهم می نماید . برای درج کدهای مربوطه می توان از مبنای ده و یا شانزده استفاده کرد . برای درج کد با استفاده از مبنای ده از; value#& و برای مبنای شانزده از ; x value#& استفاده می گردد. مثلا" برای درج علامت یورو در یک سند XML می توان از ; x20AC#& و یا ; z8364 #& استفاده کرد . جدول زیر پنج entity از قبل ساخته شده برای کاراکترهای استفاده شده در یک سند XML را نشان می دهد .
Entity |
Entity Reference |
Meaning |
lt |
< |
< ( less than) |
gt |
> |
> (greater than) |
amp |
& |
& (ampersand) |
apos |
' |
' (apostroph or single quote) |
quot |
" |
" (double quote) |
Textual content . در سندهای XML ، امکان استفاده از کدهای Unicode و مجموعه وسیعی از کاراکترها شامل حروف، ارقام و ... وجود دارد.
/خ