فهرست سرفصل‌های XML
خانه (XML HOME) مقدمه (XML Introduction) نحوه استفاده (XML How to use) درخت (XML Tree) سینتکس (XML Syntax) عناصر (XML Elements) ویژگی ها (XML Attributes) فضاهای نام (XML Namespaces) نمایش (XML Display) XMLHttpRequest (XML HttpRequest) پارسر (XML Parser) DOM (XML DOM) XPath (XML XPath) XSLT (XML XSLT) XQuery (XML XQuery) XLink (XML XLink) اعتبارسنج (XML Validator) DTD (XML DTD) اسکیما (XML Schema) سرور (XML Server) مقدمه (AJAX Introduction) ساخت XMLHttpRequest (AJAX XMLHttp) ارسال درخواست (AJAX Request) پاسخ (AJAX Response) فایل XML (AJAX XML File) AJAX با PHP (AJAX PHP) AJAX با ASP (AJAX ASP) پایگاه داده (AJAX Database) اپلیکیشن ها (AJAX Applications) مثال ها (AJAX Examples) مقدمه (DOM Introduction) گره ها (DOM Nodes) دسترسی (DOM Accessing) اطلاعات گره (DOM Node Info) فهرست گره ها (DOM Node List) پیمایش (DOM Traversing) ناوبری (DOM Navigating) گرفتن مقادیر (DOM Get Values) تغییر گره ها (DOM Change Nodes) حذف گره ها (DOM Remove Nodes) جایگزینی گره ها (DOM Replace Nodes) ساخت گره ها (DOM Create Nodes) افزودن گره ها (DOM Add Nodes) کلون کردن گره ها (DOM Clone Nodes) مثال ها (DOM Examples) مقدمه (XPath Introduction) گره ها (XPath Nodes) سینتکس (XPath Syntax) محورها (XPath Axes) عملگرها (XPath Operators) مثال ها (XPath Examples) مقدمه (XSLT Introduction) زبان ها (XSL Languages) تبدیل (XSLT Transform) الگو (<template>) (XSLT <template>) value-of (<value-of>) (XSLT <value-of>) for-each (<for-each>) (XSLT <for-each>) مرتب سازی (XSLT <sort>) اگر (<if>) (XSLT <if>) انتخاب (XSLT <choose>) اعمال قالب ها (XSLT Apply) در سمت کلاینت (XSLT on the Client) در سمت سرور (XSLT on the Server) ویرایش XML (XSLT Edit XML) مثال ها (XSLT Examples) مقدمه (XQuery Introduction) مثال (XQuery Example) FLWOR (XQuery FLWOR) HTML (XQuery HTML) اصطلاحات (XQuery Terms) سینتکس (XQuery Syntax) افزودن (XQuery Add) انتخاب (XQuery Select) توابع (XQuery Functions) مقدمه (DTD Introduction) بلوک های سازنده (DTD Building Blocks) عناصر (DTD Elements) ویژگی ها (DTD Attributes) عناصر در برابر ویژگی ها (DTD Elements vs Attr) موجودیت ها (DTD Entities) مثال ها (DTD Examples) مقدمه (XSD Introduction) چگونه (XSD How To) برچسب <schema> (XSD <schema>) عناصر (XSD Elements) ویژگی ها (XSD Attributes) محدودیت ها (XSD Restrictions) عناصر پیچیده (XSD Complex Elements) خالی (XSD Empty) فقط عناصر (XSD Elements-only) فقط متن (XSD Text-only) ترکیبی (XSD Mixed) نشانگرها (XSD Indicators) <any> (XSD <any>) <anyAttribute> (XSD <anyAttribute>) جایگزینی (XSD Substitution) مثال (XSD Example) رشته (XSD String) تاریخ/زمان (XSD Date/Time) عددی (XSD Numeric) متفرقه (XSD Misc) مرجع (XSD Reference) سرویس ها (XML Services) WSDL (XML WSDL) SOAP (XML SOAP) RDF (XML RDF) RSS (XML RSS) مثال ها (XML Examples) آزمون (XML Quiz) سیلابس (XML Syllabus) برنامه مطالعه (XML Study Plan) گواهینامه (XML Certificate) انواع گره (DOM Node Types) گره (DOM Node) NodeList (DOM NodeList) NamedNodeMap (DOM NamedNodeMap) سند (DOM Document) عنصر (DOM Element) ویژگی (DOM Attribute) متن (DOM Text) CDATA (DOM CDATA) کامنت (DOM Comment) XMLHttpRequest (DOM XMLHttpRequest) پارسر (DOM Parser) المان ها (XSLT Elements) توابع (XSLT/XPath Functions)
نتیجه‌ای برای جستجو یافت نشد.
XML

