عنوان
|
نويسنده
|
مشاهده
|
تعداد
آراء |
امتياز
|
ساختار يک سند XML |
مديريت وب |
13828 |
10 |
3.8 |
با توجه به جایگاه داده در عصر حاضر و لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و خدمات خود را از طریق سایت www.fabak.ir به مخاطبان محترم عرضه می نماید
 |
ساختار يک سند XML
ساختار يک سند XML
شکل زير ساختار يک سند
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 version="1.0" encoding="UTF-8"?> |
<? 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 و مجموعه وسيعی از
کاراکترها شامل حروف، ارقام و ... وجود دارد.