sgml – وبسایت آموزشی وب تی ام ال – webtml https://webtml.ir وب تی ام ال ، webtml ، ویدئوی آموزشی وب، مقالات آموزشی طراحی سایت Mon, 29 Aug 2022 10:30:32 +0430 fa-IR hourly 1 https://webtml.ir/wp-content/uploads/2016/07/favicon.png sgml – وبسایت آموزشی وب تی ام ال – webtml https://webtml.ir 32 32 DTD چیست ؟ https://webtml.ir/dtd-%da%86%db%8c%d8%b3%d8%aa-%d8%9f/ https://webtml.ir/dtd-%da%86%db%8c%d8%b3%d8%aa-%d8%9f/#respond Wed, 16 Aug 2017 06:42:05 +0000 http://webtml.ir/?p=1870 DTD چیست ؟ DTD مخفف عبارت (Document Type Definition) می باشد و مشخص کننده ساختار و المان های مجاز و خصوصیات یک سند XML است. چرا از DTD استفاده می شود؟ با استفاده از DTD گروه های مستقل مردم می توانند با توافق در استانداردها با هم تبادل داده نمایند. یک اپلیکیشن با استفاده از DTD می تواند […]

نوشته DTD چیست ؟ اولین بار در وبسایت آموزشی وب تی ام ال - webtml پدیدار شد.

]]>
DTD چیست ؟ DTD مخفف عبارت (Document Type Definition) می باشد و مشخص کننده ساختار و المان های مجاز و خصوصیات یک سند XML است.

چرا از DTD استفاده می شود؟dtd.jpg

با استفاده از DTD گروه های مستقل مردم می توانند با توافق در استانداردها با هم تبادل داده نمایند. یک اپلیکیشن با استفاده از DTD می تواند بررسی نماید که داده های XML معتبر است یا خیر؟

DTD داخلی

اگر DTD داخل یک فایل XML مشخص شود، می بایست درون <!Doctype> آورده شود.

بیشتر بخوانید 👈  XML چیست ؟

مثالی از سند XML با DTD داخلی:

 
<?xml version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend</body>
</note>

DTD بالا اینچنین تفسیر می شود:
!DOCTYPE noteمشخص می کند که المان اصلی این سند “note” است.
!ELEMENT noteمشخص می کند که المان اصلی می بایست شامل چهار المان “to,from,heading,body”باشد.
!ELEMENT toمشخص می کند که المان “to” از نوع “#PCDATA ” می باشد.
!ELEMENT fromمشخص می کند که المان “from” از نوع “#PCDATA ” می باشد.
!ELEMENT headingمشخص می کند که المان  “heading”از نوع “#PCDATA ” می باشد.
!ELEMENT bodyمشخص می کند که المان “body” از نوع “#PCDATA ” می باشد.

DTD خارجی

اگر DTD در فایل خارجی مشخص شد، تعریف <!Doctype> می بایست مرجعی به فایل DTD داشته باشد.

سند XML با یک DTD خارجی

<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

در ادامه یک فایل"note.dtd"داریم که حاوی DTD است:

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

نوشته DTD چیست ؟ اولین بار در وبسایت آموزشی وب تی ام ال - webtml پدیدار شد.

]]>
https://webtml.ir/dtd-%da%86%db%8c%d8%b3%d8%aa-%d8%9f/feed/ 0
SGML چیست؟ https://webtml.ir/sgml/ https://webtml.ir/sgml/#respond Mon, 14 Aug 2017 12:19:47 +0000 http://webtml.ir/?p=1890 SGML مخفف عبارت  Standard Generalized Markup Language می باشد و  استانداردی برای تعیین یک سند زبان نشانه گذاری (Markup Language Document) یا مجموعه ای تگ است. که این خصوصیات خود یک DTD است. SGML به خودی خود یک زبان برنامه نویسی نیست اما فرا داده ای است (meta data) که خصوصیات یک زبان برنامه نویسی را مشخص […]

نوشته SGML چیست؟ اولین بار در وبسایت آموزشی وب تی ام ال - webtml پدیدار شد.

]]>
SGML مخفف عبارت  Standard Generalized Markup Language می باشد و  استانداردی برای تعیین یک سند زبان نشانه گذاری (Markup Language Document) یا مجموعه ای تگ است. که این خصوصیات خود یک DTD است. SGML به خودی خود یک زبان برنامه نویسی نیست اما فرا داده ای است (meta data) که خصوصیات یک زبان برنامه نویسی را مشخص می کند.

بیشتر بخوانید 👈  DTD چیست ؟

SGML بر این عقیده است که اسناد، المان های ساختاری و معنایی دارند که بدون رجوع به نحوه نمایش المان ها، قابل بیان است. برخی مزیت های اسناد بر پایه SGML عبارتند از:

  • آن ها می توانند به جای توجه به مشخصات ظاهری (که ممکن است در طول زمان تغییر کند)، با توجه به ساختار اسناد ایجاد شوند.
  • آن ها می توانند قابلیت جابجایی بیشتری داشته باشند زیرا یک کامپایلر SGML با توجه به DTD مربوطه، می تواند آن سند را تفسیر کند.
  • اسنادی که برای کاربردی خاص در نظر گرفته می شوند، به آسانی قابلیت استفاده برای سایر رسانه ها مثل صفحه نمایش کامپیوتر را دارند.

زبان مورد استفاده مرورگر وب، HTML می باشد که مثالی از زبان بر پایه SGML می باشد و برای هر سند HTML یک DTD وجود دارد.

