شکل زير ساختار يک سند XML را نشان مي دهد . بر روي بخش هاي رنگي کليک نموده تا اطلاعات تکميلي در رابطه با هر يک را مشاهده نمائيد .
Prolog ، به اطلاعات قبل از تگ آغاز سند و يا المان ريشه ، اطلاق مي گردد . اطلاعات فوق مشخصات و خصايصي را مشخص مي نمايد که به تمام سند نسبت داده خواهد شد . اطلاعاتي نظير Character Encoding ، ساختار سند و يا Style Sheets
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="mystyle.xsl"?> <!DOCTYPE catalog SYSTEM "catalog.dtd"> <!--Date publish 1382 - 1- 14 --> |
برگشت به ساختار سند XML
Document Elements . المان ها (Elements) بمنزله ستون فقرات در سندهاي XML مطرح و ساختار مورد نياز جهت پردازش هاي لازم توسط برنامه هاي ذيربط و يا style-sheet را فراهم مي نمايند. المان ها با استفاده از تگ مربوطه که نام يک المان را مشخص مي نمايد ، تعريف مي گردنند. المان ها مي توانند داراي نام و مقادير مربوط به يک Attribute نيز باشند. خصايص فوق، اطلاعات اضافه تري را نسبت به محتويات يک سند مشخص خواهند کرد.تمامي المان ها مي بايست داراي نام باشند. اسامي المان ها بر روي حروف بزرگ و کوچک حساس بوده و مي بايست حتما" با يک حرف و يا Underscore آغاز گردند.اسامي المان ها مي تواند شامل حروف، ارقام ، hypen,underscore و نقطه باشد. ( کاراکتر colon براي namespace ها رزو شده است ) . هر تگ محدوده مربوط به يک المان را مشخص مي نمايد. تگ شروع يک المان ، داراي گرامري مشابه زير است :.
<elementName att1Name="att1Value" att2Name="att2Value"...> |
براي المان هائي که داراي Attribute نمي باشند ، تگ شروع بصورت زير تعريف مي گردد.
تگ پايان ، انتهاي يک المان را مشخص کرده و نمي تواند شامل Attribute باشد. تگ هاي فوق همواره داراي شکل عمومي زير خواهند بود:
يک المان همواره محصور بين تگ هاي شروع و پايان است .
<person> <FirstName>Ali</FirstName> <LastName>Irani</LastName> </person> |
در مثال فوق المان Person داراي دو المان ديگر به نام FirstName و LastName است. المان FirstName شامل مقدار Ali و المان LastName شامل مقدار Irani است . از تگ هاي خالي ، در موارديک المان مورد نظر داراي محتوياتي نباشد ، استفاده مي گردد. براي نشان دادن اين نوع تگ ها به دو صورت مي توان رفتار نمود: در روش اول در ابتدا يک تگ شروع و بلافاصله يک تگ پايان قرار مي گيرد.
در روش دوم ، مي توان صرفا" از يک تگ خالي بصورت <Emptytag/> استفاده کرد .
ارتباط المان ها با يکديگر : بمنظور تشريح المان هاي موجود در يک سند XML ، مي توان از دو روش ساختار درختواره اي و يا ساختار فاميلي استفاده کرد . سند XML ، مي بايست داراي يک المان ريشه و يا يک سند (Document) باشد. المان ريشه ، شامل ساير محتويات سند خواهد بود. کدهاي زير يک المان ريشه با نام Person را تعريف مي کند.
<person> <FirstName>Ali</FirstName> <LastName>Irani</LastName> </person> |
يک سند XML ، نمي تواند شامل دو المان ريشه باشد. کدهاي زير يک سند XML نادرست را نشان مي دهد .
<FirstName>Ali</FirstName> <LastName>Irani</LastName> |
در ساختار درختواره اي ، برگ ها بمنزله المان ها ئي بوده که خود شامل المان ديگري نمي باشند. ( نظير برگ هاي موجود در يک شاخه درخت ) . عناصر برگ ، المان هائي هستند که صرفا" شامل متن و يا تهي مي باشند ( گره خالي و يا گره هاي شامل متن ) . در مثال فوق مشخصات مربوط به هر مقاله در المان هاي برگ ذخيره مي گردنند. در ساختار فاميلي ارتباطات بين المان ها از طريق : Parent,Child,Ancestor, Descendant , Sibiling تشريح مي گردد.
برگشت به ساختار سند XML
Xml Decleration . بخش فوق در اکثر سندهاي XML در اولين خط قرار خواهد گرفت . استفاده از تعريف فوق الزامي نبوده و در صورتيکه نياز ، مي بايست بعنوان اولين خط در سندهاي XML قرار گيرد. بخش تعاريف در يک سند Xml از اجزاي زير تشکيل شده است :
• شماره ورژن . شماره فوق همزمان با توسعه XML ، تغيير خواهد کرد. شماره نسخه فعلي XML ، يک است .
• تعريف نحوه رمزگشائي سند . بخش فوق اختياري بوده و در صورت لزوم مي بايست بلافاصله پس از شماره ورژن قرار گرفته و نشاندهنده يک Characterset درست باشد.
<?xml version="1.0" encoding="UTF-8"?> |
• بخشStandAlone.. استفاده از بخش فوق اختياري بوده و در صورت لزوم مي بايست در بخش انتهائي تعاريف سندهاي XML. قرار گيرد. بخش فوق مشخص خواهد کرد که آيا سند مورد نظر از لحاظ منابع اطلاعاتي به منابع خارجي ديگري وابسته است يا خير ؟ در صورتيکه مقدار آن Yes باشد بمنزله عدم دريافت منابع خارجي بوده و در غير اينصورت بمنزله دريافت اطلاعات از منابع خارجي است .
<? xml version="1.0" encoding="UTF-8" standalone="yes" ?> |
برگشت به ساختار سند XML
Processing Instructions . از بخش فوق براي پاس دادن اطلاعات به ساير برنامه ها استفاده مي گردد. دستورالعمل هاي پردازش الزامي به داشتن يک گرامر داخلي نداشته و ممکن است از کاراکترهاي نشانه گذاري استفاده نمايند. بدين ترتيب امکان استفاده آنان در هر محل از سند و خارج از نشانه گذاري ها امکان پذير خواهد بود . دستورات فوق ، مي توانند در prolog ، بهمراه DTD و يا در بخش محتويات استفاده گردند . نحوه نمايش دستورالعمل هاي پردازش توسط Schema و يا پردازنده هاي DTD توضيح داده نخواهند شد. دستورالعمل هاي پردازشي مي بايست با يک شناسه Target آغاز گردنند. اين نوع شناسه ها نسبت به حروف بزرگ و کوچک حساس بوده و مي بايست با يک حرف و يا يک UnderScore آغاز گردنند. کدهاي زير نمونه اي از دستورالعمل هاي پردازشي را نشان مي دهد.
<?xml-stylesheet type="text/xsl" href="mystyle.xsl"?> |
دستورالعمل هاي فوق با <؟ خاتمه خواهند يافت .
Style Sheet Processing Instructions . شرکت مايکروسافت در هماهنگي با W3C اقدام به پياده سازي يک دستورالعمل پردازشي با نام Xml-StyleSheet نموده است . دستورالعمل فوق مي بايست در بخش prolog و قبل از المان ريشه قرار گيرد . نحوه بکارگيري دستور فوق به شکل زير است :
<?xml-stylesheet type="type" href="uri" ?> |
type ، يک text/css ( در صورت لينک به فايل Cascading Style Sheet ) و يا text/XSL ( در صورت لينک به فايل XSLT ) است . Uri)Universal resource Identifier) آدرس محل استقرار stylesheet را مشخص کرده و با آدرس محل استقرار سند xml ارتباط خواهد داشت . کدهاي زير نمونه اي از دستورالعمل هاي پردازش ، براي يک Style-Sheet را نشان مي دهد که با استفاده از يک CSS ايجاد شده است .
<? xml-stylesheet href="/style.css" type="text/css" title="default stylesheet" ?> |
کدهاي زير نحوه بکارگيري و تعريف يک Style-Sheet را که بر اساس XSL ايجاد شده است را نشان مي دهد.
<? xml-stylesheet href="/style.xsl" type="text/xsl" title="default stylesheet" ?> |
برگشت به ساختار سند XML
DocType Declerations . بخش فوق ، امکان مشخص نمودن المان ريشه و DTD)Document Type Definition) را با مراجعه به يک فايل خارجي و يا از طريق تعاريف مستقيم ( داخلي ) براي يک سند XML فراهم مي نمايد . تعريف يک DOCType شامل موارد زير است :
• نام سند و يا المان ريشه ( وجود بخش فوق زمانيکه از تعاريف DocType استفاده مي گردد ،الزامي است ) .
• شناسه هاي system و Public براي DTD بمنظور بررسي صحت ساختار سند.
• يک زير مجموعه داخلي از تعاريف DTD . بخش فوق بين علائم [ و ] قرار خواهد گرفت .
در ساده ترين حالت تعريف DocType ، صرفا" المان ريشه معرفي مي گردد.
اغلب سندهائي که از بخش تعاريف DocType استفاده مي کنند به يک سند خارجي که شامل تعاريف مربوطه براي ايجاد DTD است، مراجعه خواهند کرد .
<!DOCTYPE rootElement SYSTEM "URIreference"> |
URIreference به فايلي که شامل تعاريف است ، اشاره مي نمايد.
<!DOCTYPE rootElement PUBLIC "PublicIdentifier" "URIreference"> |
PublicIdentifier شناسه اي مجزا را معرفي مي نمايد که برخي پارسر ها را قادر به استفاده از آن جهت مراجعه به DTD در مقابل URIreference باشند. دربخش تعاريف DocType ،مي توان اقدام به درج تعاريف بصورت مستقيم کرد . در چنين مواردي از گرامر زير استفاده مي گردد:
<!DOCTYPE rootElement [ declarations ]> |
در صورتيکه تعاريف DTD با يک فايل خارجي مرتبط مي گردنند ،از گرامر زير استفاده مي گردد.
<!DOCTYPE rootElement SYSTEM "URIreference"[ declarations ]> |
برگشت به ساختار سند XML
Comments .از بخش فوق بمنظور درج توضيحات لازم در رابطه با سند XML استفاده مي گردد . در چنين مواردي پارسر، عمليات خاصي را بر روي آنها ( توضيحات ) انجام نخواهد داد. توضيحات با علامت--!> شروع و با علامت < -- خاتمه مي يابد . عبارت زير توضيحات دلخواهي را در يک سند XML درج مي نمايد .
<!--catalog last updated 2000-11-01--> |
توضيحات مي توانند در بخش prolog ، همراه DTD ، بعد از سند و يا در قسمت محتويات درج گردند. امکان استفاده از توضيحات بهمراه Attribute و يا درون تگ ها وجود ندارد . پارسر با مشاهده < -- از خاتمه توضيحات آگاه و عمليات عادي خود براي پردازش سند XML را دنبال ( پس از يک وقفه کوتاه همزمان با درج توضيحات ) خواهد کرد . با توجه به رسالت <-- ، ( خاتمه دهنده توضيحات ) نمي توان از آن در بخش هاي متفاوت عبارات مندرچ در قسمت توضيحات استفاده کرد . بجزء محدوديت فوق ، امکان استفاده از ساير کاراکترهاي مجاز XML در بخش توضيحات ، ميسر خواهد بود . ( مشابه بخش CDATA) .
برگشت به ساختار سند XML
NameSpace . با استفاده از XML namespace ، مي توان اين اطمينان را پيدا نمود که بين اسامي المان ها ي مشابه ( با مفا هيم متفاوت ) تداخل و تعارضي بوجود نخواهد آمد.
برگشت به ساختار سند XML
Attribute . ويژگي فوق،امکان مشخص نمودن و تعريف اطلاعات تکميلي در رابطه با يک المان را فراهم مي نمايد.از Attribute براي تعريف Property هاي يک المان نيز استفاده مي گردد.Attribute ها را مي بايست در تگ هاي شروع و يا خالي استفاده کرد . گرامراستفاده از Attribute بصورت زير است :
<elementName att1Name="att1Value" att2Name="att2Value"...> |
يا |
<elementName att1Name="att1Value" att2Name="att2Value".../> |
Attribute ، مي بايست داراي نام و مقدار باشد. يک المان نمي تواند داراي دو attribute باشد.
برگشت به ساختار سند XML
CDATA . در اين بخش به پارسر اعلان مي گردد که کدهاي نشانه گذاري در کاراکترهاي موجود در بخش CDATA وجود ندارد. بخش فوق اغلب مورد استفاده زبانهاي اسکريپت و نمونه محتويات HTML,XML است . زمانيکه پارسر با ] CDATA] ! > مواجه مي گردد ، هيچگونه تفسيري در رابطه کاراکترهاي موجود در بخش فوق را انجام نخواهد داد . پارسر با مواجه شدن با <[[ ، عمليات عادي خود براي تفسير را دنبال ادامه خواهد داد ( پس از يک توقف کوتاه و صرفا" ارائه گزارش ) . گرامراستفاده از CDATA بصورت زير است .
<![CDATA[An in-depth look at creating applications with XML, using <, >,]]> |
برگشت به ساختار سند 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 و مجموعه وسيعي از کاراکترها شامل حروف، ارقام و ... وجود دارد.
/خ