عناصر XML

عنصر XML چیست، قوانین نام‌گذاری و بهترین شیوه‌های تعریف عناصر

عنصر XML چیست؟

عنصر (Element) همه‌چیز از تگ شروع تا تگ پایان است:

<price>95000</price>
↑ تگ شروع  ↑ محتوا  ↑ تگ پایان

عنصر می‌تواند شامل این‌ها باشد:

مثال: عناصر تودرتو

<book>
    <title lang="fa">آموزش XML</title>      <!-- عنصر با ویژگی و متن -->
    <author>
        <first_name>سارا</first_name>        <!-- عنصر داخل عنصر -->
        <last_name>محمدی</last_name>
    </author>
    <edition/>                                <!-- عنصر خالی -->
</book>

قوانین نام‌گذاری عناصر

قانونمثال درستمثال غلط
شروع با حرف یا زیرخط<_name><123abc>
بدون شروع با xml<my_xml><xml_data>
بدون فاصله<first_name><first name>
بدون کاراکترهای خاص<price2><price></price> با <.;>
هر نامی مجاز است (حروف فارسی هم!)<کتاب>—

سبک‌های رایج نام‌گذاری

سبکمثالکاربرد
snake_case<first_name>رایج‌ترین در داده‌محور
kebab-case<first-name>در اسناد وب
camelCase<firstName>در سیستم‌های سازمانی
PascalCase<FirstName>در .NET و SOAP
هر سبکی را دوست دارید انتخاب کنید، اما در کل سند به یک سبک پایبند بمانید. یکدستی، خوانایی سند را چند برابر می‌کند.

عناصر خالی

بعضی عناصر فقط با ویژگی‌ها معنا پیدا می‌کنند و محتوای متنی ندارند:

<image src="photo.jpg" alt="عکس پروفایل"/>
<breakline/>

چه چیزی را عنصر بگذاریم و چه چیزی را ویژگی؟

این یکی از مهم‌ترین تصمیم‌های طراحی XML است. دو سند زیر داده یکسانی دارند:

<!-- روش ۱: با ویژگی -->
<person sex="female">
    <firstname>سارا</firstname>
    <lastname>محمدی</lastname>
</person>

<!-- روش ۲: با عنصر -->
<person>
    <sex>female</sex>
    <firstname>سارا</firstname>
    <lastname>محمدی</lastname>
</person>

چرا عنصر بهتر از ویژگی است؟

  1. ویژگی نمی‌تواند ساختار تودرتو داشته باشد — عنصر می‌تواند
  2. ویژگی نمی‌تواند چند مقدار داشته باشد — عنصر می‌تواند
  3. ویژگی خواندن و نگهداری را سخت‌تر می‌کند
  4. ویژگی برای DTD اعتبارسنجی محدودتر است
قانون طلایی: داده را در عنصر بگذارید، متادیتا (اطلاعات درباره داده) را در ویژگی. مثلاً <file id="123">محتوای فایل</file> — شناسه متادیتاست، محتوا داده است.

بهترین شیوه‌ها

این مبحث بخشی از دوره آموزش کامل XML است.

ابزارهای مرتبط