اموزشxml -تا اخرین بخش
مقدمه و معرفی
سر فصل ها:
مقدمه و اموزش xml :
مقدمه و معرفیxml- تدوین شد
کاربرد و استفاده ازxml- تدوین شد
معرفی نرم افزار های ویرایشگرxml - تدوین شد
ساختار دستوریxml:
ساختار دستوریsyntaxدرxml- تدوین شد
ساختار درختی فایل ها در xml- تدوین شد
المنت هایxml- تدوین شد
خواص تگ های XML- تدوین شد
اعتبار سنجی اسناد درxml- تدوین شد
مشاهدا و قالب بندی فایل ها:
مشاهده فایل های xmlدر مرورگر-تدوین شد
قالب بندی فایل های XML با CSS-تدوین شد
قالب بندی فایل های XML با XSLT-تدوین شد
جاوا اسکریپت و xml:
کار با شی xml HTTP REQUEST-تدوین شد
مفسر xml در جاوا اسکریپت( parser )-تدوین شد
مفهوم و نحوه ی کار با مدل XML DOM-تدوین شد
وارد کردن اطلاعات یک فایلXMLدرHTML-تدوین شد
ایجاد یک برنامه باXML-تدوین شد
تکنیکE4Xدر XML-تدوین شد
مباحث پیشرفته درXML:
Namespaceها درxml-تدوین شد
CDATA در XML(قرارد دادن کد های غیرXMLو توضیحات)-تدوین شد
encodingدر فایل هایxmlتدوین شد
نگهداری فایل هایxmlدر سرور-تدوین شد
کار با مدلxml dom(پیشرفته)-تدوین شد
استفاده ازxmlدر زندگی!-تدوین شد
سایر تکنولوژی های xml-تدوین شد
xmlچیست؟
XML مخفف عبارت Xtensible Markup Language ، به معنای زبان فرا متنی قابل توسعه است .
زبان فرامتنی در اصطلاح به زبانی گفته می شود که با استفاده از یکسری علام و یا نشانه ها ، به کاربر و یا هر برنامه دیگری که اطلاعات به آن وارد می شود ، می فهماند که اطلاعات را چگونه ویرایش و یا استفاده نماید .
برای مثال همانطور که می دانید ، HTML یک زبان فرا متنی است . در HTML نشانه هایی به نام تگ داریم . هنگامی که شما یک متن را بین تگ باز و بسته < b > < /b > قرار دهید ، مرورگر متوجه می شود که آن متن را باید به صورتتوپر نمایش دهد . XML هم همانند HTML ، یک زبان فرامتنی است و در آن از تگ ها و نشانه هایی برای دسته بندی و انتفال اطلاعات استفاده می شود .
XML با هدف نگهداری و انتقال اطلاعات طراحی شده است و نه برای نمایش آنها .
تگ ها و نشانه های XML از قبل تعریف نشده اند ، بلکه کاربر بر حسب نیاز و کاری که می خواهد انجام دهد ، تگ های دلخواه خود را ایجاد می کند .
به همین دلیل به XML یک زبان قابل توسعه می گویند ، چون شما می توانید هر چه قدر که نیاز داشته باشید ، برای خود تگ های جدید ایجاد نمایید .
تفاوت xml , html
XML به هیچ عنوان جایگزین HTML نیست ، بلکه هر دو دارای ساختار فرامتنی هستند و فقط از این جهت شبیه هم می باشند .
XML و HTML هر کدام با اهداف متفاوتی طراحی شده اند :
- XML برای نگهداری و انتقال اطلاعات طراحی شده است و تمرکز آن بر این است که اطلاعات چیست و چگونه باید نگهداری شود
- HTML برای نمایش اطلاعات در خروجی طراحی شده است و تمرکز آن بر چگونگی و ظاهر نمایش اطلاعات است .
قبل از مطالعه xmlچه باید بدانید؟
قبل از اینکه به مطالعه بخش آموزش XML بپردازید ، باید با زبان های زیر آشنایی و تسلط کافی داشته باشید .
چنانچه با این زبان ها آشنا نیستید ، به بخش های آموزشی آنها در سایت بروید :
- HTML
- جاوا اسکریپت
xmlکار خاصی انجام نمیدهد!
شاید درک این مسئله کمی سخت باشد ، اما XML کار خاصی انجام نمی دهد . XML برای دسته بندی ، نگهداری و انتقال اطلاعات طراحی شده است و خودش خروجی بر روی صفحه ندارد .
در مثال زیر یک نمونه ساده از کد XML را برای درک بهتر این زبان نمایش داده ایم . در این قطعه کد زیر Ali به Hamed یک نامه با عنوان و متن مورد نظر خود ارسال کرده است . به کد دقت کنید :
<note> <to>Hamed</to> <from>Ali</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
به نکات زیر توجه نمایید :
- تمامی تگ هایی که در قطعه کد بالا قرار داده شده اند ، توسط طراح نامه تعیین شده و هیچ کدام قبلا در زبان XML وجود نداشته اند .
- هر تگی که باز شده است ، همانند تگ ها در HTML ، توسط یک تگ متناظر بسته شده است . برای مثال < to > < /to > .
- قطعه کد بالا ، فقط برای نگهداری و یا ارسال یک قطعه کد استفاده شده است و خودش به تنهایی کار خاصی انجام نداده و خروجی بر روی صفحه ندارد . برای نمایش آن باید قطعه کدی به زبان HTML یا مثلا ASP.Net بنویسید .
به وسیلهxml شما تگ های خودتان رو ساخته و استفاده کنید:
همانطور که قیلا گفتیم ، XML دارای تگ های از پیش تعریف شده نیست ، برخلاف HTML که تمام تگ های آن از قبل تعیین شده اند .
کاربر برای استفاده از XML به راحتی می تواند تگ های مورد نظر خود را ایجاد و استفاده نمایید . برای مثال در قطعه کد نمونه ، تگ های < to > < /to > یا < from > < /form > ، توسط طراح تعیین و ابداع شده اند .
فقط نکته مهم در تعیین و استفاده از تگ های XML ، یکسان بودن تمام تگ ابندایی و انتهایی و قرار گیری صحیح آنهاست .
نتیجه گیری xml:
XML یک زبان باز و قابل توسعه برای نگهداری و انتقال اطلاعات است . هر کاربر در این زبان می تواند تگ های دلخواه خود را ابداع و استفاده نماید .
بخش دوم:کاربرد و استفاده ازxml
برای تایپ متون و تهیه عکس ها زحمات بسیاری کشیده شده است پس حتما از دکمه Like استفاده کنید!
XML در حیطه های مختلف در توسعه وب به کار می رود . به طور معمول از این زبان برای نگهداری و یا انتقال اطلاعات استفاده می شود : در این بخش قصد داریم تا شما را با مهترین کاربردهای زبان XML آشنا سازیم .
xmlداده ها را از htmlجدا می کند:
اگر شما نیاز داشته باشید تا اطلاعات دینامیک را در یک سند HTML نمایش دهید ، آپدیت کردن و به روز رسانی آن اطلاعات هر زمان که تغییر کند ، مستلزم کار و وقت زیادی است .
به وسیله XML ، شما می توانید اطلاعات را در یک فایل جداگانه XML ذخیره نمایید . سپس توجه و تمرکز خود را در HTML بر روی ظاهر و نحوه نمایش اطلاعات قرار داده و هر بار که اطلاعات تغییر کرد ، فایل XML را مستقل از فایل HTML آپدیت می کنید .
با حجم کمی از کدنویسی به زبان جاوا اسکریپت ، می توانید به راحتی اطلاعات فایل XML را خوانده و در فایل HTML نمایش دهید .
xmlاشتراک گذاری فایل ها را بسیار راحت می کند:
در دنیای واقعی ، کامپیوترها و سرور ها اطلاعات را در فرمت های گوناگون نگهداری می کنند .
اما XML ، اطلاعات را به صورت متن ساده و بدون قالب بندی خاصی در خود نگهداری می کند ، که باعث می شود تا مستقل از نرم افزار و سخت افزار عمل نماید .
به همین دلیل می توان اطلاعاتی را که بین سیستم های مختلف به اشتراک گذاشته می شود ، همه به صورت XML باشند ، تا به عنوان یک زبان مشترک و ساده بین آنها عمل نماید .
xml انتقال اطلاعات را بین سیستم ها راحت می کند:
بر روی اینترنت سرورها با سیستم عامل ها و نرم افزارهای مختلف و گاها ناسازگار وجود دارند .
انتقال اطلاعات به زبان ساده و مشترک XML ، می تواند توسط هر گیرنده یا فرستنده ای بر روی وب به راحتی خوانده و ترجمه شود .
xml ارتقا به نرم افزار و سخت افزار بالاتر را راحت می کند:
ارتقا به نرم افزار یا سخت افزار بالاتر ، کاری بسیار وقت گیر بوده و باید مقدار زیادی اطلاعات جابه جا شوند . در این حتی ممکن است ، اطلاعات ناسازگار از بین بروند .
اما اگر اطلاعات را به زبان XML نگهداری کنیم ، فارغ از سخت افزار و نرم افزار بوده و در ارتقاء بسار راحت عمل کرده و هم اینکه به صورت متن ساده است .
xml برای طراحی ابزار ها و زبان های جدید نیز به کار میبرد:
زبان ها و سرویس های جدیدی وجود دارد که به وسیله زبان XML و بر مبنای آن ایجاد شده اند . برخی از این سرویس ها عبارتند از :
- سرویس RSS
- سرویس WSDL
- سرویس SOAP
اطلاعات راجع به سرویس های فوق و سایر سرویس های ایجاد شده بر مبنای XML (به زودی)
بخش سوم:آشنایی با ویرایشگرهای XML
برای تایپ متون و تهیه عکس ها زحمات بسیاری کشیده شده است پس حتما از دکمه Like استفاده کنید!
مقدمه:
اگر می خواهید به صورت حرفه ای با XML کار کنید ، بایستی از یک ویرایشگر حرفه ای XML استفاده نمایید .
XML فقط از متن ( Text ) تشکیل شده است :
همانطور که در بخش آموزش XML متوجه شدید ، این زبان فقط از کاراکترهای متنی ( Text ) تشکیل شده است .
بنابراین می توانید فایل های XML را با نرم افزارهای واژه پرداز ساده مثل Notepad ویندوز نیز بنویسید . اما اگر بخواهید پروژه های واقعی و سنگین تولید نمایید ، این نرم افزارها به کار شما نخواهند آمد .
چرا که قابلیت شناسایی تگ های XML را نداشته و امکان مرتب سازی به صورت اتوماتیک در آنها وجود ندارد . همچنین نمی توانند در نوشتن کد به شما کمک کرده یا ایرادهای کدنویسی تان را به شما اعلام نماید .
یک ویرایشگر خوب XML چه ویژگی هایی باید داشته باشد :
XML در تکنولوژی های زیادی مورد استفاده قرار می گیرد . همانطور که در بخش های دیگر ذکر کردیم ، از این تکنولوژی ها می توان در نوشتن برنامه های rss ,wsdl, SOAP، و .... استفاده نمود .
یک ویرایشگر خوب می تواند شما را در نوشتن کدهای XML یاری دهد . به وسیله آن می توانید ایرادهای احتمای کدها را شناسایی و از بین برده و یا اینکه سند خود را بر مبنای یک سند DTD اعتبار سنجی کنید.
یک ویرایشگر کدهای XML باید ویژگی های زیر را داشته باشد :
- تگ های انتهایی را به صورت اتواتیک به تگ ابتدای ایجاد شده اضافه نماید .
- شما را مجبور سازد تا کد XML معتبر و بدون ایراد بنویسید .
- سند XML شما را بر طبق مشخصات DTD اعتبار سنجی کند .
- بهتر است کدها را به صورت رنگی نمایش داده تا خوانایی و زیبایی کد بالاتر رود .
معرفی یک ویرایشگر خوب XML :
برنامه ویژوال استودیو امکانات مناسبی را برای کار با فایل های XML در اختیار کاربران قرار می دهد . اما یک نرم افزار تخصصی XML به نام XmlSpy وجود دارد که دارای ویژگی منحصر به فرد و بالایی برای کار با XML است . برخی از این ویژگی ها عبارتند از :
می تونید از توی سایت برنامه اون را دانلود کنید این برنامه خیلی بهتر ویژوال استودیواست.اگر دوست داشتین اون رو هم از لینک زیر دانلود کنید.
- در دو نسخه 32 و 64 بیتی موجود است .
- کدهای XML را به صورت رنگی و خوانا نمایش می دهد .
- دارای قابلیت اصلاح خطاها و خطایاب اتوماتیک است .
- دارای امکان اتصال و ارسال اطلاعات به پایگاه داده است .
- از HTML 5 و CSS 3 پشتیبانی می کند .
- دارای ویرایشگرهایی مجزا برای کار با SOAP ، XQuery ، XSLT و ... است .
- دارای قالب ها و نمونه های آماده کدهای XML است .
این نرم افزار اپن سورس بوده و به راحتی می توانید آن را دانلود نمایید .ویژوال استودیو
ولی من شخصا یک برنامه ساده و کاربردی که از همه زبان ها میشه استفاده کرد رو معرفی می کنم و اون رو اگه ندارید دانلود کنیدnotepad++
بخش چهارم:ساختار دستوریsyntaxدرxml
مقدمه:
در این بخش قصد داریم تا شما را با ساختار دستوری و Syntax نوشتن زبان XML آشنا سازیم .
تمامی تگ های XML بایستی یک تگ انتهایی داشته باشند :
اگر HTMLبلد باشید ، برخی تگ ها را می توان بدون داشتن تگ انتهایی بست . مثل تگ < img > یا تگ < br/ > .
< img src="Pic.gif" /> مثال < br/ >
اما در XML ، شما مجاز نیستید تگی را بدون تگ پایانی تعریف کنید و حتما هر تگ باید یک تگ متناظر پایانی داشته باشد .
< to > Hamed < /to > < from > Ali < /from > کد صحیح
نکته : تنها تگی در XML که دارای تگ پایانی نیست ، تگ تعریف ورژن XML یا Declration است که برای تعیین نسخه XML در ابتدای اسناد XML قرار می گیرد . این تگ دارای تگ پایانی نیست .
< ?xml version="1.0" encoding="utf-XML" ? >
تگ های XML به حروف بزرگ و کوچک حساس هستند :
تگ های XML به حروف بزرگ و کوچک حساس هستند . برای مثال تگ < Letter > با < letter > متفاوت است . همچنین تگ ابتدایی و انتهایی باید دارای حروف بزرگ و کوچک یکسانی باشند ، در غیر اینصورت error رخ خواهد داد .
به مثال های زیر دقت نمایید :
< from > This is NOT Ok ! < /From > < from > This is Ok ! < /from >
تگ های XML باید به طور صحیح و ترتیب مشخص قرار بگیرند :
تگ های XML باید به ترتیب مشخص تعریف شوند و هر تگ قبل از اینکه تگ دیگری شروع شود ، بسته شده و یا کل تگ جدید را درون خود جای دهد . برای درک بهتر به مثال های زیر دقت نمایید :
< b > < i > This is NOT Ok ! < /b > < /i > . کد بالا اشتباه بوده و ترتیب باز و بسته شدن تگ ها درست رعایت نشده است
< b > < i > This is Ok ! < /i > < /b > . کد بالا صحیح است و ترتیب باز و بسته شدن تگ ها درست می باشد
تمامی اسناد XML باید دارای یک تگ root یا مادر باشند :
تمامی اسناد XML باید دارای یک تگ root یا مادر باشند و سایر تگ های دیگر درون این تگ تعریف شوند . در کد مثال زیر این مسئله را نمایش داده ایم :
<root>
<child>
<subchild> ... </subchild>
</child>
</root>
بخش پنجم:ساختار درختی فایل ها در xml
ساختار درختی فایل های XML :
فایل های XML دارای یک ساختار درخت وار هستند که از بالا به پایین ، از عنصر ریشه ( root ) شروع شده و به ترتیب به شاخه ها و برگ ها ( leaves ) می رسد .
در مثال زیر یک فایل ساده XML را به شما نشان داده ایم:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<note>
<to>Hamed</to>
<from>Ali</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
سطر اول فایل ، خط اعلان برنامه است و اعلام می کند که فایل XML جاری از XML نسخه 1.0 و روش انکدینگ encoding="ISO-8859-1" استفاده کرده است .
خط بعدی ، المنت ریشه ( root ) فایل را تعیین می کند :
<note>
چهار خط بعدی ، هر کدام یک المنت فرزند ( child ) را برای المنت ریشه تعیین کرده است .
<to>Hamed</to>
<from>Ali</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
در نهایت ، در خط آخر نیز ، المنت ریشه بسته شده است .
</note>
فایل فوق در واقع یک نامه از Ali به Hamed بوده ، که حاوی پیامی برای وی است . XML یک زبان ساده و خود تعریف بوده و نام تمام المنت ها توسط طراح نامه انتخاب شده است .
تشریح ساختار فایل های XML به صورت کلی :
تمامی فایل های XML ، باید دارای یک المنت ریشه ( root ) بوده و سایر المنت ها درون آن تعریف می شوند .
شکل کلی یک فایل XML باید به صورت زیر باشد :
<root>
<child>
<subchild>.....</subchild>
</child>
</root>
عبارات مادر ( parent ) , فرزند ( child ) و خواهر یا برادر ( sibling ) برای تشریح ارتباط بین المنت های هر فایل XML به کار می رود .
المنت های parent می توانند دارای children بوده و فرزندان یک parent با هم ، خواهر یا برادر هستند . هر المنت می تواند ، برای خود متن و خواص نیز داشته باشد ( همانند عناصر HTML ).
تشریح ساختار یک فایل XML با عکس و نمودار :
مثال : در مثال زیر یک فایل XML را به شما نمایش داده ایم ، که شامل مقداری اطلاعات است . ارتباط بین عناصر آن را در نمودار زیر نشان داده ایم .
المنت <bookstore> المنت مادر parent ، فایل XML است . هر عنصر <book> یک فرزند المنت <bookstore> که خود دارای 4 فرزند <title> , <author> , <year> , <price> می باشد .
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<price>30.00</price>
</book> <book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<price>39.95</price>
</book> </bookstore>
بخش ششم:المنت هایxml
المنت های xml:
اسناد XML شامل المنت های XML می شوند .
یک المنت XML ، شامل تمام چیزهایی که از تگ ابتدایی عنصر تا تگ انتهایی آن قرار دارند ، می شود .
اجزای المنت ها می تواند شامل موارد زیر باشد :
- المنت های دیگر ( تگ های دیگر XML ) .
- متن ( text ) .
- خواص المنت ها ( attributes ) .
- یا مجموعه ای از موارد فوق .
مثال : در مثال زیر یک قطعه کد ساده XML را قرار داده ایم.
<bookstore>
<book category="CHILDREN">
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title>Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book> </bookstore>
تشریح المنت های مثال :
- در کد بالا تگ های < bookstore > و < book > ، در اصطلاح elements contents هستند ، زیرا خود شامل المنت های دیگر می شوند .
- تگ < book > دارای یک خاصیت ( attribute ) به نام category می باشد ، که اطلاعاتی راجع به آن را ارائه می کند .
- المنت هایی مثل < title > و یا < year > در اصطلاح text content هستند ، زیرا شامل متن می باشند .
خوب سلام دوستان اینم اخرین پست من من دارم میرم:(انشالله تا سال دیگه همین تابستون برمیگردم:(برنامه نویسی هم که فعلا ولش شده دوستان خداحافط:(البته هر ماه ممکنه یک باز یا دوبار سر بزنم خداحافظ تا خرداد ماه94:(
بخش هفتم:خواص تگ های XML
خواص تگ های XML :
تگ های XML نیز همانند تگ های HTML می توانند دارای خواص باشند . خواص برای هر تگ توضیحات و اطلاعات بیشتری را ارایه می دهد .
همانطور که قبلا مشاهده کرده اید تگ های HTML می توانند خواصی داشته باشند . مثلا در تگ < img > خاصیت src تعیین کننده آدرس عکس مورد نظر است .
در مثال زیر یک تگ XML را تعریف کرده ایم که دارای خاصیتی به نام Type است . این خاصیت نوع فایل را مشخص می سازد :
< file Type = " gif " > Computer.gif
خواص XML حتما بایستی در بین دو علامت " " یا ' ' قرار بگیرند :
مثلا درتگ زیر هر دو حالت را نشان داده ایم که درست می باشند .
< person age = " 30 " > Reza < person age = ' 30 ' > Reza
نکته : اگر مقدار خاصیت خودش دارای کاراکتر " بود از کاراکتر ' استفاده نمایید . مثال :
< person name = ' Alireza " Farhadi " ' > student
تفاوت خواص و المنت ها در XML :
به دو قطعه کد XML زیر دقت نمایید :
در حالت اول age یک خاصیت برای تگ person است . اما در حالت دوم به صورت یک المنت برای آن در آمده است . هر دو حالت اطلاعات یکسانی را ارائه کرده و خروجی یکسانی خواهند داشت . اما روش دوم بهتر بوده و توصیه می شود .
زیرا هم ظاهر برنامه مرتبتر بوده و هم اعمال تغییرات به آن در آینده راحت تر خواهد بود .
< person age="18">
< firstname > Anna< /firstname >
< lastname > Smith < /lastname >
< /person >
________________________________________________________________________________
< person >
< age > 18 < /age>
< firstname > Anna< /firstname >
< lastname > Smith < /lastname >
< /person >
راه بهتر تعریف خواص در XML :
به سه قطعه کد زیر دقت نمایید :
دو حالت اول date به صورت یک خاصیت تعریف شده است :
<note date="10/01/2008">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
</note>
__________________________________________________________________________
در حالت دوم date به صورت یک المنت فرزند برای تگ note تعریف شده است :
<note>
<date>10/01/2008</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
</note>
و در حالت سوم date به صورت یک المنت فرزند برای تگ note تعریف شده و هر یک از مقادیر آن نیز به صورت یک المنت فرزند درونش تعریف شده است :
<note>
<date>
<day>10</day>
<month>01</month>
<year>2008</year>
</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
</note>
نتیجه گیری :
حالت سوم بهترین و اصولی ترین روش برای تعریف تگ ها و خواص آنها در XML است . با وجود اینکه حجم کد بیشتری داشته ، ولی خونایی و ترتیب بهتری دارد و اعمال تغییرات به آن در آینده نیز راحتر خواهد بود .
تا حد امکان از بکار بردن خواص در XML خودداری کنید :
تعریف اطلاعات در خواص تگ های XML می تواند کمی ظاهر برنامه را پیچیده و ایجاد تغییرات در آن را سخت تر نماید . بهتر است به جای استفاده از خواص مقدار آنها را در المنت های XML تعریف کنید .
اشکالات عمده استفاده از خواص برای تعریف اطلاعات عبارتند از :
- خواص نمی توانند چند مقداری باشند یعنی چند مقدار را درون خود جای دهند اما المنت های XML این قابلیت را دارند .
- خواص نمی توانند ساختار درختی و سلسله مراتبی داشته باشند اما المنت های XML این قابلیت را دارند .
- خواص را در آینده به راحتی نمی توانید تغییر یا توسعه دهید اما المنت های XML دراین مورد بسیار بهتر هستند .
خداحافظ همه ی دوستان تا سال اینده:(
گفتم بخش هشتم هم بزارم دیگه بعد از رفتم نمی تونم این جا مطلب بزارم:)
بخش هشتم:اعتبار سنجی اسناد درxml
یک سند صحیح و مرتب XML :
یک سند مرتب و ساختار یافته XML ، سندی است که دارای Syntax صحیح این زبان باشد . مهمترین قوانینی که در XML باید رعایت نمود را در پست های قبل گفتیم . این قوانین به صورت خلاصه عبارتند از :
- اسناد XML حتما بایستی دارای یک تگ root یا مادر باشند که سایر تگ های فایل ، درون آن تعریف می شوند .
- تمامی تگ های XML باید دارای تگ انتهایی باشند ، به جز تگ Declration .
- تگ های XML به بزرگ و کوچک بودن حروف حساس هستند .
- تگ های XML باید به ترتیب صحیح و درست قرار بگیرند .
- مقادیر خواص تگ های XML حتما باید بین دو علامت " " یا ' ' قرار بگیرند .
مثال : در کد مثال زیر ، یک سند مرتب XML را نشان داده ایم :
<note>
<to>Hamed</to>
<from>Ali</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
اعتبار سنجی اسناد XML با DTD :
یک سند مرتب XML علاوه بر اینکه دارای ساختاری صحیح است ، باید با قوانین و استانداردهای یک سند ( DTD ( Document Type Definition مطابقت داشته باشد .
هدف از تهیه یک سند DTD برای یک فایل XML ، تعیین ساختار کل سند است . این سند DTD ، ساختار کلی فایل XML را با تعیین لیست المنت های آن مشخص می سازد .
اضافه کردن یک سند DTD به یک فایل XML :
به وسیله تک < Doctype! > در ابتدای یک فایل XML می توان آن را به یک سند DTD پیوند زد . در کد زیر این مسئله نشان داده شده است :
<note>
<!DOCTYPE note SYSTEM "Note.dtd" >
<to>Hamed</to>
<from>Ali</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
کد فایل DTD :
کد فایل DTD در جدول زیر نمایش داده شده است . به ارتباط این کد با کد فایل XML دفت نمایید . این فایل تمام المنت های فایل XML را به همراه نام ها و ترتیب آنها را مشخص ساخته است :
راهنمایی : DTD خود یک روش و زبان برای اعتبار سنجی اسناد XML است . در آینده ، آموزش این زبان را نیز در پست های جدید اضافه خواهیم کرد .(البته احتمالا)
<!DOCTYPE note
[
<!ELEMENT note (to,from,heading,body) >
<!ELEMENT to (#PCDATA) >
<!ELEMENT from (#PCDATA) >
<!ELEMENT heading (#PCDATA) >
<!ELEMENT body (#PCDATA) >
] >
روشی دیگر : اعتبار سنجی اسناد XML به وسیله XML Schema :
کنسرسیوم جهانی وب ( W3C ) روشی با ساختار مشابه XML را برای اعتبار سنجی اسناد XML تعیین کرده است . این روش به XML Schema معروف می باشد . در قطعه کد زیر ، استفاده از XML Schema را برای اعتبار سنجی فایل XML به کار برده ایم . به ارتباط آن با فایل XML دقت نمایید :
راهنمایی : XML Schema خود یک روش و زبان برای اعتبار سنجی اسناد XML است . در آینده ، آموزش این زبان را نیز به پست های جدید اضافه نمی کنیم!زیرا به زارید خدومونی بنویسم تاپیک خیلی طولانی میشه!:)
<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 >
خوب دوستان اینم فکر کنم اخرین پست من باشه.ولی سعی می کنم بیام و بقیه اموزش ها رو هم قرار بدم.تا اخرین چیزی که خودم بلدم رو اموزش میدم:)
بخش نهم:مشاهده فایل های XML در مرورگر
مشاهده فایل های XML :
فایل های XML در تمام مرورگرهای استاندارد ، قابل مشاهده هستند . کد زیر یک فایل ساده XML را نشان می دهد . برای مشاهده آن در مرورگر بر روی گزینه مشاهده فایل XML کلیک نمایید :
<note>
<to>Hamed</to>
<from>Ali</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
برای مشاهده ی فایل xmlدر مرورگر کلیک کنید.
همانطور که هنگام مشاهده فایل XML در مرورگر متوجه شدید ، مرورگرها کدهای XML را به چند رنگی نمایش می دهند . مثلا نام تگ ها را به رنگ قرمز و رنگ متن ها را مشکی نشان می دهند . این کار برای خوانایی و درک بهتر کدها صورت می گیرد .
همچنین علامت های ( + ) و ( - ) در کنار تگ ها و المنت هایی که دارای عنصر فرزند هستند ، قرار می گیرند ، که به وسیله آنها می توانید تگ را باز کرده و یا ببندید .
برای مشاهده فایل XML بدون علامت های ( + ) و ( - ) ، بر روی صفحه در مرورگر کلیک سمت راست کرده و گزینه " View Page Source " را انتخاب نمایید .
نمایش یک فایل خراب XML در مرورگر :
اگه فایل XML ای که می خواهید آن را مشاهده نمایید ، دارای اشکال ساختاری یا error باشد ، مرورگر قادر به نمایش صحیح آن نخواهد بود و یک پیام اشکال را بر روی صفحه نمایش می دهد . برای مثال فایل قرار داده شده در مثال زیر ، دارای اشکال است .
بخش دهم: قالب بندی فایل های XML با CSS
قالب بندی فایل های XML با CSS :
مانطور که در بخش های قبل توضیح دادیم ، فایل های XML برای نگهداری و انتقال اطلاعات استفاده شده و خود دارای ویژگی ها یا امکاناتی برای نمایش اطلاعات نیستند .
مرورگرها نیز فایل های XML را به صورت متن ساده و بدون قالب بندی خاص نمایش می دهند .
اما ممکن است شما تمایل داشته باشید تا فایل های XML خود را با ظاهر و قالب بندی خاص نمایش دهید . در این حالت می توانید از یک فایل CSS ، همانگونه که در HTML استفاده می کردید ، استفاده نمایید .
در این بخش قصد داریم تا نحوه این کار را به شما آموزش دهیم .
اتصال یک فایل CSS به سند XML :
برای قالب بندی فایل XML توسط CSS ، ابتدا باید فایل XML را به فایل CSS متصل نمایید . برای این منظور از یگ تگ < ?xml > شامل آدرس فایل CSS مورد نظر ، در ابتدای سند XML استفاده می شود :
<?xml version="1.0" encoding="ISO-XMLXML59-1" ?>
<?xml-stylesheet type="text/css" href="book_catalog.css" ?>
<CATALOG>
<BOOK>
<TITLE> HTML</TITLE>
<AUTHER> uncocoder </AUTHER>
<COMPANY> mehdi007 </COMPANY>
<PRICE> 5454 </PRICE>
<YEAR> 21545 </YEAR>
</BOOK>
<BOOK>
<TITLE> CSS </TITLE>
<AUTHER> mehdi007 </AUTHER>
<COMPANY> uncocoder</COMPANY>
<PRICE> 6500 </PRICE>
<YEAR> 2014</YEAR>
</BOOK>
</CATALOG>
کد فایل CSS مورد استفاده :
کدی فایل CSS ای که برای قالب بندی سند XML خود به کار برده ایم. به آن دقت نمایید :
CATALOG
{
background-color: #ffffff;
width: 100%;
}
BOOK
{
display: block;
margin-bottom: 30pt;
margin-left: 0;
}
TITLE
{
color: #FF0000;
font-size: 20pt;
}
AUTHER
{
color: #0000FF;
font-size: 20pt;
}
PRICE,YEAR,COMPANY
{
display: block;
color: #000000;
margin-left: 20pt;
}
نتیجه اتصال فایل CSS به سند XML :
پس از اینکه فایل CSS را به سند XML متصل کردید ، فایل CSS آن را قالب بندی کرده و با استایل جدید نمایش می دهد . مرورگر فایل XML را به جای نمایش ساده ، با قالب CSS نشان می دهد در عکس زیر مشاهده کنید.
بخش یازدهم:قالب بندی فایل های XML با XSLT
قالب بندی فایل های XML با XSLT :
در بخش قبل نشان دادیم که به وسیله CSS می توان استایل و قالب خاصی را به فایل های XML بدهید . اما اشاره کردیم که این روش ، روش متداولی نیست .
به جای آن ، کنسرسیوم جهانی وب ( W3C ) ، زبان XSLT مخفف eXtensible Stylesheet Language Transformations را پیشنهاد می کند . به وسیله این زبان می توانید یک فایل XML را قبل از نمایش در مرورگر به فرمت HTML در آورده و با استایل و قالب مورد نظر نشان دهید .
XSLT یک زبان و شیوه جدا از XML است . آموزش آن در پست های بعدی قرار نخواهد گرفت . در این بخش با ارایه یک مثال عملی و تشریح کد آن ، نحوه استفاده از XSLT را به صورت خلاصه بیان کرده ایم .
مثال عملی قالب بندی فایل های XML با XSLT :
مثال : در مثال زیر ، یک فایل XML داریم ، که آن را با یک فایل XSLT دیگر ترکیب کرده ایم . مرورگر در هنگام اجرای فایل XML ، خواص و استایل تعیین شده در فایل XSLT را خوانده و به فایل XML اعمال می کند . مشاهده می کنید ، که فایل XML در خروجی با یک ظاهر متفاوت و رنگی نمایش داده شده است .
نکته : مثال زیر ، توسط مرورگر ادغام و اجرا شده است . اما مرورگرهای متفاوت ممکن است در هنگام انجام این کار ، خروجی های متفاوتی را تولید نمایند . بنابراین بهتر است کاری نمایید تا این ادغام در بر روی سرور انجام شود .
کد فایل XML :
جدول زیر ، کد فایل XML را نشان می دهد . این فایل اطلاعاتی راجع به چند نوع غذا و قیمت و ... آنها را در بر می گیرد :
<?xml version="1.0" encoding="ISO-XMLXML59-1"?>
<breakfast_menu>
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>two of our famous Belgian Waffles with plenty of real maple syrup</description>
<calories>650</calories>
</food>
<food>
<name>Strawberry Belgian Waffles</name>
<price>$7.95</price>
<description>light Belgian waffles covered with strawberries and whipped cream</description>
<calories>900</calories>
</food>
<food>
<name>Berry-Berry Belgian Waffles</name>
<price>$8.95</price>
<description>light Belgian waffles covered with an assortment of fresh berries and whipped cream</description>
<calories>900</calories>
</food>
<food>
<name>French Toast</name>
<price>$4.50</price>
<description>thick slices made from our homemade sourdough bread</description>
<calories>600</calories>
</food>
<food>
<name>Homestyle Breakfast</name>
<price>$6.95</price>
<description>two eggs, bacon or sausage, toast, and our ever-popular hash browns</description>
<calories>950</calories>
</food>
</breakfast_menu>
کد فایل XSLT :
در جدول زیر نیز کد فایل XSLT را نشان داده ایم . توجه داشته باشید ، که این فایل ، قالب و استایل نمایش فایل XML را تعیین می کند .
<?xml version="1.0" encoding="ISO-XMLXML59-1"?>
<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org
/1999/xhtml">
<body style="font-family:Arial;font-size:12pt;background-color:#EEEEEE">
<xsl:for-each select="breakfast_menu/food">
<div style="background-color:teal;color:white;padding:4px">
<span style="font-weight:bold"><xsl:value-of select="name"/></span>
- <xsl:value-of select="price"/>
</div>
<div style="margin-left:20px;margin-bottom:1em;font-size:10pt">
<xsl:value-of select="description"/>
<span style="font-style:italic">
<xsl:value-of select="calories"/> (calories per serving)
</span>
</div>
</xsl:for-each>
</body>
</html>
خروجی نهایی پس از ادغام فایل XML با XSLT :
پس از اینکه دو فایل XML و XSLT با هم ادغام شدند ، خروجی زیر به صورت HTML بر روی صفحه ایجاد می شود:
بخش دوازدهم:شی XMLHttpRequest در XML
شی XMLHttpRequest:
از شی XMLHttpRequest در XML برای انتقال و جا به جایی اطلاعات بین سرور و کامپیوترکاربر رد پشت صفحه استفاده می شود .
قبل از بوجود آمدن شی XMLHttpRequest در XML هنگامی که مثلا در یک صفحه Asp یا PHP می خواهیم اطلاعاتی را به سرور ارسال نماییم بایستی کل صفحه به سرور ارسال می شد . این عمل باعث Submit شدن کل صفحه به صفحه و لود شدن مجدد آن می شود که چند اشکال دارد :
- حجم کل اطلاعات صفحه فقط به خاطر تغییر بخشی کوچکتر از آن می بایست به سرور ارسال می شد که هم وقت و هم پهنای باند بیشتری می گرفت .
- کل صفحه به سرور فرستاده شده و برای اجرای مجدد می بایست از اول لود می شد که نیازمند انتظار کاربر و کار بیشتر کامپیوتر می شد .
بنابر این برای حل این مشکل شی XMLHttpRequest در XML ساخته شد . این شی فقط بخشی از صفحه که تغییر کرده و یا باید به روز شود را به سرور ارسال نموده و پاسخ آن را نیز از سرور دریافت می کند . سپس لود مجدد صفحه تغییرات را در صفحه اعمال می کند .
شی XMLHttpRequest در XML برای برنامه نویسان وب همانند یک رویا بود زیرا :
1) محتویات صفحه را به روز می کند بدون اینکه کل صفحه مجددا فراخوانی شود .
2) می تواند بعد از اینکه صفحه لود شد درخواست اطلاعات از سرور نماید .
3) می تواند بعد از اینکه صفحه لود شد از سرور اطلاعات دریافت نماید .
4) عملیات انتقال داده بر سرور را در پشت صحنه صفحه و بدون اطلاع کاربر انجام دهد .
ساخت یک شی XMLHttpRequest :
تمامی مرورگرهای جدید شی XMLHttpRequest در XML را بصورت پیش فرض درون خود دارند از آن پشتیبانی می کنند .
دستور کلی ساخت یک شی XMLHttpRequest در XML بصورت زیر است :
توضیحات بیشتر در پست های بعدی:
نام یک متغیر = new XMLHttpRequest( );
syntax مثال: xmlhttp = new XMLHttpRequest( );
استفاده از XML در زندگی روزمره :
تاکنون با انواع روش های تولید ، فراخوانی و تغییر در فایل های XML آشنا شدید . اما استفاده واقعی این زبان در زندگی روزمره و سیستم های موثر در زندگی ما چیست ؟
در این بخش قصد داریم تا با ارائه چند مثال عملی ، نحوه استفاده از این تکنولوژی را در دنیای واقعی بررسی کنیم .
مثال اول : ارسال اخبار با XML News :
یکی از کاربردهای مهم XML ، جا به جا کردن و ارسال اطلاعات خبری است .
استفاده از یک استاندارد و زبان مشترک و مشخص مثل XML ، برای ارسال و دریافت اطلاعات خبری ، این امکان را به فرستنده و گیرنده می دهد تا بتواند فارغ از نوع سیستم عامل و سخت افزار ، اطلاعات را ارسال و دریافت نمایند .
در مثال زیر خبری راجع به وقوع یک زلزله و جزییات آن مخابره شده است ، به زبان XML . به ساختار کد XML و نحوه ارسال اطلاعات دقت نمایید :
این اطلاعات توسط سرور یک خبر گذاری مخابره شده و توسط گیرنده های عضو به راحتی دریافت و تجزیه اطلاعات خواهد شد .
<?xml version="1.0" encoding="ISO-8859-1"?> <nitf> <head> <title>Colombia Earthquake</title> <!-- عنوان خبر --> </head> <body> <headline> <hl1>143 Dead in Colombia Earthquake</hl1> <!-- جزییات خبر --> </headline> <byline> <bytag>By Jared Kotler, Associated Press Writer</bytag>!-- نام خبرنگار و خبرگزاری --> </byline> <dateline> <location>Bogota, Colombia</location> <!-- مکان وقوع خبر --> <date>Monday January 25 1999 7:28 ET</date> <!-- تاریخ خبر --> </dateline> </body> </nitf>
مثال دوم : ارسال اطلاعات وضع آب و هوا با XML :
یکی دیگر از کاربردهای زبان XML ، برای مثال ارسال و دریافت اطلاعات بین دو سرویس پیش بینی کننده و نمایش دهنده وضع هواست .
در این مثال یک سرویس پیش بینی کننده هوا ، اطلاعات آب و هوایی یک منطقه را در یک فایل XML ، دسته بندی کرده و برای مشتریان خود ارسال نموده است :
<?xml version="1.0" encoding="ISO-8859-1" ?> <current_observation> <credit>NOAA's National Weather Service</credit> <!-- واحد صادر کننده اطلاعات --> <credit_URL>http://weather.gov/</credit_URL> <!-- آدرس وب سایت صادر کننده اطلاعات --> <location>New York/John F. Kennedy Intl Airport, NY</location> <!-- نام منطقه آب و هوایی--> <weather>A Few Clouds</weather> <!-- شرایط جوی --> <temp_f>11</temp_f> <!-- بیشینه دما --> <temp_c>-12</temp_c> <!-- کمینه دما --> <relative_humidity>3XML</relative_humidity> <!-- میزان رطوبت --> <wind_dir>West</wind_dir> <!-- جهت باد --> <wind_mph>18.4</wind_mph> <!-- سرعت باد --> </current_observation>
سایر تکنولوژی های XML :
در این بخش به معرفی زبان ها و تکنولوژی هایی که در حیطه وب ، بر مبنای XML ساخته شده است ، می پردازیم .
برخی از این تکنولوژی ها را در سایت خودمان آموزش داده ایم ، مثل RSS .
لیست این تکنولوژی ها به همراه توضیح مختصری راجع به آنها در ادامه آمده است . برای دریافت اطلاعات بیشتر راجع به موضوعات لینک شده ، بر روی آنها کلیک نمایید :
- ( XHTML ( Extensible HTML : نسخه ای از HTML با معنای HTML قابل توسعه ، که ورژنی دقیق تر و بهتر از HTML 4 را ارائه می کرد ، ولی در نهایت کنار گذاشته شده و جای خود را به HTML 5 داد .
- ( XML DOM ( XML Document Object Model : به معنای مدل دسترسی به اشیای سند XML ، که روش استاندارد برای دسترسی به اجزای درونی یک سند XML و خواص و فرزندان آن می باشد .
- ( XSL ( Extensible Style Sheet Language : به معنای زبان قالب بندی قابل توسعه . که زبان استاندارد برای قالب بندی و فرمت دهی به فایل های XML است .
- ( XQuery ( XML Query Language : به معنای زبان جستجو XML . یک زبان داده ای ، بر مبنای XML می باشد که برای جستجو در بین اطلاعات یک فایل XML به کار می رود .
- ( DTD ( Document Type Definition : یک راه حل و استندارد برای تعیین المنت های اصلی در یک سند XML .
- ( XLink ( XML Linking Language : زبانی برای ایجاد لینک HyperLink در اسناد XML .
- ( XPointer ( XML Pointer Language : این زبان این امکان را به لینک ها ( Hyperlinks ) در اسناد XML می دهد ، که بیش از یک نقطه یا بخش در صفحه اشاره کنند .
- ( SOAP ( Simple Object Access Protocol : به معنای پروتکل ساده برای دسترسی به اشیا .
- این تکنولوژی که یک زبان بر پایه XML است ، به نرم افزارهای مختلف این امکان را می دهد تا اطلاعات خود را از طریق HTTP مبادله نمایند .
- ( WSDL ( Web Services Description Language : به مبنای زبان تشریح وب سرویس ها .
- یک زبان بر پایه XML که برای تشریح و توضیح وب سرویس ها به کار می رود .
- ( RDF ( Resource Description Framework : به معنای زبان تشریح منابع وب .
- از این زبان که بر مبنای XML است ، برای تشریح و توضیح منابع وب استفاده می شود .
- ( RSS ( Really Simple Syndication : به معنای روش ساده مبادله اطلاعات .
یک زبان و تکنولوژی جدید بر پایه XML ، که برای انتقال و اشتراک گذاری اخبار و اطلاعات بین وب سایت های مختلف به کار می رود .
مفسر XML در جاوا اسکریپت ( parser ) :
در بخش های قبلی با نحوه تعریف و ساختار دستوری فایل های XML آشنا شدید . در این بخش می خواهیم شما را با مفسر یا تجزیه کننده یک فایل XML آشنا سازیم .
در یک صفحه HTML ، به فرض اگر بخواهید به یک تگ یا عنصر خاص دسترسی داشته باشید ، از مدل DOM استفاده می کنید . در این مدل ، عنصر یا تگ مورد نظر بر حسب id یا مثلا عنصر مادر Parent آن ، در صفحه شناسایی شده و فراخوانی می شود .
حال اگر بخواهید همین کار را در یک فایل XML انجام دهید ، چه ؟
به عبارت دیگر اگر بخواهید به یک عنصر با المنت در فایل XML دسترسی داشته باشید ، چه باید بکنید .
برای این منظور در مرحله اول باید فایل XML را توسط مفسر یا تجزیه کننده جاوا اسکریپت آن ، به اجزای سازنده اشن ، تجزیه کنید . سپس به وسیله متدهای XML DOM به عنصر مورد نظر رسید .
تمامی مرورگرها ، دارای مفسر درون ساخته ای برای تجزیه فایل های XML هستند .
در مثال های زیر ، انواع حالات تجزیه یک فایل XML را به عناصر سازنده اش ، نشان داده ایم :
مثال های عملی :
مثال عملی 1 : در مثال زیر یک فایل XML به نام books.xml را توسط تجزیه کننده جاوا اسکریپت به اجزای سازنده تبدیل کرده و در شی xmlDoc قرار داده ایم . کد مثال را مرور نمایید . بخش های مختلف کد آن را نیز ، تشریح کرده ایم :
راهنمایی : بعدا از شی xmlDoc می توانید برای دسترسی به عناصر سند XML دسترسی داشته باشید . این کار را در بخش بعدی آموزش داده ایم .
<script type="text/javascript">
if (window.XMLHttpRequest)
{ xmlhttp=new XMLHttpRequest( ); // XML برای اتصال به سرور و خواندن فایل ajax ساخت یک شی } xmlhttp.open("GET","books.xml",false); // و خواندن آن XML باز کردن فایل
xmlhttp.send( ); // ارسال شی ایجکس به سرور
xmlDoc=xmlhttp.responseXML; // xmlDoc در شی XML ریختن محتویات فایل
</script>
مثال عملی 2 : در مثال زیر یک عبارت متنی به زبان XML را به صورت جزء به جزء در یک متغیر رشته ای به نام txt ریخته ایم . سپس در دو کد جداگانه ، که اولی برای سایر مرورگر ها و دومی برای IE است ، متغیر txt را خوانده و آن را تجزیه نموده و در شی xmlDoc ذخیره کرده ایم :
راهنمایی : بعدا از شی xmlDoc می توانید برای دسترسی به عناصر سند XML دسترسی داشته باشید .
<script type="text/javascript">
txt="<bookstore><book>"; // txt و ریختن آن در متغیر XML خواندن متن txt=txt+"<title>Everyday Italian</title>";
txt=txt+"<author>Giada De Laurentiis</author>";
txt=txt+"<year>2005</year>";
txt=txt+"</book></bookstore>";
if (window.DOMParser) { parser=new DOMParser( ); // ایجاد یک مفسر جدید xmlDoc=parser.parseFromString(txt,"text/xml"); // xmlDoc و ریختن آن در شی XML خواندن فایل } else // Internet Explorer کد لازم برای { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); // ایجاد یک مفسر جدید xmlDoc.async=false; xmlDoc.loadXML(txt); // xmlDoc و ریختن آن در شی XML خواندن فایل } </script>
عدم امکان دسترسی به فایل ها در 2 دامین متفاوت :
برای رعایت مسایل امنیتی ، مرورگرهای جدید امکان دسترسی به یک فایل XML که بر روی سرور دیگری از سرور جاری قرار دارد ، را نمی دهد .
به عبارت دیگر ، برای اجرای دستورات فوق ، باید صفحه درخواست کننده فایل XML و هم خود فایل XML ، هر دو بر روی یک سرور باشند .
معرفی مدل XML DOM :
در بخش بعدی ، به تشریح و معرفی کار با مدل XML DOM ، روش استاندارد برای دسترسی و کار با اجزای بک فایل XML خواهیم پرداخت .
مفهوم و نحوه کار با XML DOM :
مدل XML DOM ، یک روش استاندارد برای دسترسی به اجزای یک فایل XML و خواندن یا تغییر آنها را معرفی می کند .
مدل XML DOM ، فایل XML را همانند یک درخت از بالا به پایین می بیند . در این مدل اجزای مادر parent مثل شاخه های درخت بوده و فرزندان آن برگ های درخت محسوب می شوند .
تمامی اجزای درونی فایل XML از طریق مدل XML DOM ، قایل دسترسی خواهد بود . محتویات آنها ( متن و خواص ) را می توانید خوانده ، تغییر داده و یا حتی پاک نمایید . حتی امکان ساخت اجزای جدید نیز وجود دارد .
هر المنت ، محتویات و خواص آن به عنوان یک گره یا node در صفحه شناخته شده و قابل دسترسی است .
در مثال عملی زیر ، نحوه خواندن یک فایل XML و دسترسی به محتویات آن را نمایش داده ایم :
مثال عملی :
مثال : در این مثال ، محتویات یک فایل XML به نام note.xml را خوانده و اجزای درونی آن را در یک شی به نام xmlDoc ریخته ایم . سپس به وسیله متد ( ) getElementsByTagName ، اجزای درونی آن را با یک تگ <div> ترکیب کرده و در خروجی نمایش داده ایم . کد را مرور نمایید .
راهنمایی : در پایان مثال نحوه استفاده از متد ( ) getElementsByTagName را آموزش داده ایم .
محتویات فایل note.xml :
<?xml version="1.0" encoding="utf-8" ?>
<note>
<to> Hamed </to>
<from>Ali</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
کد و خروجی مثال :
<html>
<body>
<h1> mehdi007 Internal Note</h1>
<div>
<b>To:</b> <span id="to"></span><br />
<b>From:</b> <span id="from"></span><br />
<b>Message:</b> <span id="message"></span>
</div>
<script>
if (window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest(); // ساخت یک شی جدید ایجکس برای ارتباط با سرور
}
xmlhttp.open("GET", "note.xml", false); // و خواندن آن XML باز کردن فایل
xmlhttp.send( ); // ارسال اطلاعات به سرور
xmlDoc = xmlhttp.responseXML; // xmlDoc در شی XML تجزیه و ریختن محتویات فایل
document.getElementById("to").innerHTML = xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
document.getElementById("from").innerHTML = xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
document.getElementById("message").innerHTML = xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
</script>
</body>
</html>
نحوه کار با متد ( ) getElementsByTagName در XML DOM :
نکته : برای استخراج متن " Hamed " از المنت <to> ، ساختار دستوری آن به صورت زیر است :
دقت داشته باشید که اگر حتی هر عنصر XML مثل <to> حتی دارای یک فرزند هم باشد ، شما بایستی اندیس آرایه که در اینجا 0 است را تعیین نمایید . زیرا متد ( ) getElementsByTagName ، با آرایه ها کار می کند .
getElementsByTagName("to")[0].childNodes[0].nodeValue ;
وارد کردن اطلاعات یک فایل XML در HTML :
در این بخش قصد داریم تا با ارائه یک مثال عملی ، نحوه خواندن محتویات یک فایل XML و سپس نمایش آن در یک فایل HTML را در عمل به شما نمایش دهیم .
در این مثال ، برنامه به کمک یک اسکریپت ، از طریق یک حلقه ، در میان اجزای تفکیک شده فایل XML ( که نحوه این کار را در بخش قبل نشان دادیم ) حرکت کرده و با خواندن محتویات تک تک عناصر ، آن ها را در خروجی نمایش دهید .
راهنمایی : کد فایل XML مورد استفاده در مثال به صورت زیر است :
<catalog>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<YEAR>1985</YEAR>
</CD>
<CD>
<TITLE>Hide your heart</TITLE>
<ARTIST>Bonnie Tyler</ARTIST>
<COUNTRY>UK</COUNTRY>
<YEAR>1988</YEAR>
</CD>
<CD>
<TITLE>Greatest Hits</TITLE>
<ARTIST>Dolly Parton</ARTIST>
<COUNTRY>USA</COUNTRY>
<YEAR>1982</YEAR>
</CD>
</catalog>
مثال عملی :
مثال : کد مثال زیر را مرور نمایید . جاهایی که نیاز به توضیح داشته ، راهنمایی هایی قرار داده شده است :
در این مثال محتویات فایل XML خوانده شده و به ازای وجود هر المنت CD در آن ، یک سطر و ستون های لازم ایجاد شده و محتویات آن در خانه های جدول قرار گرفته اند .
<script>
if (window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest( ); // ساخت یک شی جدید ایجکس برای ارسال و دریافت اطلاعات
}
xmlhttp.open("GET", "cd_catalog.xml", false); // و خواندن اطلاعات آن XML باز کردن فایل
xmlhttp.send( ); // ارسال اطلاعات به سرور
xmlDoc = xmlhttp.responseXML; // برای استفاده های بعدی xmlDoc ریختن اطلاعات فایل در شی
document.write("<table border='1'>"); // HTML ساخت ابتدای تگ جدول در
var x = xmlDoc.getElementsByTagName("CD"); // XML در فایل CD خواندن تک به تک عناصر
for (i = 0; i < x.length; i++) // CD ایجاد سطر و ستون های لازم برای هر المنت
{
document.write("<tr><td>");
document.write(x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write(x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue);
document.write("</td></tr>");
}
document.write("</table>");
</script>
ساخت یک برنامه کاربردی با XML :
در این بخش قصد داریم تا با ارایه یک مثال عملی ، نحوه استفاده از XML در عمل و ساخت یک برنامه کاربردی را نشان دهیم .
در این مثال ، یک فایل XML داریم که اطلاعات مربوط به چند آهنگ را در خود نگهداری می کند . اسکریپتی نوشته شده که به وسیله دو دکمه فرمان بعدی و قبلی ، بین آهنگ ها حرکت کرده و با هر بار زدن یک دکمه فرمان ، اطلاعات آهنگ قبلی یا بعدی نشان داده می شود .
این مثال را به صورت گام به گام نمایش داده و تشریح می کنیم .
1 . محتویات فایل XML :
فایل XML به کار رفته در این مثال ، شامل اطلاعات زیر است :
<CD> <TITLE>Empire Burlesque</TITLE> <ARTIST>Bob Dylan</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Columbia</COMPANY> <PRICE>10.90</PRICE> <YEAR>1985</YEAR> </CD> <CD> <TITLE>Hide your heart</TITLE> <ARTIST>Bonnie Tyler</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>CBS Records</COMPANY> <PRICE>9.90</PRICE> <YEAR>1988</YEAR> </CD> <CD> <TITLE>Greatest Hits</TITLE> <ARTIST>Dolly Parton</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>RCA</COMPANY> <PRICE>9.90</PRICE> <YEAR>1982</YEAR> </CD> <CD> <TITLE>Still got the blues</TITLE> <ARTIST>Gary Moore</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>Virgin records</COMPANY> <PRICE>10.20</PRICE> <YEAR>1990</YEAR> </CD> </CATALOG>
2 . کد اسکریپت و برنامه :
جدول زیر ، کد فایل HTML و اسکریپت طراحی شده در آن را نمایش می دهد . همچنین خروجی واقعی مثال نیز ، نشان داده شده است . کد مثال را مرور نموده و به آن دقت نمایید . سپس در پایان مثال به تشریح نکات مهم آن می پردازیم :
<!DOCTYPE html> <html> <head> <script> if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari // برای تبادل اطلاعات ajax ساخت یک شی xmlhttp = new XMLHttpRequest(); } xmlhttp.open("GET", "cd_catalog.xml", false); // و خواندن اطلاعات آت XML باز کردن فایل xmlhttp.send(); // ارسال درخواست به سرور xmlDoc = xmlhttp.responseXML; // ذخیره پاسخ سرور در یک متغیر دلخواه x = xmlDoc.getElementsByTagName("CD"); // و ذخیره آن CD خواندن اطلاعات المنت i = 0; // تعیین شمارشگر برنامه function displayCD() { // انتخاب شده و نمایش آن CD تابع خواندن اطلاعات artist = (x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue); // نمایش اطلاعات خواننده آهنگ title = (x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue); // نمایش عنوان آهنگ year = (x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue); // نمایش سال انتشار txt = "Artist: " + artist + "<br>Title: " + title + "<br>Year: " + year; // ریختن تمام اطلاعات آهنگ در یک متغیر document.getElementById("showCD").innerHTML = txt; // صفحه جهت نمایشdiv ریختن اطلاعات متغیر بالا در عنصر } function next( ) { // تابع رفتن به آهنگ بعدی if (i < x.length - 1) { i++; displayCD( ); } } function previous( ) { // تابع رفتن به آهنگ قبلی if (i > 0) { i--; displayCD( ); } } </script> </head> <body onload="displayCD( )"> <div id='showCD'></div><br> <input type="button" onclick="previous( )" value="<<" /> <input type="button" onclick="next( )" value=">>" /> </body> </html>
3 . نکات کد فایل HTML :
در تگ body تابع ( ) displayCD فراخوانی شده ، تا در هنگام لود صفحه اطلاعات اولین آهنگ فایل XML به صورت پیش فرض نمایش داده شود .
تگ div ، اطلاعات آهنگ انتخاب شده در هر لحظه را نمایش می دهد .
دو دکمه فرمان برای انجام عملیات حرکت بین آهنگ ها به کار می روند .
E4X چیست ؟:
E4X یک استاندارد جاوا اسکریپت است که پشتیبانی مستقیم از XML را به جاوا اسکریپت اضافه می کند .
نکته : تکنیک E4X فقط به طور کامل در مرورگر فایرفاکس پشتیبانی می شود .
به وسیله E4X شما می توانید یک شی XML را همانند سایر متغیرهای دیگر زبان جاوا اسکریپت تعریف کرده و به کار ببرید . به عبارت دیگر با کدهای XML مثل یک متغیر در اسکریپت ها برخورد نمایید . همانند مثال زیر :
var x = new XML( ) ;
var y = new Date( ) ;
var z = new Array( ) ;
مثال : در مثال زیر یک بخش کد XML را به عنوان یک متغیر در یک اسکریپت تعریف کرده ایم . ابن کد XML شامل اطلاعات 2 کارمند می باشد . پس از تعریف متغیر XML ، در پایان اسکریپت با استفاده از یک دستور ، مقدار سن کارمند اول را در خروجی چاپ کنیم :
var employees= <employees> <person> <name>Tove</name> <age>32</age> </person> <person> <name>Jani</name> <age>26</age> </person> </employees>; document.write(employees.person.(name == "Tove").age);
کاربرد E4X چیست و چه فرقی دارد ؟
برای تشریح کاربرد و امکانی که E4X برای کار با اسناد XML به ما می دهد ، یک مثال را نشان داده و آن را تشریح می کنیم .
مثال : در مثال زیر ، یک کد ساده جاوا اسکریپت که بدون استفاده از قابلیت E4X است ، فایل XML ای به نام "note.xml" را خوانده و در پردازشگر جاوا اسکریپت قرار می دهد . سپس پیام خروجی فایل را بر روی صفحه نمایش داده است . به کد مثال دقت نمایید :
var xmlDoc; // IE کد برای if (window.ActiveXObject) { xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async=false; xmlDoc.load("note.xml"); displaymessage( ); } // code for Mozilla, Firefox, etc. else (document.implementation && document.implementation.createDocument) { xmlDoc= document.implementation.createDocument("","",null); xmlDoc.load("note.xml"); xmlDoc.onload=displaymessage; } function displaymessage( ) { document.write(xmlDoc.getElementsByTagName("body")[0].firstChild.nodeValue); }
بازنویسی کد با استفاده از تکنیک E4X :
حال می توانیم با استفاده از تکنیک E4X ، کد طولانی فوق را در 3 خط خلاصه نماییم . دلیل آن هم استفاده از خاصیت شی گرایی اشیا در جاوا اسکریپت است ...
var xmlDoc=new XML( );
xmlDoc.load("note.xml");
document.write(xmlDoc.body);
Namespaces ها در XML :
از Namespaces در XML ، برای جلوگیری از تداخل و شباهت اسمی تگ ها استفاده می شود .
همانطور که در بخش های قبلی با ساختار کد نویسی XML آشنا شدید ، مشاهده کردید که تگ های XML هیچ کدام از قبل تعریف شده نیستند و کاربر بنا بر سلیقه خود ، تگ های مورد نیازش را تعیین می کند .
بنابراین هر کاربر اسم های دلخواه و متفاوتی را برای تگ های خود در نظر می گیرد . حال زمانی که بخواهید فرضا دو سند XML را با هم ترکیب نمایید ، ممکن است تگ هایی با اسم مشابه در آنها وجود داشته باشد . در این حالت تداخل و مشابهت اسمی به وجود آمده و برنامه در اجرای فایل XML دچار مشکل می شود .
برای مثال دو سند XML زیر را در نظر بگیرید . سند اول حاوی تگی به نام < table > همانند یک عنصر جدول در HTML و سند دوم شامل تگ < table > به عنوان میز و بخشی از اثاثیه خانه می باشد .
در صورتی که این دو سند را با هم ترکیب نماییم ، یک مشابهت اسمی بین تگ ها به وجود می آید و دارای 2 تگ < table > خواهیم بود . در این حالت برنامه نمی تواند فرق آنها را تشخیص داده و دچار مشکل می شود .
راه حل این مسئله ، استفاده از Namespaces ها است ، در ادامه به بررسی آن خواهیم پرداخت .
<table> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table>
<table> <name>African Coffee Table</name> <width>70</width> <length>120</length> </table>
حل مشکل تداخل و مشابهت نام تگ ها در XML :
مشکل مشابهت و تداخل اسمی در XML به راحتی با قرار دادن یک پیشوند حرفی ( Prefix ) در ابتدای نام تگ ها ، حل خواهد شد .
مثلا اگر دو تگ با نام مشابه < table > داریم ، به ابتدای یکی پیشوند :f و دیگری پیشوند :h اضافه می کنیم .
در سند زیر ، دو سند را با هم ترکیب کرده و برای تگ های همنام ، پیشوند تعیین کرده ایم .
<h:table> <h:tr> <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr> </h:table> <f:table> <f:name>African Coffee Table</f:name> <f:width>70</f:width> <f:length>120</f:length> </f:table>
CDATA در XML :
تمامی متن هایی که در یک سند XML وجود دارد ، توسط پردازشگر آن خوانده و پردازش می شود . اما متن یا کدی که درون تگ < CDATA > قرار می گیرد ، توسط پردازشگر خوانده نشده و نادیده گرفته می شود .
متن ها و کدهایی که به عنوان توضیح ، راهنما و ... می خواهید درون فایل های XML خود قرار دهید و توسط موتور پردازشگر آن خوانده و نمایش داده نشود ، را بایستی درون تگ < CDATA > قرار دهید
این تگ عملکردی همانند Comments در جاوا و ... دارد .
PCDATA ، داده ایی که پردازش می شوند :
پردازشگر XML به طور معمول تمامی متنی که در یک فایل XML است را پردازش می کنند . هنگامی که یک تگ XML نیز پردازش می شود ، تمامی متن و المنت های درون آن نیز پردازش می شود . زیرا تگ های XML می توانند شامل متن و سایر المنت های دیگر باشند .
مثال : برای مثال ، پردازشگر XML تمامی متن و المنت های موجود در سند XML زیر را خوانده و پردازش می کند :
<name> <first>Bill</first> <last>Gates</last> </name>
نتیجه گیری :
PCDATA ، عنوانی است برای اطلاعات و داده هایی در یک فایل XML که توسط پردازشگر آن ، خوانده و پردازش می شوند .
CDATA ، داده هایی که پردازش نمی شوند :
عبارت CDATA به داده ها و اطلاعاتی در یک سند XML اطلاق می شود ، که نباید توسط موتور پردازشگر برنامه ، خوانده و پردازش شوند .
همانطور که در مقدمه گفتیم ، از این اطلاعات معمولا برای اضافه کردن توضیحات یا Comments و یا سایر کدهای غیر زبان XML به فایل XML استفاده می شود .
برای مثال کاراکتراهایی مثل " < " یا " & " در XML غیر مجاز هستند . به کار بردن کاراکتر " < " در کدهای XML باعث بروز خطا می شود ، زیرا پردازشگر تصور می کند که ابتدای یک تگ جدید است .
یا بکارگیری کاراکتر " $ " نیز باعث ایجاد error در برنامه می شود ، زیرا پردازشگر تصور می کند که این کاراکتر ابتدای نام یک موجودیت ( Entity ) است .
کدهایی شبیه کدهای جاوا اسکریپت ، شامل تعداد زیادی کاراکترهای " < " و یا " & " هستند . برای جلوگیری از بروز خطا در هنگام قرار دادن این کدها در سند XML ، باید آنها را در یک تگ < CDATA > قرار دهید . همانند مثال زیر :
تمام کدها و کاراکترهایی که درون تگ < CDATA > قرار دارند ، توسط موتور پردازشگر XML ، خوانده و پردازش نمی شوند .
یک تگ < CDATA > با عبارت CDATA! > شروع و با "<[[ " پایان می یابد .
مثال : در مثال زیر می خواهیم از یک قطعه کد جاوا اسکریپت در سند XML خود استفاده کنیم . برای اینکه این کد توسط پردازشگر XML خوانده نشده و error رخ ندهد ، آنا را درون یک تگ < CDATA > قرار داده ایم :
< script > <![CDATA[ function matchwo(a,b) { if (a < b && a < 0) then { return 1; } else { return 0; } } ]]> </script>
نگهداری فایل های XML بر روی سرور :
فایل های XML ، همانند فایل های HTML از متن ( text ) خالی تشکیل شده اند و توسط تمامی سرورهای مختلف وب می توانند تولید شده و نگهداری شوند . در این بخش به راه های مختلف تولید و نگهداری فایل XML بر روی انواع سرورها پرداخته ایم .
نگهداری یک فایل XML بر روی سرور :
فایل های XML ، دقیقا همانند فایل های HTML و به همان راحتی قابل ایجاد و نگهداری بر روی سرور هستند .
برای ایجاد یک فایل XML ساده ، ویرایشگر Notepad ویندوز را باز کرده و کدهای زیر را درون آن بنویسید . سپس فایل ایجاد شده را با یک نام دلخواه مثل " note.xml " ، ذخیره نمایید .
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <from> Hamed </from> <to> Ali </to> <message>Remember me this weekend</message> </note>
ایجاد و نگهداری یک فایل XML بر روی سرور ASP :
فایل های XML بر روی سرور بدون نیاز به نصب نرم افزار خاصی قابل ایجاد و نگهداری هستند .
برای ایجاد یک فایل XML توسط سرور ASP به صورت Run Time ، کد زیر را در یک فایل ASP نوشته و آن را ذخیره نمایید .
در هنگامی اجرای فایل ASP زیر ، فایل XML تولید و بر روی سرور ذخیره می شود .
نکته : حتما توجه داشته باشید که مقدار خاصیت content type در دستور فوق باید "text/xml" باشد .
<% response.ContentType="text/xml"
response.Write("<?xml version='1.0' encoding='ISO-8859-1'?>")
response.Write("<note>")
response.Write("<from>Hamed</from>")
response.Write("<to>Ali</to>")
response.Write("<message>Remember me this weekend</message>")
response.Write("</note>") %>
ایجاد و نگهداری یک فایل XML بر روی یک سرور PHP :
برای ایجاد یک فایل XML به صورت Run Time ، بر روی یک سرور PHP ، کد زیر را در یک فایل PHP نوشته و ذخیره نمایید .
در هنگامی اجرای فایل PHP زیر ، فایل XML تولید و بر روی سرور ذخیره می شود .
نکته : حتما توجه داشته باشید که مقدار خاصیت content type در دستور فوق باید "text/xml" باشد .
<?php header("Content-type: text/xml");
echo "<?xml version='1.0' encoding='ISO-8859-1'?>";
echo "<note>";
echo "<from>Hamed</from>";
echo "<to>Ali</to>";
echo "<message>Remember me this weekend</message>";
echo "</note>"; ?>
ایجاد و نگهداری یک فایل XML با استفاده از مقادیر موجود در پایگاه داده :
در مثال زیر قصد داریم تا اطلاعات فیلدهای fname و lname را از جدول tblGuestBook از یک پایگاه داده SQL Server خوانده و سپس اطلاعات را در یک فایل XML ذخیره نماییم .
برای این منظور بایستی کدی مشابه کد زیر را نوشته و آن را تحت عنوان یک فایل ASP ذخیره کنید .
توضیج مثال :
- این بخش کد نوع فایل XML را مشخص کرده و سپس یک اتصال به پایگاه داده مورد نظر را به زبان ASP کرده و آدرس و نام فایل پایگاه داده را تعیین می کند .
- این بخش از کد دستور انتحاب اطلاعات از پایگاه داده را تعیین کرده و سپس در خط دوم ، آن را اجرا کرده است . مقادیر استخراجی در متغیر rs ذخیره می شوند .
- این بخش از کد ، فایل XML را می سازد . دارای یک حلقه است ، که به ازای هر عضو یا رکورد پایگاه داده ، یک عنصر XML را می سازد و در فایل ذحیره می کند .
- در بخش آخر نیز ، اتصال باز شده به پایگاه داده بسته شده و گام آخر تولید فایل XML نوشته شده .
<% response.ContentType = "text/xml"
set conn=Server.CreateObject("ADODB.Connection")
conn.provider="Microsoft.Jet.OLEDB.4.0;"
conn.open server.mappath("/db/database.mdb")
sql="select fname,lname from tblGuestBook"
set rs=Conn.Execute(sql)
response.write("<?xml version='1.0' encoding='ISO-8859-1'?>")
response.write("<guestbook>")
while (not rs.EOF)
response.write("<guest>")
response.write("<fname>" & rs("fname") & "</fname>")
response.write("<lname>" & rs("lname") & "</lname>")
response.write("</guest>")
rs.MoveNext() wend rs.close( ) conn.close( ) response.write("</guestbook>") %>
ذخیره یک فایل XML بر روی سرو ASP :
پس از اینکه یک فایل XML را ساختید ، باید به وسیله یک دستوری آن را بر روی سرور ذخیره Save نمایید . در کد این مثال نحوه استفاده از این متد را نمایش داده ایم :
برای این منظور بایستی کدی مشابه کد زیر را نوشته و آن را تحت عنوان یک فایل ASP ذخیره کنید .
<% text="<note>"
text=text & "<to>Tove</to>"
text=text & "<from>Jani</from>"
text=text & "<heading>Reminder</heading>"
text=text & "<body>Don't forget me this weekend!</body>"
text=text & "</note>" set xmlDoc=Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async=false
xmlDoc.loadXML(text) xmlDoc.Save("test.xml") %>
Encoding فایل ها در XML :
های XML می توانند شامل کاراکترهای غیر اسکی ( کاراکترهای غیر ASCII ) مثل کاراکترهای زبان فرانسه ، عربی و ... باشند . وجود این کاراکتراها باعث ایجاد error در هنگام پردازش این فایل ها می شود .
برای جلوگیری از بروز این خطاها ، متد Encoding فایل XML خود را به صورت صریح در ابتدای سند تعیین کرده و یا آن را با فرمت Unicode ذخیره نمایید .
* Unicode : همانطور که می دانید Unicode فرمتی است که شامل تمام کاراکترهای زبان های استاندارد دنیا بوده و از همه آنها از جمله فارسی پشتیبانی می کند .
Error های Encoding در XML :
در هنگام خواندن و پردازش فایل های XML ، دو گونه ایراد و خطا براساس روش Encoding ممکن است ، رخ دهد . این خطا ها عبارتند از :
- An invalid character was found in text content :
یک کاراکتر نا معتبر در متن فایل پیدا شده است .
این خطا زمانی رخ می دهد که یک کاراکتر غیر اسکی در فایل XML وجود داشته و فایل با Encoding متناسب با آن ذخیره نشده باشد . - Switch from current encoding to specified encoding not supported. :
تغییر از این حالت Encoding به Encoding تعیین شده ممکن نیست .
این خطا زمانی رخ می دهد که مثلا فایل XML شما با یک Encoding با فرمت single-byte طراحی شده باشد ، ولی با یک Encoding با فرمت double-byte دخیره شود و یا بر عکس .
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .