# مباحث متفرقه برنامه نویسی > XML و کاربرد آن > مقاله: مجموعه مقالات آموزشی و کاربردی XML

## kiosksoft

با سلام

امیدوارم که دوستان کمک کنن تا این تاپیک رو هر روز پر محتوا تر ارائه بدیم.

*XML را بهتر بشناسیم*



جامعه علمی به ستایش از XML همچنان ادامه می‌دهد، اما احتمالآ آثار این زبان را هنوز آن قدر ندیده اید تا به دلیل این تحسین پی ببرید. فایده‌های HTML و ایمیل را همگان می شناسید؛ این دو با هم یک انقلاب در ارتباطات به وجود آورده‌اند و روش دسترس به اطلاعات را تغییر داده اند. اما XML؟ آیا واقعا یک پدیده مهم است؟ اگر درباره XML کنجکاو باشید و بخواهید بدانید که چگونه کار می‌کند و چرا اهمیت یافته است ، این مقاله را بخوانید. 
این مقاله اختلاف مهم بین HTML و XML، اختلافی که توان پشتیبانی از این انقلاب را دارد و آینده آن را قدرتمند می سازد، شرح می‌دهد. مقاله همچنین XML را می‌شکافد و توضیح می‌دهد که منظور از کلمات قابل توسعه (extensicle) ، آرایش (markup) و زبان (language) چیست؛ در نتیجه ، وقتی مفاهیم را باهم ترکیب کنید XML را بهتر خواهید شناخت و به اهمیت آن پی خواهید برد، در پایان، به کاربردهای خاص XML نگاه خواهیم انداخت تا بدانید چه مسائلی را می‌تواند حل کند و نقائص HTML را برخواهیم شمرد. 

متن چیست؟ مجموعه‌ای سازمان‌یافته از کلمات. هم کلمات و هم سازمان‌یافتگی مهم هستند، هر شعری، عبارات، سطرها، بیت‌ها، و مصراع‌هایی دارد. یک کتاب حاوی فصل، پاراگراف، بخش، محتوا، یک فهرست، و سایر خصوصیات قابل تمایز است.
ارائه یک متن در یک کتاب یا یک صفحه وب محتویات آن متن را بیان می کند و به آن یک نمای خاص می دهد. ارائه یا نما در یک رسانه خاص با نحوه تجسم دادن به یک موضوع سروکار دارد. HTML به طور کلی به نما اشاره دارد : این بخش باید حروف سیاه و درشت باشد؛ آن بخش آبی باشد؛ این مطالب را در یک جدول قرار بده؛ و مانند آن. قدرت اصلیHTML در سادگی آن است. متاسفانه، سادگی هزینه دارد و هزینه آن دستورالعمل‌های نما یا ارائه، و آرایش پیچیده آن است.
آرایش به ثبت وقایع به ترتیب (مثلا زمانی) یک متن اشاره دارد و این متن در مجموع باید بامعنی باشد. برای HTML، آرایش به شکل برچسب یا تگ‌هایی عنوان می شود که در اطراف قطعات متن جای می‌گیرند. به عنوان مثال ، خطوط نقطه‌چین دور این مقاله با استفاده از یک دستور برای نقطه‌چین بودن دور مطالب به وجود آمده‌اند. در این دستور، گفته شده که :«نقطه‌چین ها را دور کادر مطالب با رنگ سبز نشان بده.»
درک XML 
مهم‌ترین راز درک XML این مطلب است که XML خودش به طور کامل نما یا ارائه را نادیده می‌گیرد. با ساختار کلی، یا سازمان اطلاعات در یک متن، سروکار دارد. برای شعری که با این زبان ارائه می شود، تگ‌هایی برای بیت و مصراع وجود خواهد داشت. برای یک سفارش مشتری، تگ‌ها ممکن است به شکل customer-id یا مثلا order-id باشد و به این وسیله متن و ساختار آن را نشان می‌دهد. 
بخش توسعه‌دهنده نیز به همین مناسبت در این زبان وجود دارد. یعنی این زبان می‌تواند هر ساختار منطقی‌ای را اداره کند، چون به همه اجازه می‌دهد که تگ‌های ساختمندی برای یک ناحیه متنی خاص بسازند.
شیاد این مطالب پیچیده به نظر بیایند. جدایی ساختار و نما یا ارائه در واقع یک فکر عالی است. حال کمی دقیق‌تر به آن نگاه می کنیم: تیتر بالای یک مقاله شاید از نظر شما ساده بیاید، ولی از نظر کامپیوتر، تشخیص آن مشکل است.
این زبان در واقع مخلوطی از علائم اختصاری را گرد آورده است. مانند CSS , XSL , XML Schemas , XLink , XPointer و ... که متاسفانه شرح آنان در این مقاله نمی گنجد.
این زبان یک زیرساختار است، بنابراین دیدن آثار برای ما دشوار است. آثار و بهینه‌سازی‌های آن را سازندگان صفحات وب می‌بینند و نه کاربران عادی؛ به عنوان مثال، یک غزل باید ۱۴بیت دو مصراعی داشته باشد، یک DTD (Document Type Definition) برای یک غزل می تواند به منظور تایید اعتبار متن به کار رود.
یک بهینه‌سازی و اثر دیگری که با استفاده از این زبان حاصل می‌شود آن است که سبک‌های ارائه چند‌گانه را ممکن می‌سازد. اگر ساختار سند (مانند یک مقاله یا پاراگراف) برای یک قالب خاص فراهم باشد، آن را می‌توان با استفاده از سبک‌های مختلف ارائه کرد. برگه‌های شیوه (style sheet) که امروزه به عنوان یکی از مهم‌ترین اصول طراحان صفحات وب به کار می رود، این نقش را بر عهده دارد. که از میان آن‌ها CSS و XSL دو نمونه رقیب هستند. اگر یک سند XML را با یک برگه شیوه ترکیب کنید شبیه به یک کتاب درسی خواهد شد؛ آن را با یک برگه شیوه دیگر ترکیب کنید یک نما یا ارائه کتاب کمدی به وجودمی‌آید. یا، سازندگان سایت می‌توانند یک سند XML را با یک برگه شیوه دیگر ترکیب کنند تا برای صفحه نمایش یک تلفن همراه مناسب شود. امکانات زیادی در این زبان وجود دارد، چون به عنوان یک سازنده سایت برای رسیدن به یک چهره جدید نیازی به تغییردادن سند ندارد.
فایده سوم این زبان یافتن بسیار راحت اطلاعات از درون اسناد XML است و همچنین موتورهای جستجو در اسناد این زبان به نتیجه دقیق‌تری می‌رسند.
این زبان چنان دست سازندگان صفحات وب را باز گذاشته که آن‌ها به شدت علاقه‌مند به استفاده از این زبان هستند.
آن‌چه خواندید مختصری بود از XML، سعی کردم آن‌را تا جایی که امکان دارد مختصر و ساده توضیح دهم. قطعا کامل نبود و بسیاری را راضی نکرد، بنابراین شما می‌توانید اطلاعات بیشتر در این زمینه را در اینجا و اینجا بیابید.

منبع:irannew.com

----------


## kiosksoft

توصیه :

دست اندركاران تهيه سيستمهاي اطلاعاتي به اين مسئله واقفند كه بخش مهمي از هر سيستم اطلاعاتي، داده هاي موجود در آن است و سرمايه گذاري كه در اين راه انجام ميگيرد، مهم تر از سرمايه گذاري است كه براي خريد سخت افزار يا نرم افزار مي‌شود. بنابر اين موسساتي كه سرمايه هاي خود را صرف توليد اطلاعات مينمايند بايستي قادر باشند، تا داده هاي خود را در هر زمان دلخواه، بدون صرف هزينه هاي گزاف، از سيستمي به سيستم دلخواه ديگر منتقل نمايند. 
به منظور نيل به اين خواسته، موارد ذيل توصيه مي‌گردد:
- در تهيه سيستمهاي اطلاعاتي، به اين نكته توجه شود كه سيستم مورد نظر، قابليت دريافت و يا ارسال اطلاعات به زبان xml را دارا باشد. دلايل ذيل براي انتخاب اين زبان مورد توجه است:

Xmlo  استانداردي فراگير و مورد قبول در سطح بين المللي بويژه در سه سال اخير بوده است.
o اين زبان بسيار انعطاف پذير بوده و قابليت پذيرش داده هاي مختلف با ساختارهاي مختلف را داراست.
o با استفاده از اين زبان، محدوديتهايي همچون طول فيلدها، امكان تكرار آنها و نيز شكستن آنها به اجزاي مختلف تا هر سطح دلخواه كه در سيستمها و زبانهاي ديگر مطرح بود، ديگر مطرح نيست.
o داده هاي آماده شده توسط اين زبان به سادگي با انواع برنامه هاي ساده تحت ويندوز حتي notepad قابل مشاهده و تشخيص است و نياز به تفسيرهاي پيچيده و ابزارهاي مختلف ندارد.
o اين استاندارد به لحاظ قابليتهاي بسياري كه داراست، توسط شركتهاي بزرگ بين المللي به سرعت در حال توسعه و پشتيباني چشمگير است.
o انواع استانداردهاي پشتيبان بوجود آمده طي دو سه سال اخير مثل XForms XHTML XLink XML XML Base XML Encryption XML Key Management XML Query XML Schema XML Signature XPath XPointer XSL and XSLT حكايت از تحولي دارد كه اين استاندارد در عين سادگي در جهان فنآوري اطلاعات بوجود آورده و خواهد آورد.

- اگر داده هاي سيستم به زبان فارسي است، از كدپيج  windows-1256 براي دريافت و يا ارسال اطلاعات استفاده شود. دلايل ذيل براي انتخاب اين استاندارد مورد توجه است:

o اين استاندارد توسط شركت بزرگ مايكروسافت پشتيباني مي‌شود. وجود ابزارهايي از جمله مايكروسافت آفيس، كه داراي قابليتهاي بسيار ارزشمندي به صورت مجتمع است و به عبارت بهتر، پشتيباني مايكروسافت از اين كدپيج، بر ارزشهاي اين كدپيج مي‌افزايد. 
o گفتني است، فايلهايي كه با اين كدپيج ايجاد ميشوند، بسادگي قابليت نمايش توسط مرورگرها را داشته و بنابراين قابل انتشار روي وب هستند. 
o همچنين براي ديدن اين نوع فايلها، نيازي به download كردن فايلهاي فونت فارسي نيست.

- استانداردهاي مربوط به هر نوع اطلاعات در هنگام دريافت و يا ارسال اطلاعات رعايت گردد. در مورد اطلاعات كتابشناختي استفاده از MODSنبنابه دلايل ذيل توصيه مي‌گردد:

