عناصر XML
عنصر XML چیست، قوانین نامگذاری و بهترین شیوههای تعریف عناصر
عنصر XML چیست؟
عنصر (Element) همهچیز از تگ شروع تا تگ پایان است:
<price>95000</price>
↑ تگ شروع ↑ محتوا ↑ تگ پایان
عنصر میتواند شامل اینها باشد:
- متن — مثل
<title>آموزش XML</title> - عنصر دیگر — تودرتو شدن عناصر
- ویژگی — اطلاعات اضافی در تگ شروع
- ترکیبی از همه
مثال: عناصر تودرتو
<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>
چرا عنصر بهتر از ویژگی است؟
- ویژگی نمیتواند ساختار تودرتو داشته باشد — عنصر میتواند
- ویژگی نمیتواند چند مقدار داشته باشد — عنصر میتواند
- ویژگی خواندن و نگهداری را سختتر میکند
- ویژگی برای DTD اعتبارسنجی محدودتر است
قانون طلایی: داده را در عنصر بگذارید، متادیتا (اطلاعات درباره داده) را در ویژگی. مثلاً
<file id="123">محتوای فایل</file> — شناسه متادیتاست، محتوا داده است.بهترین شیوهها
- نامها را توصیفی انتخاب کنید:
<author>بهجای<a> - نامها را کوتاه نگه دارید:
<book_title>بهجای<the_title_of_the_book> - از
-و.در نامها احتیاط کنید (در برخی نرمافزارها مشکلسازند) - اگر اپلیکیشن شما از XML دیتابیسمانند استفاده میکند، از
_استفاده کنید
این مبحث بخشی از دوره آموزش کامل XML است.