XML — عناصر (DTD Elements)

آخرین بروزرسانی: 1404/08/17

عناصر (DTD Elements)

اینجا با «عنصر (Element)» در DTD آشنا می شویم. عنصر همان تگِ اصلی است. DTD با اعلان «ELEMENT!» شکل و محتوای مجاز عنصر را تعریف می کند. مثل قانون مدرسه که می گوید هر کلاس چه نیمکت هایی دارد.

اعلان عنصر (ELEMENT)

در DTD، عنصرها با دستور <!ELEMENT> تعریف می شوند. یا یک «دسته بندی» کلی می دهیم یا جزئیاتِ محتوا.

<!ELEMENT element-name category>
<!-- or -->
<!ELEMENT element-name (element-content)>

مشاهده در ادیتور

عنصر تهی (EMPTY)

اگر عنصر هیچ محتوایی ندارد، از کلمه EMPTY استفاده کن؛ مثل br.

<!ELEMENT element-name EMPTY>
<!ELEMENT br EMPTY>
<br />

مشاهده در ادیتور

عنصرِ فقط متنِ قابل تحلیل (#PCDATA)

پی سی دیتا (PCDATA) یعنی متن معمولی که پارسر آن را می فهمد و موجودیت ها را گسترش می دهد.

<!ELEMENT element-name (#PCDATA)>
<!ELEMENT from (#PCDATA)>

مشاهده در ادیتور

هر محتوایی (ANY)

کلمه ANY یعنی این عنصر می تواند هر نوع محتوای قابل تحلیل داشته باشد.

<!ELEMENT element-name ANY>
<!ELEMENT note ANY>

مشاهده در ادیتور

عنصر با فرزندها (توالی)

اگر عنصر فرزند دارد، نام فرزندها را داخل پرانتز می آوریم. جداکننده توالی، ویرگول است.

<!ELEMENT element-name (child1)>
<!ELEMENT element-name (child1,child2,...)>
<!ELEMENT note (to,from,heading,body)>

مشاهده در ادیتور

در اعلان کامل، باید خود فرزندها هم تعریف شوند.

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

مشاهده در ادیتور

تعداد وقوع ها (+,*,?)

با این عملگرها تعداد مجاز تکرار را تعیین کن؛ مثل قانون حضور در کلاس.

<!ELEMENT element-name (child-name)>
<!ELEMENT note (message)>
<!-- دقیقاً یک بار -->

مشاهده در ادیتور

<!ELEMENT element-name (child-name+)>
<!ELEMENT note (message+)>
<!-- یک بار یا بیشتر -->

مشاهده در ادیتور

<!ELEMENT element-name (child-name*)>
<!ELEMENT note (message*)>
<!-- صفر یا بیشتر -->

مشاهده در ادیتور

<!ELEMENT element-name (child-name?)>
<!ELEMENT note (message?)>
<!-- صفر یا یک بار -->

مشاهده در ادیتور

انتخاب یکی از چندتا (|)

علامت | یعنی «یا». یکی از گزینه های داخل پرانتز باید بیاید.

<!ELEMENT note (to,from,header,(message|body))>

مشاهده در ادیتور

محتوای ترکیبی (Mixed)

وقتی متن و تگ ها قاطی هستند، از الگوی mixed استفاده کن. ستاره یعنی تکرار آزاد.

<!ELEMENT note (#PCDATA|to|from|header|message)*>

مشاهده در ادیتور

گام های عملی

  1. نام عنصرها و ترتیب شان را لیست کن.
  2. نوع محتوا: EMPTY، #PCDATA، ANY یا فرزندها را تعیین کن.
  3. وقوع ها را با +، * یا ? مشخص کن.
  4. در صورت نیاز، الگوی mixed یا | را بنویس.

نکته: ترتیب در توالیِ فرزندها مهم است. کاما یعنی همین ترتیب باید رعایت شود.

مطالب مرتبط: بلوک های سازنده DTD · صفات در DTD · مقدمه DTD.

جمع بندی سریع

  • <!ELEMENT> قانون محتوای عنصر را می نویسد.
  • EMPTY یعنی بدون محتوا؛ #PCDATA یعنی متنِ معمولی.
  • ANY یعنی هر محتوای قابل تحلیل مجاز است.
  • +، *، ? تعداد وقوع را کنترل می کنند.
  • | برای انتخاب یکی از چند گزینه است.