o تكيه اين استاندارد بر مارك 21 كه قبلا در كشور مورد پذيرش قرار گرفته است.
o مزاياي اين استاندارد نسبت به iso2709 كه چندين محدوديت غير قابل چشم‌پوشي دارد.
o نظر به ساختار قابل انعطاف اين فرمت، كه تكيه بر xml دارد، پيش بيني مي‌شود كه به عنوان فرمت واسطي براي كليه ماركهاي موجود در دنيا باشد.
o پشتيباني مادي و معنوي كتابخانه كنگره امريكا از اين فرمت كه نقش قابل توجهي در توسعه اين استاندارد خواهد داشت.

منبع:irandoc.ac.ir

----------


## kiosksoft

10 نکته در مورد xml

دنيای XML مملو از تکنولوژی های ديگر، نظير XLink,Namespace,DTD,Schema,CSS,XSL,XHTML و ... است .افراديکه قصد آشنائی با XML را دارند، همواره با اين سوال مشکل مواجه هستند که از کجا می بايست آغاز نمايند. در اين مقاله به بررسی ده نکته مهم بمنظور آشنائی با XML  پرداخته تا از اين رهگذر مسيری مناسب برای علاقه مندان به فراگيری اين تکنولوژی مهم ،  مشخص گردد. 
*نکته اول : XML  گزينه ای برای ارائه ساختار داده ها* 

داده های ساختيافته شامل مواردی نظير صفحات گسترده ، دفترچه های آدرس ،  پارامترهای قابل پيکربندی و ... می باشند . XML ، مجموعه ای از قوانين بمنظور طراحی ساختار داده های مورد نظر است . XML ، بعنوان يک زبان برنامه نويسی تلقی نشده و برای استفاده از آن اجباری به داشتن تجربه لازم برنامه نويسی نخواهد بود . با استفاده از XML ، کامپيوترها بسادگی قادر به توليد و خواندن اطلاعات و اطمينان از عدم مبهم بودن ساختمان داده ها می باشند . XML ، بسط پذير ، مستقل از پلات فورم و مورد حمايت های  بين المللی و محلی است . XML ، بطور کامل Unicode را حمايت می نمايد . 

*نکته دوم* : *XML شباهت زيادی به HTML دارد*

XML ، همانند  HTML از تگ ها و خصلت ها استفاده می نمايد.در  HTML ، هر تگ و يا خصلت دارای عملکرد و  معنی از قبل مشخص شده ای بوده  وبا بکارگيری هر تگ ، نحوه نمايش اطلاعات ( بين تگ ها ی استفاده شده) برای  مرورگر تبين می گردد. XML ، با استفاده از تگ ها ، محدوده مشخصی برای داده ها را تعيين  و عملا" مسئوليتی در رابطه با  تفسير تگ ها و داده های همراه آنها  را نداشته و اين عمليات را به برنامه هائی که يک فايل XML را می خوانند،  واگذار می نمايد . مثلا" در صورتيکه از  تگ 
  در يک سند XML استفاده شده باشد ، نمی توان اين ادعا را داشت که تگ فوق نشاندهنده يک  پاراگراف است . ممکن است تگ فوق، نشاندهنده price ، parameter  و يا يک person باشد . 

*نکته سوم* : *XML بصورت متن است .* 

برنامه هائی که داده های ساختيافته توليد می نمايند، اغلب داده های خود را برروی ديسک ذخيره می نمايند . فرمت ذخيره سازی اطلاعات ممکن است بصورت متن و يا باينری باشد . مهمترين مزيت ذخيره سازی داده ها بصورت متن ، امکان مشاهده داده ها بدون نياز به برنامه ای است که اطلاعات را توليد کرده است . حتی می توان اطلاعات فوق را با استفاده از يک ويرايشگر متنی تغيير داد . فرمت های اطلاعاتی مبتنی بر متن،  به پياده کنندگان نرم افزار قابليت های بيشتری را در خصوص اشکال زدائی برنامه ها نيز می دهد. فايل های XML ، مشابه HTML  بصورت متن می باشند . قوانين موجود در XML ،  با صراحت و شفافيت بيشتری ارائه شده است . فراموش کردن يک تگ و يا عدم قرار دادن خصلت بين علامت "" باعث می گردد که يک فايل XML غيرقابل استفاده گردد . در صورتيکه در فايل های HTML مسائل فوق تحمل و اغلب مجاز خواهد بود .  اگر  يک فايل XML دارای مشکل باشد ، برنامه استفاده کننده پس از مواجه شدن با مشکل ، عمليات خود را در محل بروز خطاء متوقف و يک پيام خطاء را ارائه خواهد داد . 

*نکته چهارم* : *ظرفيت فايل های* *XML**  زياد  است* .

با توجه به اينکه فرمت فايل های XML ، بصورت متنی بوده و از تگ ها بمنظور مرزبندی داده ها استفاده می شود ، اين نوع فايل ها  معمولا" دارای حجم بيشتری نسبت به  فايل هائی  با فرمت باينری می باشند . همانگونه که در نکته سوم اشاره گرديد، مهمترين مزيت يک فرمت مبتنی بر متن ، قابليت مشاهده آن و مهمترين اشکال ، اشغال حجم بيشتری از  فضای ذخيره سازی است . از طرف ديگر با توجه به وجود  برنامه های فشرده سازی نظير Zip  ، امکان فشرده سازی فايل ها بخوبی و با سرعت بالا  فراهم می گردد . پروتکل های ارتباطی نظير پروتکل های مربوط به مودم و يا HTTP/1.1 ( پروتکل اصلی در وب ) قادر به فشرده سازی داده ها و صرفه جوئی در پهنای باند استفاده شده می باشند . 

*نکته پنجم* : *XML خانواده ای از  تکنولوژی ها  است* 

XML 1.0  ، مشخصات ، ماهيت و قوانين موجود در رابطه با  تگ ها  و خصلت ها  را تعريف می نمايد . خانواده XML ،  شامل مجموعه ای در حال رشد از ساير ماژول هائی است که سرويس های مفيدی را در خصوص انجام عمليات و خواسته های مهم بر عهده دارند . XLink ، روشی استاندارد برای افزدون ابر لينک ها به يک فايل XML را مشخص می نمايد . XPointer ، گرامری مناسب برای اشاره  به بخش های متفاوت يک سند XML است . يک XPointer ، شباهت زيادی به يک URL داشته ، با اين تفاوت که در مقابل اشاره به سندهائی بر روی وب ، به بخش های متفاوت در يک سند XML اشاره می نمايد . CSS ،  زبان style sheet قابل استفاده برای XML و HTML است . XSL ، يک زبان پيشرفته برای ارائه  style sheet است . تکنولوژی فوق بر اساس XSLT است . XSLT ،  يک زبان تبديل  بمنظور سازماندهی مجدد ، افزودن و يا حذف تگ ها و خصلت ها است . DOM ، استانداردی با مجموعه ای از توابع برای انجام عمليات برروی يک سند XML (  يا HTML) از طريق يک زبان برنامه نويسی است . XML Schema  ، به پياده کنندگان ، امکان  تعريف دقيق ساختار اطلاعات را ارائه می نمايد . در اين رابطه ماژول های متعدد ديگری نيز وجود داشته که در خانواده بزرگ XML  دارای جايگاه خاص خود می باشند . 

*نکته ششم* : *XML جديد است اما نه خيلی جديد* 

پياده سازی XML از سال 1996 آغاز و در فوريه سال 1998 توسط کنسرسيوم وب عرضه گرديد . ممکن است ابهامی در خصوص جوان بودن تکنولوژی فوق در ذهن ايجاد گردد . در پاسخ می بايست به اين نکته اشاره گردد که  تکنولوژی فوق ، خيلی هم جديد نيست . قبل از XML ، تکنولوژی SGML وجود داشت . پياده کنندگاه در اوايل دهه 80 در مقياس وسيعی  از آن برای پروژه های بزرگ مستند سازی استفاده می نمودند . پياده سازی HTML از سال 1990 آغاز گرديد. طراحان XML ،  بهترين بخش های SGML  را بهمراه تجارب موجود در رابطه با HTML  ، ترکيب  و محصولی  را توليد نموده اند  که قدرتی کمتر از SGML  ندارد . SGML اغلب برای مستند سازی فنی استفاده شده و از آن برای ساير موارد مربوط به داده ها  بندرت استفاده می گردد . XML دقيقا" برخلاف وضعيت  فوق است . 

*نکته هفتم* : *XML  باعث هدايت HTML بسمت XHTML** می گردد .*

يکی از موارد مهم کاربرد XML  ،  تکنولوژی  XHTML است . XHTML  ، گزينه بعدی نسبت به HTML است . XHTML دارای المان های مشابه المان های استفاده شده در HTML است . گرامر استفاده شده در XHTML ، بگونه ای تغيير پيدا کرده که منطبق بر قوانين مربوط به XML باشد . سندهای  مبتنی بر XML ،  گرامر خود را از XML به ارث برده و آن را با روش های خاصی محدود می نمايد . ( مثلا" XHTML امکان استفاده از 
را داده ولی امکان استفاده از را نخواهد داد ) در XHTML  به گرامر موجود ، مفهوم نيز اضافه شده است . ( مثلا" XHTML از تگ 
برای يک پاراگراف استفاده می نمايد نه برای price و يا person ) 

*نکته هشتم* : *XML ماژولار است .* 

XML ، امکان تعريف يک فرمت جديد سند را با ترکيب و استفاده مجدد از ساير فرمت ها فراهم می نمايد . با توجه به اينکه دو فرمت بصورت مستقل از يکديگر طراحی و پياده سازی می گردند، ولی  ممکن است از المان ها و يا خصلت هائی با اسامی مشابه ، استفاده شده باشد . در زمان ترکيب فرمت های فوق،  می بايست تدابير لازم پيش بينی گردد . ( مثلا" ممکن است تگ 
در يک فرمت، مفهوم پاراگراف را داشته در صورتيکه در فرمت ديگر، دارای مفهوم person باشد ) . بمنظور حل مشکل فوق ( وجود اسامی مشابه با مفهوم متفاوت ) ، namespace ارائه شده است . XSL و RDF نمونه های مناسبی از فرمت های مبتنی بر XML بوده که از namespace استفاده می نمايند . 

*نکته نهم : XML پايه و اساس RDF و سمنتيک وب است .*

RDF)Resource Description FrameWork ) يک فرمت متنی مبتنی بر XML بوده که تشريح منابع و برنامه های متاديتا ( نظير يک برنامه موزيک playlist و يا آلبوم عکس ) را حمايت می نمايد . مثلا" RDF  می تواند اين امکان را فراهم آورد که يک آلبوم عکس وب را با استفاده از اطلاعات مربوط به ليست تماس شخصی ، ايجاد و در ادامه برنامه سرويس گيرنده پست الکترونيکی قادر به ارسال يک پيام بصورت خودکار برای افراد موجود در آلبوم باشد . همانگونه که HTML باعث ترکيب سندها  و برنامه های مبتنی بر فرم ها در وب می گردد ، RDF با يکپارچگی برنامه ها و آژانس ها ،   يک وب سمنتيک ( وبی که تعامل اطلاعاتی بين اجزای آن کاملا" مشهود و مدون است ) ايجاد می نمايد. 