امروزه در محیط های تحت شبکه، بسیاری از اسناد توسط XML ارائه می شوند که زبانی برای شرح داده می باشد و از اصول SGML استفاده می کند.

SGML.jpg

مثالی از سند پایه ای SGML

این سند پایه ای SGML شامل موارد زیر است:

  • DTD
  • یکی از المان های اصلی (که به عنوان tag یا markup شناخته می شوند)
  • پاراگراف
  • متن

المان های اصلی بسته به نوع سندی که در حال نوشتن آن هستید، می بایست یک <article>  <chapter> <book> یا <sect1>باشند.

در این مثال ساده SGML، از تگ  <article>استفاده کرده ایم:

<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
<article>
<sect1 id="introduction"><title>Hello world introduction</title>
<para>
!Hello world
</para>
</sect1>
</article>

در مثال بالا خط اول یک DTD است.

دقت کنید که تگ های اول و آخر هر دو <article>و </article> هستند. سایر تگ ها در این تگ قرار می گیرند.

به تگ<sect1>دقت کنید که خصوصیتی به نام “id” دارد. اگر بخواهید هنگام راه اندازی یک تجزیه کننده (parser) فایل SGML، لینک ها به صورت اتوماتیک برای اسناد HTML ایجاد شوند، می بایست تمام تگ های <sectX>که X عددی بین ۱ تا ۵ است، خصوصیت id داشته باشند. بنابراین، تمام تگ های <sectX>، حداقل به تگ پاراگراف (para) و در پایان به </sectx> نیاز دارند.

توجه کنید که در DTD مثال بالا (خط اول)، سند را به عنوان  article معرفی کرده است که این به شما اجازه می دهد که <article>را به عنوان تگ سطح بالا (تگ اصلی) در مکان اول بیاورید. به عنوان مثال، اگر به جای ‘article’ از ‘book’ استفاده شده بود، تجزیه کننده SGML قادر نبود سند را تحویل دهد.

بیشتر بخوانید 👈  XML چیست ؟

ساختار عمومی SGML

یک نویسنده خوب فایل، همیشه برای فایل SGML مجوزی قرار می دهد. در ادامه آمده است که یک فایل SGML جدید چگونه است.

<!--Copyright (c)  ۲۰۰۲  your name, NewbieDoc project;
http://sourceforge.net/projects/newbiedoc
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU
Free Documentation License, Version 1.1 or any later version published by the Free Software
 Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts.
 A copy of the license can be found at http://www.fsf.org/copyleft/fdl.html.-->
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
<article id="hello-world" lang="en">
<sect1 id="introduction"><title>Hello world introduction</title>
<para>
Hello world!
</para>
</sect1>
</article>

دقت کنید چگونه به وسیله علامت های <-- و --!>کامنت گذاری کرده ایم. این مهم است، اگر آن را فراموش کنید، هنگامی که به وسیله یک تجزیه کننده SGML برنامه را اجرا می کنید، با انواع خطاها روبرو می شوید و این اطلاعات هنگامی که شما در حال ایجاد آن هستید، قابل مشاهده نیست. دلیل قابل مشاهده نبودنش این است که تجزیه کننده آن را به عنوان یک کامنت در نظر می گیرد و آن را به انتهای فایل تجزیه شده منتقل می کند. این خوب است زیرا می توانیم با اضافه کردن کامنت ها  نکاتی که در آینده استفاده می کنیم را یادآوری کنیم.

دقت کنید که برای تگ <article> خصوصیات “id” و “lang” در نظر گرفتیم. اگر شما در حال ساخت فایل چند صفحه ای HTML باشید، id مشخص می کند که فایل بعد از تجزیه چه نامی داشته باشد. خصوصیت lang مشخص می کند که متن اصلی با چه زبانی است.

برای فهم بهتر این مثال آن را انجام دهید. کد بالا را در یک ویرایشگر متن تایپ یا copy و سپس paste نمایید. فایل را با نام myfile.en.sgml ذخیره نمایید. در command line به پوشه ای که فایل  myfile.en.sgml در آن است بروید و فرمان زیر را اجرا کنید.

bash$ sgmltools -b html myfile.en.sgml

اکنون شما دایرکتوری با نام my file.en دارید. اگر محتوای دایرکتوری را تغییر دهید و  به محتوای آن بنگرید، می بینید که فایلی به نام hello-world.html دارید. وقتی این سند را ایجاد کردید، تجزیه کننده با استفاده از “id” نام فایل خروجی را می سازد. نام واقعی فایل شما برای نام گذاری زیرمجموعه ها استفاده می شود.

در این مثال، این مورد زیاد اهمیت ندارد، زیرا در اینجا شما تنها یک فایل html دارید. به هر حال تا هنگامی که  بخش های مختلفی ایجاد می کنید، فایل های زیادی در زیرمجموعه ها می بینید.

اگر شما به تگ <article> ، خود id اختصاص ندهید، فایل html به طور خودکار با نامی مشابه “t1.html” ذخیره می شود که هیچ کمکی نمی کند.

بدین ترتیب شما موفق شدید اولین فایل SGML خود را بسازید. اکنون مرورگر خود را باز کنید و فایل نهایی خود را در آن مشاهده کنید.

نوشته SGML چیست؟ اولین بار در وبسایت آموزشی وب تی ام ال - webtml پدیدار شد.

]]>
https://webtml.ir/sgml/feed/ 0