*نکته دهم : حق استفاده از XML رايگان  بوده ، مستقل از پلات فورم است و بخوبی حمايت می گردد.*

با انتخاب XML ، برای پياده سازی يک پروژه از امکانات حمايتی متنوع و گسترده ای در رابطه با ابزارها و مهندسين با تجربه بهره مند خواهيد شد . انتخاب XML ، مشابه انتخاب SQL برای بانک اطلاعاتی است . در اين حالت همچنان نياز به ايجاد بانک اطلاعاتی ، نوشتن برنامه ها و روتين های لازم بمنظور انجام عمليات دلخواه خواهد بود . با توجه به اينکه حق استفاده از XML رايگان  بوده می توان نرم افزار خود را با استفاده از آن ، بدون پرداخت هزينه ای طراحی نمود . 
منبع:srco.ir

----------


## kiosksoft

*XML چيست و چرا دارای اهميت فراوان است ؟*

تاکنون مقالات فراوانی در باره XML نوشته شده است، اغلب مطالب عنوان شده صرفا" بر روی يک موضوع خاص تمرکز داشته و از زاويه ای کاملا" اختصاصی و در عين حال محدود به بررسی تکنولوژی XML پرداخته و بندرت به موارد اساسی و خانواده بزرگ استاندارهای XML اشاره شده است. در اين مقاله عناصر کليدی مرتبط با تکنولوژی XML تشريح و ارتباط آنها تبين و جايگاه هر يک از آنها برای پياده کنندگان و طراحان برنامه های اطلاعاتی تشريح می گردد. پس از مطالعه اين مقاله ، خوانندگان با استانداردهای کليدی : XML,XSL,XML-Schema,DOM,SAX,Namespace,XLink بهمراه تکنولوژی های مربوطه آشنا خواهند شد. 
تعريف اصطلاحات و واژه ها 
در ابتدا لازم است با کلمات تشکيل دهنده XML يعنی Extensible ، Markup و Language آشنا شويم .Markup ، واژه ئی برای متاديتا است . متاديتا ، اطلاعاتی در رابطه با اطلاعات است . قدمت استفاده از Markup به قبل از کامپيوتر بر می گردد . مثلا" در دنيای نشر از علائم خاصی در متن های ويرايش شده استفاده تا به پردازنده متن ( انسان و يا ماشين ) اعلام شود ، چه نوع عملياتی را در رابطه با اطلاعات می بايست انجام دهد. HTML يکی از زبان های کلاسيک نشانه گذاری است . مثلا" با افزودن تگ <Bold> به مرورگر اعلام می شود که به چه صورت می بايست اطلاعات نمايش داده شوند . 
زبان (Language) ، به مجموعه ای از کلمات معنی دار و با مفهوم که عده ای از آنها برای بيان خواسته ها ی خود استفاده می نمايند ،اطلاق می گردد . ( مثلا" زبان فارسی و يا انگليسی ) 
با کنار هم قرار دادن دو واژه اشاره شده ، با زبان نشانه گذاری مواجه خواهيم شد . زبان نشانه گذاری ، به مجموعه ای از کلمات معنی دار و با مفهوم که توسط عده ای (با آگاهی لازم انتخاب ) استفاده می گردد ، اطلاق می گردد. HTML ، نمونه ای مناسب در اين زمينه است . تمام افرادی که از تگ های HTML استفاده می نمايند ، بدرستی نسبت به مفهوم و جايگاه هر يک از تگ ها آشنائی داشته و با آگاهی کامل آنها را برای بيان خواسته های خود استفاده می نمايند. مثلا" مشخص است که استفاده از تگ <H1> چه نوع پيامدهائی را بدنبال خواهد داشت . تگ فوق ، توسط مولفين صفحات وب آگاهانه انتخاب می گردد و مرورگرها نيز متناسب با تعاريف از قبل مشخص شده ، واکنش مناسب خود را در رابطه با نحوه نمايش انجام خواهند داد. يک زبان بسط پذير(Extensible) ، زبانی است که دارای مکانيزم لازم برای افزودن کلمات بگونه ای است که توسط ساير استفاده کنندگان نيز قابل فهم باشد . در دنيای واقعی و در ارتباط با زبان های طبيعی ما هرگز شاهد چنين وضعيتی نخواهيم بود . ( افزودن يک واژه با معنی مورد نظر خود و استفاده از واژه با همان معنی توسط ساير استفاده کنندگان ) با توجه به تعاريف ارائه شده ، يک زبان نشانه گذاری بسط پذير ، می بايست يک زبان نشانه گذاری با قابليت افزودن کلماتی بيشتر باشد . در عمل زبان نشانه گذاری بسط پذير ، به سيستمی برای تعريف تمام زبا ن های نشانه گذاری با قابليت توسعه وضعيت موجود ، اطلاق می گردد . 
SGML HTML و XML 
SGML)Standard Generalize Markup Language) سرچشمه XML بوده و در سال 1988 استاندارد شده است . HTML)HyperText Markup Language) زبانی است که در ابتدا با استفاده از SGML تعريف گرديد. HTML يک زبان نشانه گذاری است ، بنابراين انتظار داريم شامل مجموعه ای از تگ ها بمنظور کنترل قالب و رفتار اطلاعات در مستندات باشد . XML ، يک زبان نشانه گذاری مشابه HTML نمی باشد . XML ، زيرمجموعه ای از SGML است ( مکانيزمی برای تعريف زبان های نشانه گذاری ) . XML همانند SGML يک زبان نشانه گذاری بسط پذير بوده اما بر خلاف SGML برای استفاده بر روی وب بهينه شده است . 
مفاهيم اساسی 
لازم است که مجددا" به اين نکته مهم اشاره گردد که XML ، يک زبان نشانه گذاری نبوده و در مقابل مکانيزمی برای ايجاد زبان های نشانه گذاری اختصاصی است . XML ، شامل مجموعه ای از استانداردها ی متنوع با کاربردهای خاص است . XML ، يک زبان نشانه گذاری نبوده و در عين حال يک زبان برنامه نويسی هم نيست . از XML برای ارائه اطلاعات استفاده شده و بمنظور پردازش اطلاعات، می بايست برنامه هائی نوشته گردد . 
از XML در موارد زير می توان استفاده کرد :
● مبادله اطلاعات بين برنامه های نامتجانس ، بنگاه های تجاری و بانک های اطلاعاتی 
● امکان فعال نمودن مدلی برای نمايش اطلاعات يکسان بر روی دستگاههای متفاوت با اهداف و خوانندگان گوناگون 
● يک قالب ذخيره سازی مناسب برای داده ها 
استانداردهای خانواده بزرگ XML 
از واژه XML اغلب برای بيان يک استاندارد بين المللی استفاده می گردد . در برخی حالات واژه فوق برای بيان تمام استانداردهای مرتبط با XML نيز استفاده می گردد . اکثر کاربران با استانداردهای XML سرو کار ندارند. استانداردهای موجود اغلب توسط افراديکه نرم افزار توليد و يا بر روی سندهای XML پردازشی را انجام می دهند ، استفاده می گردد . شناخت استانداردهای موجود در اين زمينه مهم بوده و لازم است با جايگاه هر يک آشنا شويم . يکی از روش هائی که می توان استانداردهای موجود را بدرستی سازماندهی و بخاطر سپرد ، توجه و تمرکز بر اهدافی است که آنها دنبال می نمايند. جدول زير استانداردهای موجود بهمراه اهداف و قابليت های هر يک را نشان می دهد.
امکانات موجود هدف 
XML
Namespaces
XML-Schemas تعريف يک زبان XML
CSS (Cascading Style Sheets)
XSL (Extensible Style Language)
XSLT (XSL Transformations) فرمت و نمايش سندهای XML 
DOM (Document Object Model)
SAX (Simple API for XML)
XSLT پياده سازی برنامه 
Such as:
SOAP (Simple Object Access Protocol) 
SVG (Scalable Vector Graphics) 
WML (Wireless Markup Language) 
XCBL (XML Common Business Library) مبادله اطلاعات بين سيستم ها 
در ادامه به بررسی هر يک از استانداردهای فوق و نحوه ارتباط آنها با يکديگر خواهيم پرداخت :
تعريف زبان های XML 
با استفاده از XML ، می توان تگ های نشانه گذاری را تعريف که توسط مجموعه ای از مستندات که خصايص مشابهی را به اشتراک می گذارند ،استفاده گردد . مثلا" مجموعه ای از پيام های تجارت الکترونيکی. مورد فوق اصطلاحا" document type ناميده می گردد . ( مشابه يک کلاس در طراحی شی گراء ) . يک Document instance ، نوع خاصی از يک سند است . مثلا" يک ليست فروش خاص . در پروژه های XML ، در ابتدا Document types با توجه به اطلاعاتی که می بايست بر روی آنها عملياتی صورت پذيرد ، طراحی و در ادامه با ايجاد نرم افزارهای لازم ، اقدام به ايجاد و پردازش نمونه هائی از سند می گردد . XML مجموعه ای قدرتمند از بلاک های ساختمانی سطح پايين بمنظور طراحی Document types را ارائه می نمايد. نمونه سند زير، شامل مجموعه ای اطلاعات از يک بانک اطلاعاتی شخصی است . 
مثال : يک سند XML شامل اطلاعات شخصی 
<personnel-data>
<person ID="PE1">
<name>
<first-name>Webmaster</first-name>
<last-name>Admin</last-name>
</name>
<working-location office-id="OF1"/>
<title>Web master and administrator</title>
</person>
<office ID="OF1">
<name>Head Office</name>
<address>Iran Avenue</address>
</office>
</personnel-data>
سند فوق شامل چندين بلاک ساختمان اساسی XML است .
● سند فوق ، دارای المان هائی است که قابل مقايسه با اشياء در سيتستم شی گراء و يا فيلد در بانک های اطلاعاتی رابطه ای است . يک المان با تگ شروع ، آغاز و با تگ پايان ، خاتمه می يابد . بين دو تگ شروع و پايان هر نوع اطلاعاتی می تواند قرار گيرد . 
● يک المان می تواند دارای محتويات باشد. محتويات ، متن موجود بين تگ های شروع و پايان است . مثلا" Webmaster و Admin بعنوان محتويات المان در مثال فوق مشاهده می گردند. 
● يک المان دارای خصلت است . خصلت ، شامل اطلاعات تکميلی بوده که در بخش تگ شروع مربوط به المان بصورت : نام و مقدار قرار می گيرند . در مثال فوق ID و office-id ، بعنوان خصلت مطرح بوده و محتويات آنها PE1 و OF1 ، بعنوان مقادير خصلت در نظر گرفته می شوند .
● يک المان می تواند تهی (Empty) باشد. در مثال فوق <Working-location> يک المان تهی است . معمولا" المان های تهی ، بعنوان فضا نگهدارنده هائی برای خصلت ها می باشند. 
● المان ها می توانند شامل ساير المان ها باشند . ( المان های تودرتو ) . از المان های تودر تو برای ارائه اطلاعات سريال ( مجموعه ای از اشياء ، سطرهائی از داده و يا ساير اطلاعات مورد نظر ) استفاده گردد . 
● خصلت می تواند شامل ساير خصلت ها ويا المان ها باشد . 
● محتويات المان ها و يا مقادير خصلت ها ، می توانند بعنوان يک اشاره گر به ساير آيتم های موجود در سند نيز ايفای وظيفه نمايند.بمنظور نيل به هدف فوق XML روش های متعددی را ارائه نموده است . مثلا" خصلت office-id با مقدار OF1 ، درون <working-location > به خصلت ID المان <office> اشاره می نمايد. اشاره گره های فوق مشخص می نمايند که محل کار شخص PE1 در OF1 است . 
بلاک های ايجاد يک سند XMl در عين سادگی ، دارای انعطاف و قدرت لازم بمنظور حمايت از روش های متفاوت مدل سازی اطلاعات می باشند : اشياء ، شبکه ای ، سلسله مراتبی، رابطه ای و ... 
خوش شکل ( Well-Formed ) و معتبر ( Valid )
با استفاده از XML ، می توان اقدام به ايجاد سندهای رسمی و غيررسمی نمود. در پروژه های کوچک و يا زمانيکه قصد نمونه سازی وجود داشته باشد ، می توان با سرعت اقدام به ايجاد سندهای "خوش شکل" نمود . در پروژه های بزرگ و يا پروژه هائی که شامل سيستم های متعددی می باشند، سندهای معتبر ايجاد می گردد. 
قوانين يک سند خوش شکل
● وجود صرفا" يک المان ريشه 
● هر المان غيرتهی دارای تگ های شروع و پايان است . 
● تمام المان های می بايست با نظم خاصی تودرتو شده و هيچگونه تقابلی بين آنها وجود نداشته باشد.
يک سند XML زمانی معتبر است که اولا" خوش شکل بوده و ثانيا" : 
● دارای يک Schema ( پيش نويس ) و يا DTD)Document Type Definition) باشد. 
● سازگار با قوانين موجود در Schema 
پيش نويس ها (Schemas) باعث اعتبار و صحت يک سند XML می گردند. 
واژه Schema ، به قوانينی اطلاق می گردد که به مجموعه ای از سندهای با ساختار مشابه ، نسبت داده می شود . واژه فوق مختص XML نبوده و در ساير موارد از واژه فوق نيز استفاده می گردد . در رابطه با XML قوانين موجود به موارد زير اشاره خواهند داشت :
● از چه المان ها و خصلت هائی استفاده شده است ؟
● نحوه استقرار المان ها و خصلت ها به چه صورت است ؟
● هر يک از المان ها و يا خصلت ها شامل چه نوع اطلاعاتی می توانند باشند .
XML برای تعريف پيش نويس ها (Schemas) از دو زبان استفاده می نمايد : DTD و XML-Schema 
DTD ، مکانيزمی برای تعريف پيش نويس ها بوده که در ابتدا بمنظور استفاده در SGML طراحی و در ادامه XML نيز از آن استفاده کرد . محوريت DTD بر سند استوار بوده و دارای امکانات و ويژگی های لازم نظير : نوع داده ها ، دامنه ها و ... نمی باشد. گرامر استفاده شده در DTD کاملا" اختصاصی بوده و ابزارهای اندکی بمنظور پردازش آنها وجود دارد . 
XML-Schema ، يک استاندارد جديد بوده که مختص XML طراحی شده است . گرامر استفاده شده مبتنی بر XML است . تکنولوژی فوق بدرستی محدوديت های DTD را برطرف نموده و اکثر ابزارهای توليد شده توسط عرضه کنندگان معتبر ، مجهز به تکنولوژی فوق می باشند. به افراديکه جديدا" به دنيای XML وارد شده اند ، توصيه می گردد که در صورت امکان گرامر DTD را فراموش و خود را با استاندارد XML-Schema وفق نمايند . 
چه زمان اعتبار لازم است ؟ 
سندهای "خوش شکل" ، بسرعت آماده شده و بسادگی استفاده می گردند. تاکنون نرم افزارهای متعددی نوشته شده که در آنها از سندهای " خوش شکل" ، استفاده شده است . با اين اوصاف ،چه زمان می بايست از يک پيش نويس (Schema) رسمی استفاده کرد ؟ در پاسخ به سوال فوق می توان گفت که " پيش نويس ها باعث ارائه صلاحيت لازم بمنظور پردازش های مبتنی بر داده ها می باشند . بدين ترتيب و در زمانيکه اطلاعات موجود در يک سند XML ، توسط يک پردازنده Schema ، پردازش می گردد، اطلاعاتی حذف و يا ناديده گرفته نخواهند شد. در اين راستا از پيش نويس های نوشته شده بمنظور : بررسی صحت محتويات، مقادير پيش فرض برای المان ها ، ارائه کمک در زمان ويرايش يک سند XML ، ترجمه از يک فرمت XML به فرمت ديگر ، استفاده می گردد . 
در اين راستا ، می توان کدهائی را نوشت که تمام عمليات فوق را انجام دهند ولی کدهای نوشته شده محدود به يک نوع سند خاص خواهند بود . اطلاعات موجود در پيش نويس اين امکان را فراهم می آورند ، که با نوشتن يک پردازنده پيش نويس از آن در سندهای متفاوت بدون نياز به برنامه نويسی مجدد استفاده کرد . سندهای شامل پيش نويس ، با يک فرمت استاندارد ايجاد و بسادگی امکان اشتراک آنها فراهم می گردد . 
Namespace مشکل تصادم اسامی را برطرف می نمايند
در زمان عمليات بر روی سندها و برنامه های مبتنی بر XML ، بدفعات نياز به ترکيب دو سند مجزا و ايجاد سند جديد احساس خواهد شد. با انجام هدف فوق، با چالش های جدی در رابطه با تصادم (Conflict) اسامی برخورد خواهيم کرد : المان هائی که دارای تگ های يکسان ولی معانی متفاوت می باشند . 
مثلا" فرض نمائيد ، بخواهيم سندی که دارای يک تگ <title> ( تگ فوق به عنوان شغلی يک فرد اشاره دارد ) است را با سند ديگر که او هم دارای يک تگ <title> ( تگ فوق به عنوان يک فيلم اشاره دارد ) است را بايکديگر ترکيب نمائيم . زمانيکه تگ های فوق در سند های مجزا بوده و يا حتی در يک سند يکسان قرار داشته باشند با مشکلاتی مواجه نخواهيم شد ( در اين حالت قصد پردازش اتوماتيک بر روی المان های <title> را نداريم ) مشکل از زمانی شروع می گردد ، که کدهائی بمنظور پردازش اتوماتيک بر روی المان های <title> نوشته گردد . در چنين حالتی لازم است از نوع تگ آگاهی لازم را پيدا کرد . 
بمنظور حل مشکل فوق از XML Namespace استفاده می گردد . Namespace ،مکانيزمی است که بهمراه يک سند تعريف ، تا ارتباط مفهمومی مجموعه ای از عناصر با يکديگر را مشخص نمايد. بدين ترتيب برای هر المان محدوده و يا فضائی تعريف و بر همين اساس با آنها برخورد عملياتی خواهد شد. برای هر Namespace می توان يک شناسه تعريف و در ادامه با استفاده از شناسه تعريف شده بصورت پيشوند در کنار نام المان تکليف عملياتی المان را مشخص کرد. مثلا" می توان يک NameSpace بصورت زير تعريف کرد :
Xmlns:Tehran=www.yourc ompany.com/test1 
در ادامه می توان در سند مربوطه ، بصورت :<Tehran:Test1> به آن مراجعه کرد . بدين ترتيب شما و يا برنامه مورد نظر ، برای پردازش آگاهی لازم را پيدا خواهد کرد . ( تگ مورد نظر از Namespace تعريف شده مشتق می گردد ) 
Html بعنوان اسنانداردی جهت نمايش اطلاعات در عرصه وب ، سالها است که مطرح و استفاده می گردد. تگ های Html مسئوليت تبين نحوه نمايش اطلاعات را بر عهده خواهند گرفت . تکنولوژی فوق برای انجام وظايف محوله از پيش فرض های تعريف شده و ثابت (ايستا ) استفاده می نمايد . مثلا" با مشاهده تگ <B> دقيقا" مشخص شده است که می بايست چه نوع واکنشی صورت پذيرد. ( پر رنگ نمودن متن مورد نظر ) . نبايد انتظار داشته باشيم که با درج تگ <B> عملياتی غير از آنچه از قبل تعريف شده است صورت پذيرد. مفسر تگ های Html پس از انجام تفسير مربوطه ، واکنش از قبل تعريف شده ای را از خود نشان خواهد داد. مرورگرها بکمک مفسر های مربوطه همواره شرايط يکسانی را برای نمايش فراهم و شرايط خود را بر همه چيز منجمله سليقه و نقطه نظرات طراح و ... ترجيج می دهند. خودخواهی در نمايش و تحميل شرايط مربوطه از نکات قابل تامل در تکنولوژی فوق است . Html محدوده و مرزی را برای تفکيک داده ها از نمايش قائل نگرديده و با تلفيق دو مقوله فوق همواره از يک روش ثابت برای نمايش داده ها استفاده می نمايد. فرض کنيد که يک فايل html داشته و بخواهيم زمانيکه برای کاربر ارسال می گردد در مرورگر مربوطه ، به دو صورت کاملا" متمايز نمايش داده شود . برای نيل به خواسته فوق چاره ای نيست مگر اينکه دو فايل مجزای html را ايجاد که هر يک دارای خروجی اختصاصی خود باشند. در مثال فوق قصد ما نمايش داده های يکسان با فرمت های متفاوت از بعد نمايش است . ما بدنبال روش و يا روش هائی هستيم که قادر به تفکيک بين داده و نمايش باشد. قطعا" Html در اين راستا گزينه ای مناسب نخواهد بود. سندهای Html از تگ هائی نظير <H1> و <P> بمنظور ايجاد ساختار و از تگ هائی نظير <I> و <Font> بمنظور ايجاد فرمت نمايش اطلاعات استفاده می نمايند . در اين راستا عملا" هيچگونه تگی که نشاندهنده نوع اطلاعات و محتويات سند باشد ، وجود ندارد .بدين ترتيب مفسر قادر به تفسير تگ های فوق صرفا" در حد نمايش اطلاعات بوده و امکان انجام هيچگونه پردازشی وجود نخواهد داشت . 
حل مشکل با استفاده از XML 
Xml بين دو مقوله داده و نمايش تفکيک قائل شده است. در تکنولوژی فوق بدليل عدم وجود تگ های از پيش تعريف شده برای نمايش اطلاعات می توان سناريوی مربوط به نحوه نمايش اطلاعات را بکمک يک تکنولوژی ديگر تعريف و تبين نمود. اطلاعات ذخيره شده بصورت Xml را می توان با حالات متفاوت و اعمال سناريو های متفاوت نمايش داد. برخلاف Html تکتولوژی Xml دارای اطلاعات از قبل تعريف شده و مشخصی برای نحوه نمايش اطلاعات نيست. تگ های تعريف شده در يک سند XML ، بصراحت ساختار و محتويات را ارائه خواهند داد . در اين حالت می توان نرم افزارهائی را طراحی نمود که قادر به انجام عمليات دلخواه بر روی اطلاعات موجود در سند XML باشند . هنوز يک مسئله وجود دارد : در تگ های تعريف شده در سند XML ، آيتمی وجود ندارد که به کامپيوتر اعلام نمايد به چه صورت می بايست اطلاعات مربوط به هر يک از المان ها فرمت ، تا خوانندگان قادر به خواندن آنان باشند . ما به چيزی بيشتر بمنظور تدوين استراتژی نمايش اطلاعات نياز داريم . 
زبان های تعريف سبک XML 
بمنظور حل مشکل اشاره شده می توان اطلاعات مربوط به نحوه نمايش اطلاعات را در يک فايل مجزا قرار داده و در ادامه با استفاده از يک پردازنده Stylesheet فايل فوق را با سند XML ترکيب نمود. Stylesheet توسط زبان های Style نوشته می گردند. هر شخص می تواند زبان اختصاصی خود را در اين زمينه پياده سازی و استفاده نمايد ولی XML با دو زبان استاندارد ارائه شده است . 
CSS)Cascading Style Sheets) 
CSS يک زبان Style بوده که بمنظور استفاده در سندهای Html ابداع گرديده ولی بخوبی قادر به فعاليت در کنار سندهای XML نيز می باشد . CSS مکانيزمی مناسب برای نمايش يک سند XML در مرورگر ها است . اکثر ابزارهای توليد صفحات وب دارای امکانات لازم برای توليد اسکريپت های CSS می باشند . CSS دارای دو محدوديت عمده است . اولا" ، قادر به توليد خروجی مناسب و با کيفيت بالا نمی باشد. ثانيا" ، صرفا" باعث تزئين سند شده و قابليت تغيير در دنباله اطلاعات موجود در سند را نخواهد داشت . محتويات يک سند XML در اغلب حالات دارای يک نطم متفاوت نسبت به حالتی است که قصد نمايش آنها را داريم .در اين راستا لازم است قبل از استفاده از CSS بمنظور نشر يک سند ، سند مورد نظر به حالتی که تمايل به نمايش آن را در خروجی داريم ، تبديل گردد . بدين ترتيب يک مرحله پردازش ديگر به حجم عمليات اضافه خواهد گرديد. 
XSL)Extensible Style Language) 
XSL يک زبان مبتنی بر XML است که دارای محدوديت های اشاره شده در رابطه با CSS نمی باشد . متاسفانه در حال حاضر ابزارهای لازم برای ايجاد اسکريپت های XSL محدود بوده و در برخی حالات ممکن است نوشتن اسکريپت ها بصورت دستی انجام گيرد . XSL دارای سه ويژگی منحصر بفرد بوده که هر کدام دارای استاندارد اختصاصی خود می باشند. 
- Tranformation)XSLT) . ويژگی فوق باعث انتقال يک سند XML به فرمت ديگر می شود. فرمت فوق می تواند يک سند XML ديگر و يا يک سند DHTML باشد . 
- Pointing)XPath) . ويژگی فوق امکان مشخص نمودن هر مکان در يک سند XML را فراهم می نمايد . پتانسيل فوق بعنوان هسته اساسی پردازش Style Sheet مطرح بوده و مکانيزم لازم در خصوص اعمال قوانين نمايش در خصوص اطلاعات موجود در سند XML را بدون نياز به استفاده از تگ های مربوط به Style در بطن و همراه سند ، فراهم می نمايد . 
- Formating)XSL) ، فرآيندی است که بر اساس آن امکان اعمال فرمت مورد نظر به اطلاعات، بدون نياز به نوشتن دستورالعمل ها ئی که مختص يک دستگاه خروجی خاص می باشند ، را فراهم می نمايد . مثلا" می توان قوانينی مشابه : " تمام عناوين می بايست بصورت پررنگ ، فونت تايمز ، در وسط قرار گرفته ، و دور آنها يک کادر کشيده شده که دارای پهنای N باشد " را بسادگی تعريف کرد . ويژگی فوق يک تحول چشمگير نسبت به وضعيت فعلی است . در اين راستا الزامی به نوشتن قوانين متعدد برای هر يک از دستگاههائی که قصد حمايت از آنان را داريم ، وجود نخواهد داشت . 
StyleSheets چگونه کار می کند ؟
مهمترين اصل تمام زبانهای XML Style ، کمک به طراحان بمنظور ايجاد قوانين ، نسبت دهی و دستورالعمل های پردازش برای انواع اطلاعات موجود در يک سند است . قوانين در يک Stylesheet در تمپليت ها قرار گرفته و به المان ها و الگوهای اطلاعاتی موجود ، اشاره خواهند کرد .در زمان اجراء ، يک نرم افزار کوچک که پردازنده StyleSheet ناميده می شود ، سند XML و يک StyleSheet را بعنوان ورودی اخذ خواهد کرد ( پردازنده Stylesheet ، درون هر برنامه ای که Stylesheet را به XML اعمال می نمايد ، نظير مرورگرها و يا ابزارهای طراحی صفحات وب وجود دارد) . پردازنده بر اساس دستورالعمل های موجود در Stylesheet عمليات مورد نظر را انجام و بر اساس تمپليت تعريف شده اطلاعات ذيربط را در آن درج و باعث ايجاد يک خروجی جديد بعنوان ماحصل کار می نمايد. روش فوق برنامه نويسی تعريفی در مقابل رويه ای ناميده می شود ( در اين حالت قوانين مربوط به نحوه نمايش تعريف شده اند، نه اينکه دستورالعمل های رويه ای در متن کدها استفاده شده باشد ) . نمونه کدهای زير ، يک تمپليت XSLT را ايجاد که در آن المان <title> در زمان ايجاد تگ های Html ، درشت نوشته شده خواهند شد . 
مثال : يک تمپليت ساده XSLT 
<xsl:template match="title">
<H1>
<xsl:apply-templates/>
</H1>
</xsl:template>
در تمپليت فوق ، خصلت match دارای مقدار title بوده و اين بدين معنی است که قانون می بايست به هر المان موجود در <title> که پردازنده Stylesheet آن را در سند XML پيدا خواهد کرد ، اعمال خواهد شد. قانون موجود در تمپليت به اين نکته اشاره دارد که محتويات المان <title> در سند XML ، می بايست در فايل Html که ايجاد خواهد شد ، درج و قبل از آن تگ <H1> و بدنبال آن تگ <H1/> آورده شود . فرض کنيد فايل XML مشابه زير باشد : 
مثال : سند XML که فايل XSLT بر روی آن اعمال می گردد 
<title>This text will be very large</title> 
نتيجه فايل HTML پس از اعمال تمپليت تعريف شده : 
<H1>This text will be very large</H1>
مثال فوق نمونه ساده ای در اين زمينه بوده و در عمل می توان با استفاده از امکانات موجود، تمپليت های بمراتب پيچيده تر و قدرتمندتری را ايجاد نمود. 
StyleSheet و افزايش انعطاف پذيری 
با تفکيک دستورالعمل های فرمت اطلاعات از محتويات اطلاعات و در ادامه استفاده از مکانيزم Stylesheet بمنظور ترکيب آنها با يکديگر ، قابليت های فراوانی در اختيار علاقه مندان به اين تکنولوژی قرار خواهد گرفت :
• می توان StyleSheet های متفاوتی را برای دستگاه های متفاوت ( مرورگرها ، PDA ، تلفن ) بر روی محيط های اطلاعاتی متفاوت ( online ، چاپ ، CD ) و با اهداف متفاوت ( نمايش مديريتی ، نمايش تکنيکی ) ايجاد نمود . 
• می توان يک Stylesheet ايجاد و آن را بر روی سندهای متعددی اعمال نمود. 
• می توان اطلاعات را ويرايش و StyleSheet آنها را يکديگر تفکيک خواهد کرد . 
• می توان تمام اطلاعات موجود را ، صرفا" با فشردن با يک کليد ، منتشر کرد.

----------


## kiosksoft

*آیا XML جواب همه چیز است ؟*

این مقاله سنجیدن امکانات و کمبودهای xml برای برنامه های مختلف است . مروری بر اینکه چرا بهترین راه حل برای بسیاری از برنامه نویسی ها و منتشر کردن متون است. در این روزها به هر موردی که توجه می کنید و در مورد آن مطالعه می کنید درباره ( XML ( EXtensible Markup Language صحبت می کنند. به انتشار اطلاعات توجه کنید٬ روی آن متمرکز شوید. XML به عنوان قابل حمل بودن جا افتاده است. در مورد ایجاد یک نرم افزار جدید با فردی صحبت کنید. برای ساماندهی بعضی اطلاعات و داده ها از XML استفاده می شود و نام آن را در لیست انجام کارها می بینید. از یک مدیر سایت سوال کنید: صفحات داینامیک خود را چگونه طراحی می کند؟ و یا اطلاعات آن صفحات را چگونه برای استفاده مجدد ذخیره می کند؟ کوتاه ترین جوابی که داده می شود ٬ XML است. XML راه حلی مناسب برای بسیاری از مشلات است. به نظر می رسد که در همه جا استفاده می شود. اما آیا این بهترین راه حل برای ذخیره تمام اطلاعات و داده ها است ؟ خیر. 
امروزه وقتی به مطلبی توجه می کنید ٬ متوجه می شوید که درباره این زبان قابل حمل XML صحبت می کنند. 
همه نیازی به XML برای انجام کارهایشان ندارند یا لزومی برای استفاده از آن نمی بینند. برای یک سازمان کوچک استفاده از طرحی مانند XML چندان هم به درد نمی خورد. یا بهتر بگویم استفاده از آن برایشان به نظر با صرفه نیست. بهترین راه حل برای تشخیص اینکه بدانیم این راه کار به درد شرکت یا سازمانی می خورد یا نه . بررسی اطلاعات و چرخه اطلاعات آن شرکت است . میزان تبادل و استفاده مجدد در جاهای مختلف و برآورد هزینه استفاده مجدد از اطلاعات در جاهای دیگر ٬ امتحانی است برای تشخیص لزوم استفاده از XML . عدم اطلاع آنها از وجود نرم افزار های آزاد که می تواند آنها را به راحتی در مسیر استفاده از این روش قرار دهد نیز می تواند نقشی در استفاده نشدن یا بی اطلاعی بیشتر افراد از XML باشد. 

این XML چیست ؟ 
: XML - اگر معنای آن را به درستی برگردانم- یک زبان نشانه گذاری یا علامت دار است. که می توان به کمک آن زیانهای جدید و علامت داری را به وجود آورد. به طور معمول برای ساختن نشانه های جدید و پردازش ساختمان داده های یک متن ونحوه نمایش آن متن به کار می رود. اما می تواند برای شرح ٬ مدیریت و انتقال داده هایی متفاپت به کار گرفته شود. از جمله متون ٬ عکسها ٬ صدا ٬ فرم ها ٬ فایلهای چند رسانه ای و ... همچنین انتقال اطلاعات و تغییر آنها از یک نوع داده به یک نوع بانک اطلاعاتی دیگر هم استفاده می شود. 
بر خلاف HTML که یک زبان برای نمایش اطلاعات در یک مرورگر است و کنترل نحوه نمایش داده ها را به عهده دارد. XML یک استاندارد باز می باشد. یک استاندارد پایه است که وابستگی به رسانه ها ٬ سیستم عاملها و دیگر سیستمها ندارد. قابل توسعه است به این دلیل که سازمانها یا افراد می توانند دستورهای خود - tag ها - را تعریف کنند که معنای خاص خودشان را دارند و این نامهای خاص خیلی بهتر از HTML هستند به دلیل اینکه می توان برای یک موضوع یک معنی از این دنیای بی انتها را در نظر گرفت و آنرا مشخص کرد. این کلمات خاص کاربر پسند تر هستند و یک مفهوم خاص را می رسانند. به عنوان مثال : نشانه <product> یک توضیح خوب برای رساندن یک مفهوم است تا نشانه
<h2> 
<product> Sample Product </product> 
Sample Product 

در دنیای پردازشگرهای کلمات فرمت یک داده ارزش بالایی دارد ٬ زمانی که فرمت عوض می شود روی مفاهیم هم تاثیر می گذارد. قدرت XML در توانایی جداسازی مفهوم از فرمت اطلاعات است. بنابراین خالق یک اثر می تواند بدون اتلاف وقت روی فرمت بندی اطلاعات روی یک موضوع کار کند. XML کنترل فرمت اطلاعات به وجود آمده ٬ را به عهده دارد. و مشخص می کند در هر محیط به چه صورتی باید به نمایش در آیند. 
تفاوتهایی بین XML با HTML وجود دارند.که عبارتند از امکان پردازش یک متن به کمک یک برنامه نرم افزاری. همچنین استفاده های گوناگون از مفاهیم اطلاعات بدوت توجه به در نظر گرفتن ترتیب آنها. به کار بردن ترکیبی از این اطلاعات با هم و یا با اطلاعات دیگر که شما این امکانات را در HTML ندارید. XML امکان استفاده مجدد از محتوای داده را در یک جای دیگر امکان پذیر می کند. مانند توضیح و شرح یک محصول. در هر کجا که از این اطلاعات مربوط به محصول استفاده کرده باشیم . این امکان را به ما می دهد تا در صورت تغییر در آن محصول ٬ اطلاعات ما در جاهای دیگر هم - که از این روش ذخیره سازی داده ها استفاده کردند - نیاز به تغییر نداشته باشد. به طور خودکار این اطلاعات تغییر می کنند. با توجه به اینکه حالا شما این اطلاعات را در هر کجا و مکانی که استفاده کرده باشید. این قابلیت امکان استفاده مجدد از اطلاعات را فراهم می کند. شما می توانید با یک تغییر ٬ شاهد تغییر در کل کار باشید. این کار برای شرکت یا سازمان شما صرفه جویی در وقت که با ارزش ترین موجودی است و همچنین پول و سرمایه را به ارمغان می آورد. حتی می تواند در ترجمه متون و به روز کردن اطلاعات سایت شما بسیار مفید باشد. 
محتوای XML می تواند یک راهنمای معتبر برای به رمز در آوردن یا کد کردن اطلاعات باشد . مانند تعریف یک فرمت خاص برای متون DTD و وارد کردن یک استادندارد به کارهای یک نویسنده است. امکان اعتبار سنجی و همچنین تنطیم محیط را دارد که برای تکمیل ٬ ترکیب ساختارها و دقت استفاده از اطلاعات ضروری است اگر به وجود آوردن یک موضوع پیچیده و مشکلات این مطلب شما را از این کار برحذر نکند. استفاده از آن را مفید و ارزشمند خواهید یافت. 

اهداف W3C برای XML 
بعد از گسترده شدن اینترنت در دنیا ٬ کاربران با موضوعی با نام صفحات HTML خوب و بد برخورد کردند. صفحاتی که اصلا به روز نمی شدند. در نتیجه W3C به این فکر افتاد که یک راه حل بهتر برای انتشار ٬ دسته بندی ٬ بازیافت و آرشیو داده ها پیدا کند. آنها یکسری اصول را مطرح کردند که این راه حل یا روش جدید باید از آن برخوردار باشد.چیزی بهتر از HTML که نتیجه طراح XML بود. اهداف طراحی XML که جدای از HTML بودند را می توانید از این آدرس w3c.com دریافت کنید. 
باید به درستی قابل استفاده بر روی اینترنت باشد. 
پشتیبانی وسیع از برنامه هایی وب 
سازگاری با SGML 
برنامه نویسی برای استفاده و پردازش XML باید ساده و راحت باشد 
انتخابی دیگر به جز XML در آینده تا حد امکان کم و در بهترین حالت به صفر نزدیک باشد. 
متون XML باید خوانا باشند و حتی شخص بتواند آنرا بخواند و تا حد امکان مرتب و منظم باشد. 
طراحی آن بسیار سریع باشد 
طراحی آن باید فرمت دار و مختصر و کوتاه باشد 
متون XML باید به راحتی ساخته شوند 
مختصر نبودن XML در درجه اهمیت پایینی قرار داشته باشد. 
این مقاله روی دومین موردی که سازمان جهانی روی آن تاکیید دارد ٬ بحث می کند. چرا که XML می تواند در بسیاری از برنامه های کاربردی و وظیفه های نامحدود به کار گرفته شود. پتانسیل استفاده از XML غیر قابل اندازه گیری است. فضا نامحدود است پس ما هدفمان را روی انتشار اطلاعات به کمک XML محدود می کنیم.. 

کاربردهای XML 
در حوزه انتشار ٬ XML توسط نویسندگان ٬ خالقان اثرهای متفاوت و برنامه های مدیریت محتوا استفاده می شود. پدید آورندگان از ابزارها و خواص XML برای تهیه متون خود استفاده می کنند. برنامه های مدیریت محتوا از ابزارها و خواص XML برای بازیابی و یا مشخص کردن داده هایی که بعدا بازیابی می شوند ٬ استفاده می کنند. 
آیا این جواب تمامی موارد مورد نیاز را می دهد ؟ خوب ٬در دنیای انتشارات این جواب در بعضی مواقع منفی است. برای اینکه یک محصول منتشر شده می تواند بدون استفاده از XML با موفقیت منتشر شود. پس xml می تواند بلا استفاده باقی بماند. هرچند ٬ XML در اکثر مواقع بهترین گزینه برای سازمانها است. سازمانهایی که زمان چرخه یک موضوع را ارزیابی می کنند و هزینه ایجاد ٬ نگهداری ٬ ترجمه ٬ انتقال ٬ ذخیره سازی ٬ استفاده مجدد ٬ آرشیو و کنار گذاشتن آن را محاسبه می کنند. ZapThink در یک تحقیق متوجه شد که استفاده از مجدد از اطلاعات بزرگترین - گرانترین - کاری است که برای بیشتر سازمانها و شرکتها هزینه بر داشته است. این تخقیق نشان می دهد که مالکان اطلاعات در دنیای حرفه ای ۶۰ درصد از زمان خود را قرار دادن ٬ فرمت بندی و ساختار آن موضوع کرده اند و فقط ۴۰ درصد از زمان را واقعا صرف ایجاد آن کردند. ZapThink:(www.zapthink.com/report.html?id=ZTR-CL100)
واقعیت ناراحت کننده زمانی است که بیشتر ارگانها نمی دانند که چه مقدار زمان را صرف ایجاد یک مطلب کرده اند. مدیریت تلاش می کند آنها را قیمت گذاری کند پس نتیجه می گیرند که XML به درد آنها نمی خورد. اما واقعیت این است که تنها راه اینکه بدانیم XML به درد کارهای یک سازمان می خورد یا نه . بهره مند شدن از مشاوره ٬ کمک گرفتن از یک مدیر اطلاعات حرفه ای است . کسی که بتواند موارد مورد نیاز یک سازمان ٬ چرخه محتوای اطلاعات سازمان و کارهای جاری شما را بررسی و تجزیه و تحلیل کند. سروسهای مورد نیاز مشتریان در آینده ٬ برای مدیریت داده های شما را بررسی و مواردی را پیشنهاد کند . پیشنهاد ابزارهای کمکی و محاسبه برگشت سرمایه شما. بررسی موانع و شاخصها برای عوض کردن - ابزارهای کمکی ٬ پردازش ها و مردم - که نیاز به آدرس دهی دارند . قبل از اینکه شما XML را به عوان یک روش برای انتشار انتخاب کنید . زمانی که شما بدانید که این کار چه مقدار هزینه بردار است و در حین انجام کار با چه مشکلاتی روبرو می شوید. می توانید با آگاهی کامل از کل موضوع تصمیم بگیرید که آیا از XML برای انتشار اطلاعات استفاده کنید یا خیر . 
امکانات زیادی توسط XML به وجود آمدند. مانند: ارائه لیست فهرست یک کتاب به دیگران. XML این امکان را به شما می دهد که یک لیست را آماده کنید و برعکس نرم افزاری مانند word که فقط می توان خروجی آن را به یک شکل برای دیگران ارسال کرد. این امکان وجود دارد که مشتری یا شرکت استفاده کننده از این فایل ٬ از اطلاعات استفاده کرده و آنها را به شکل و فرمت مخصوص خودشان در آورند. امکان استفاده در بانکها اطلاعاتی فراهم می شود. استفاده مجدد از این اطلاعات در آینده به راحتی امکان پذیر است . جدا بودن محتوا از فرمت اید داده ها امکان بسیار مناسبی است که توسط XML در اختیار شرکتها و سازمانها و غیره قرار می گیرد. 
امکان دارد شما از XML برای ایجاد یک نوشته استفاد کنید و از همین فایل می توانید برای اضافه کردن به محتوا استفاده کنید. این محتوای اضافه شده می تواند با یک فرمت ظاهری دیگر نشان داده شود. علاوه بر این می توان اطلاعات را به شکل های گوناگون و در قسمتهای مشخص شده و جداگانه به نمایش در آورد. برای این کار می توانیم از تکنولوژیی به نام XSLT استفاده کنیم که در مورد آن بعدا صحبت می کنیم. 

ابزار های آزاد برای استفاده از XML 
نرم افزارهای کاربردی زیادی را می توانید از طریق اینترنت دریافت کنید که هر کدام نقاط قوت و ضعف خودشان را دارند و شاید همه امکانات در یک نرم افزار استفاده نشده باشد و این بستگی به کاربرد شما دارد که می خواهید از آن استفاده کنید.قبل از اینکه از یکی از این نرم افزارهای آزاد برای انجام کار استفاده کنید. از نرم افزارها استفاده کنید. توانایی هایی که برای تهیه و انتشار یک مطلب را به شما می دهند ٬ بررسی کنید. در نهایت بهترین نرم افزار برای کارتان را انتخاب کنید. 
<LI dir=ltr>Altova Authentic (www.altova.com/products_doc.html)


<LI dir=ltr>XML Cooktop (www.xmlcooktop.com ) 


<LI dir=ltr>Open XML Editor (www.philo.de/xmledit) 


<LI dir=ltr>Xray2 (www.architag.com/xray) 


تکنولوژیهایی که با XML در ارتباط هستند 
یک محقق در رابطه با XML , Jonathan Robi (http://www.gca.org/papers/xmleurope2...s13-lauth2.hml) که در Software AG کار می کند. " XML کاری انجام نمی دهد ! " . این گفته هم درست است واقعا XML به تنهایی کاری نمی کند. نمی تواند متونی را که قرار است به روشهای گوناگون به نمایش در آیند را به وجود آورد. نمی تواند فرمت استفاده شده در تکنولوژی های جدید را به وجود آورد. برای اینکه بتوانم بگوییم XML برای کار ما مناسب است ٬ و یا اینکه تبدیل شود به محصول نهایی که در اختیار کاربر قرار می گیرد . احتیاج به برنامه هایی داریم تا بتوانند این فرمت نهایی را به وجود آورند.و از سوی دیگر نباید به همان فرمتی که بنا به دلایل متفاوت از آن فرار کردیم یعنی HTML در آید. 

XSL و XSLT 
در دنیای HTML چیزی به نام CSS فایلها یا Cascading Style Sheets برای نمایش اطلاعات یک صفحه بر روی مرورگر به شکل مناسب استفاده می شود. برای استفاده از محتوای XML با فرمتهای مختلف نیاز به برنامه های جانبی داریم به دلیل اینکه محتوا از فرمت جدا هستند و ما نیاز به فرمتهای گوناگون برای رسیدن به مقصود نیاز داریم. به روشهای مختلفی می توان فرمت دلخواه را به XML داد. می توان اطلاعات و محتوای فایل XML را به نرم افزار هایی که بر پایه XML کار می کنند ٬ وارد کرد. (حتی می توان از HTML هم برای نشان دادن محتوای XML استفاده کرد. ) قالب XML یا تغییر ظاهر آن توسط زبان XSLT مخفف Extensible Stylesheet Language, Transform انجام می شود. که می تواند XML را در قالبهای متقاوتی ارائه کنید. وقتی شما می خواهید محتوای خودتان را به فرمت ها و قالبهای گوناگونی عرضه کنید ٬ XML امکانات مناسب و قابل انعطاف تری را نسبت به HTML فراهم می کند. 
فرمت XSLT از دستوراتی که از متن XML استفاده نمی کنند بهره می برد و یک قالب خروجی برای آن درست می کند. مثلا دستوری مانند Bold را برای دستور <CompanyName< به کار برده و آن کلمه ای که برچسب دستور را دارند ٬ درشت تر نشان می دهد. این قلبها می توانند به منظور نشان دادن یک فاکتور فروش به کار روند و فرمتهای متنوعی را نشان دهند. مانند: فونت ٬ نوع قلم ٬ اندازه قلم و ... . نشان دادن اطلاعات در یک جدول مرتب شده به هر یک از دستوراتی که در فایل XML استفاده کردید. نرم افزارهای آزادی هستند که برای این کار استفاده می شوند . مانند Saxon ٬ Xalan و ... هر کدام از آنها اجازه تغییر در فرمت را به شما می دهند. بدون اینکه در آینده برای تغییر محتوای XML نیازی به نرم افزارهای کمکی داشته باشید. 
نرم افزار Saxon توسط Michael Kay نوشته شده که نسخه های متفاوتی از آن موجود هستند. یکی از این نسخه ها توانایی اجرا بر روی هر سیستمی که از ماشین مجازی جاوا (JRE) پشتیبانی می کند ٬ را دارد. این نرم افزار روی سایت آقای مایکل کی قرار دارد http://saxon.sourceforge.net ماشین مجازی جاوا JRE را هم می توانید از سایتهای متفاوتی بگیرید. http://www.java.com/en/download/windows_automatic.jsp پردازنده XSLT Xalan برای تبدیل فرمت XML به HTML استفاده می شود. متن ٬ محتواهای مختلف که توسط XML تهیه شدند. همچنین این برنامه برای وب سرور محبوب آپاچی Apache هم آماده شده است که روی سایت http://xml.apache.org/xalan-j قرار دارد. 
یکی دیگر از منابعی که می توان از آن استفاده کرد. برنامه ای است که در مجموعه نرم افزارهای آزاد Mitch Amiano قرار دارد. که آزادانه در اختیار کاربران قرار دارد. این CD از چند هزار نرم افزار تشکیل شده که اطلاعاتی در مورد منبع این نرم افزارها و اینکه آنها را از کجا می توان تهیه کرد هم موجود است. به این ترتیب می توان نسخه جدید آنها را از سایتها دریافت کرد. آقای Mitch یکی از افراد بزرگ جامعه نرم افزارهای آزاد است و وقت زیادی را برای جامعه نرم افزارهای آزاد صرف می کند. یکی از این کارها تهیه همین دیسک است. شما می توانید برای دریافت اطلاعات بیشتر از آدرس زیر استفاده کنید. =http://home.agilemarkup..com/index.php?option=content\&task=view\&id=55\&Itemid  =29

XSL-FO 
این XSL-FO یکی دیگر از زیرمجموعه های XSL است. FO هم برای تهیه قالب برای موضوعات استفاده می شود. بیشتر برای ارائه و نمایش XML در قالب های گوناگون است. اطلاعات بیشتر را می توانید از آدرس http://www.w3c.org/TR/xsl/ دریافت کنید. 

XQuery 
بسیاری از شرکتها اطلاعات خودشان را در یک بانک اطلاعاتی و یا یک فایل XML ذخیره می کنند. Xquery امکان پرس و جو در یک فایل XML را فراهم می کند. به همان سادگی که شما از SQL برای جستجوی یک فایل اکسس -ACCESS- استفاده می کنید. اطلاعات مناسبی را می توانید در آدرس زیر بدست آورید. http://www.datadirect.com/techzone/xml/basics/basics/index.ssp

کارایی XML 
چگونه XML انتظارات w3c را برآورده می کند? ( www.w3c.com) مطمئنا تعداد زیادی از سایتها بر پایه XML درست شده اند. سایتهایی مانند: Safari , CNN , Fidelity , Wired , ... صفحات پویای آنها در پشت صحنه توسط XML آماده می شوند. در Fidelity مابین سیستم ها و اینترنت به وسیله XML صدها و هزاران تراکنش و عملیات انجام می شود تا بتواند به مشتریان سرویس دهی کند. همچنین این سایت میلیونها دلار در طراحی و ساختار خودش کسب کرده است. با توجه به نیاز این شرکت به تبادل اطلاعات با حجم بالا ما بین سایت و مشتریان ٬ این سایت از XML برای جداکردن اطلاعات شرکتها از یکدیگر استفاده کرده است . (http://www.internetweek.com/newslead01/lead080601.htm) 
در انتشار نوشته ها XML امکانات مفیدی را در اختیار برنامه نویس قرار می دهد تا اطلاعات ذخیره شده در یک بانک اطلاعاتی را به صورت متن به نمایش در آورد. تعدادی از برنامه های کاربردی امکان باز کردن فایل XML و فرمت آن را دارند و می توانند پاراگرافهای لازم به همراه قالب کلی متن را ایجاد کنند. این در دنیای چاپ و نشر الکترونیکی ٬ یعنی همه چیز. این برنامه های کمکی که اتوماتیک قالب یک صفحه را ایجاد می کنند. نشر اطلاعات را راحت و ممکن می سازند. 

هر چند اگر برنامه درست طراحی نشود XML از سرعت و قابلیت برنامه می کاهد. تحقیقات IBM نشان می دهد که نادرست بودن بانک های رابطه ای و اطلاعاتی کوچک ٬ سرعت پردازش را حدود ۱۰ بار کمتر می کند. نتایجی که از تحقیقات روی XML برای برای دست آوردن بهترین حالت انجام دادند ٬ نشان می دهد پتانسیل پردازش این فایلها ٬ انجام حجم بالایی از دستور العملها به کمک سخت افزار امکان پذیر است. شرکتهای تولید کننده سخت افزار به دنبال طراحی سخت افزارهایی هستند تا بتوانند این دستورالعملها را بهتر و سریعتر پردازش کنند. آنها به دنبال تراشه های فوق سریعی هستند تا بتوانند توانایی بیشتری را در اختیار XML قرار دهند که البته این نیاز به زمان دارد. nwfusion.com
باز هم متذکر می شویم که شما نیاز به یک فرد برای مدیریت محتوای شرکت خود دارید. این فرد باید تجربه کافی در طراحی و اجرای روشهای گوناگون استفاده از XML را داشته باشد. XML یک راه حل اقتصادی است . فرد مورد نظر باید توانایی این را داشته باشد تا بعد از طراحی ٬ ترکیبی از نتایج تجزیه وتحلیل تجارت و کارهای شما با نیازهای مشتری را به دست آورد . پس از ارزیابی چرخه کاری شما نتایج را به صورت یک استراتژی واحد در یک سیستم XML و کاملا حرفه ای پیاده سازی کند. این سیستم باید قابلیت این را داشته باشد که اطلاعاتی در مورد نقاط قوت و ضعف تجارت و کار شما را مشخص و میزان برگشت سرمایه شما را اندازه گیری کند. 
استفاده از XML چندان هم شبیه به یک معجزه و یا اکسیر نیست. چیزی نیست که در همه جا از آن استفاده شود. اما استفاده از آن در بیشتر مواقع به نسبت بقیه روشها ترجیح داده می شود. به خصوص در انتشار متون و به طور کلی برنامه هایی که در این زمینه فعالیت می کنند و نیاز دارند که به روشهای گوناگون و اشکال مختلف متون را عرضه کنند. استفاده از XML به نسبت چیزی مانند HTML برای کارهایی که انحصاری و وابسته به حفظ اطلاعات نیستند بسیار مفید و ارزنده است. کیفیت و برتری XML در مقابل استفاده از HTML در این جا کاربرد دارد. 
منبع:raykaict.com

----------


## meysam2009

سلام بچه ها 
بچه ها خواهش مي كنم هر كي ميتونه به اين سئوال جواب بده يه دنيا ممنونش ميشم چون واقعا كارم گيره . من يه قالب فلش دارم كه با xml تغذيه ميشه اما هر كاري مي كنم نميشه توي اون فارسي نوشت از هر راهي كه فكر كنين امتحان كردم اما فارسي نميشه از utf-8 هم در ذخيره كردن فايل xml هم استفاده كردم اما بازم موقع لود شدن اون توسط فلش بصورت ? نوشته ميشه خواهشا راهنماييم كنين چون واقعا نميدونم چيكار كنم . اينم فايل xml ها كه واستون ضميمه كردم 
حالا چه جوري مطالبشو فارسي كنم؟ كمك كنيد. بازم ممنون

----------


## meysam2009

سلام بچه ها 
بچه ها خواهش مي كنم هر كي ميتونه به اين سئوال جواب بده يه دنيا ممنونش ميشم چون واقعا كارم گيره . من يه قالب فلش دارم كه با xml تغذيه ميشه اما هر كاري مي كنم نميشه توي اون فارسي نوشت از هر راهي كه فكر كنين امتحان كردم اما فارسي نميشه از utf-8 هم در ذخيره كردن فايل xml هم استفاده كردم اما بازم موقع لود شدن اون توسط فلش بصورت ? نوشته ميشه خواهشا راهنماييم كنين چون واقعا نميدونم چيكار كنم . اينم فايل xml ها كه واستون ضميمه كردم 
حالا چه جوري مطالبشو فارسي كنم؟ كمك كنيد. بازم ممنون

----------


## kiosksoft

دوست عزیز 

از این کد در ابتدای فایل xml استفاده کنید :

<?xml version="1.0" encoding="UTF-8" ?>

اگر درست نشد داده هایی که در xml هستن را در تگ <![CDATA[]]>  قرار دهید.

----------


## kiosksoft

دوست عزیز  

ابتدا این مقاله مطالعه کنید :

http://www.w3schools.com/xml/xml_whatis.asp

http://www.mulberrytech.com/quickref/

http://www.developer.com/xml/article...th-Queries.htm

----------


## amin_jalali

برادر من هركاري كردم نشد با توصيه كه كردين خواهش ميكنم راهنماييم كنيم
اين سايت تمپليتي كه من دانلود كردم از سه فايل (xml.js.html)  تشكيل شده ولي با تمام تغييرات كه گفته شده و ميشه منو آن فارسي نميشه
اينم كد html آن:
<!-- Copyright 2008 | Deluxe Interactive | www.deluxe-interactive.com -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Template Photo Portfolio</title>
<!-- www.iranhex.com -->
<script type="text/javascript" src="swfobject.js"></script>
<style type="text/css">

    /* hide from ie on mac \*/
    html {
        height: 100%;

    }

    #flashcontent {
        height: 100%;
    }
    /* end hide */

    body {
        height: 100%;
        margin: 0;
        padding: 0;
        background-color: 0;
    }
<!-- www.iranhex.com -->
</style>
<SCRIPT LANGUAGE="JavaScript">

function setSize () {

    flashobj=document.getElementById('sotester');
    var height, width;
    if (self.innerHeight) {
        height = self.innerHeight;

        if (height<670)

        width = document.body.offsetWidth+20;

        else

        width =  self.innerWidth;

    } else

    if (document.documentElement && document.documentElement.clientHeight) {

        width = document.documentElement.clientWidth;
        height = document.documentElement.clientHeight;

    } else if (document.body) {

        width = document.body.clientWidth;
        height = document.body.clientHeight;
    }

    widthp=width
    heightp=height;

    if (height<670)
    {
         heightp=670;
    }
    flashobj.style.height=heightp +'px';

}

</SCRIPT>
</head>
<body onLoad=setSize() onResize=setSize();>
<!-- www.iranhex.com -->
    <div id="flashcontent">
        <strong>You need to upgrade your Flash Player</strong>
        This is replaced by the Flash content. 
        Place your alternate content here and users without the Flash plugin or with 
        Javascript turned off will see this. Content here allows you to leave out <code>noscript</code> 
        tags. Include a link to <a href="fullpage.html?detectflash=false">bypass the detection</a> if you wish.

    </div>
    <script type="text/javascript">

        <!-- www.iranhex.com -->
        var so = new SWFObject("index.swf", "sotester", "100%", "100%", "9", "0");
        so.addVariable("flashVarText", "this is passed in via FlashVars for example only");
        so.addParam("scale", "noscale");
        so.addParam("salign", "ct");
        so.addParam("bgcolor", "#282A2A");
        so.write("flashcontent");


    </script>


</body>
</html>


و اين هم xml:
<?xml version="1.0" encoding="UTF-8" ?>
<![CDATA[]]>
<PAGE Menu_Name="Gallery">
    <PAGEFILE File="gallery.xml"/>
    <HEADER>gallery</HEADER>
</PAGE>


<PAGE Menu_Name="درباره" >
    <PAGEFILE File="pages/about.xml"/>
    <HEADER>ABOUT TEXT HEADER</HEADER>
</PAGE>


<PAGE Menu_Name="Services">
    <PAGEFILE File="pages/page2.xml"/>
    <HEADER>PAGE HEADER 2</HEADER>
</PAGE>


<PAGE Menu_Name="Gallery2" >
    <PAGEFILE File="gallery2.xml"/>
    <HEADER>ABOUT TEXT HEADER</HEADER>
</PAGE>

<PAGE Menu_Name="Solutions">
    <PAGEFILE File="pages/page3.xml"/>
    <HEADER>NAME 3 HEADER</HEADER>
</PAGE>

<PAGE Menu_Name="Clients">
    <PAGEFILE File="pages/page4.xml"/>
    <HEADER>NAME 4 HEADER</HEADER>
</PAGE>
<PAGE Menu_Name="Contacts">
    <PAGEFILE File="pages/page5.xml"/>
    <HEADER>NAME 5 HEADER</HEADER>
</PAGE>


</![CDATA[]]>


و js آن هم:

/**
 * SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 */
if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SW  FObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_  5,c,_7,_8,_9,_a){if(!document.getElementById){retu  rn;}this.DETECT_KEY=_a?_a:"detectflash";this.skipD  etect=deconcept.util.getRequestParameter(this.DETE  CT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id)  {this.setAttribute("id",id);}if(w){this.setAttribu  te("width",w);}if(h){this.setAttribute("height",h)  ;}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")))  ;}this.installedVer=deconcept.SWFObjectUtil.getPla  yerVersion();if(!window.opera&&document.all&&this.  installedVer.major>7){deconcept.SWFObject.doPrepUn  load=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.set  Attribute("useExpressInstall",false);this.setAttri  bute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRe  directUrl",_c);this.setAttribute("redirectUrl","")  ;if(_9){this.setAttribute("redirectUrl",_9);}};dec  oncept.SWFObject.prototype={useExpressInstall:func  tion(_d){this.xiSWFPath=!_d?"expressinstall.swf":_  d;this.setAttribute("useExpressInstall",true);},se  tAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.v  ariables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&  navigator.mimeTypes.length){if(this.getAttribute("  doExpressInstall")){this.addVariable("MMplayerType  ","PlugIn");this.setAttribute("swf",this.xiSWFPath  );}_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\"";_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";var _1a=this.getParams();for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}var _1c=this.getVariablePairs().join("&");if(_1c.lengt  h>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall"))  {this.addVariable("MMplayerType","ActiveX");this.s  etAttribute("swf",this.xiSWFPath);}_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\">";_19+="<  param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";var _1d=this.getParams();for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}var _1f=this.getVariablePairs().join("&");if(_1f.lengt  h>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}return _19;},write:function(_20){if(this.getAttribute("us  eExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.  installedVer.versionIsValid(this.getAttribute("ver  sion"))){this.setAttribute("doExpressInstall",true  );this.addVariable("MMredirectURL",escape(this.get  Attribute("xiRedirectUrl")));document.title=docume  nt.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",docume  nt.title);}}if(this.skipDetect||this.getAttribute(  "doExpressInstall")||this.installedVer.versionIsVa  lid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.  innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""  ){document.location.replace(this.getAttribute("red  irectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=  function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length  ){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&n  avigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26  );_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}  catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_  23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.  major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}ca  tch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version"  ).split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.m  ajor=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsV  alid=function(fv){if(this.major<fv.major){return false;}if(this.major>fv.major){return true;}if(this.minor<fv.minor){return false;}if(this.minor>fv.minor){return true;}if(this.rev<fv.rev){return false;}return true;};deconcept.util={getRequestParameter:functio  n(_2b){var q=document.location.search||document.location.hash  ;if(_2b==null){return q;}if(q){var _2d=q.substring(1).split("&");for(var i=0;i<_2d.length;i++){if(_2d[i].substring(0,_2d[i].indexOf("="))==_2b){return _2d[i].substring((_2d[i].indexOf("=")+1));}}}return "";}};deconcept.SWFObjectUtil.cleanupSWFs=function  (){var _2f=document.getElementsByTagName("OBJECT");for(va  r i=_2f.length-1;i>=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUn  load){if(!deconcept.unloadSet){deconcept.SWFObject  Util.prepUnload=function(){__flash_unloadHandler=f  unction(){};__flash_savedUnloadHandler=function(){  };window.attachEvent("onunload",deconcept.SWFObjec  tUtil.cleanupSWFs);};window.attachEvent("onbeforeu  nload",deconcept.SWFObjectUtil.prepUnload);deconce  pt.unloadSet=true;}}if(!document.getElementById&&d  ocument.all){document.getElementById=function(id){  return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParame  ter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject;

----------


## pesare

xml Signatures رو چطوری میشه انجام داد؟

----------

