XMLIF(1) xmlif XMLIF(1)

xmlif - دستورالعمل‌های پردازش شرطی برای XML

xmlif [attrib=value...]

دستور xmlif اسناد XML را بر اساس نشانه‌گذاری‌های شرطی فیلتر می‌کند. این ویژگی برای قالب‌بندی یکی از چندین نسخه مختلف یک سند XML بسته به شرایط ارسال‌شده به دستور مفید است.

جفت‌های ویژگی/مقدار (Attribute/value) ارسال‌شده از خط فرمان، با ویژگی‌های مرتبط با دستورالعمل‌های پردازشی خاص در سند تطبیق داده می‌شوند. این دستورالعمل‌ها عبارتند از: <?xmlif if?> و معکوس آن <?xmlif if not?>، <?xmlif elif?> و معکوس آن <?xmlif elif not?>، <?xmlif else?> و <?xmlif fi?>.

جفت‌های آرگومان/مقدار مشخص‌شده در خط فرمان، در برابر مقدار ویژگی‌های متناظر در دستورالعمل‌های پردازش شرطی بررسی می‌شوند. یک `attribute match' (تطابق ویژگی) زمانی رخ می‌دهد که یک ویژگی هم در آرگومان‌های خط فرمان و هم در تگ وجود داشته باشد و مقادیر آن‌ها یکسان باشند. یک `attribute mismatch' (عدم تطابق ویژگی) زمانی رخ می‌دهد که یک ویژگی هم در آرگومان‌های خط فرمان و هم در تگ وجود داشته باشد، اما مقادیر آن‌ها مطابقت نداشته باشند.

بخش‌های بین <?xmlif if?> یا <?xmlif elif?> و دستورالعمل پردازش شرطی بعدی در همان سطح تو‌در‌تویی، در صورتی که حداقل یک تطابق ویژگی و بدون هیچ عدم تطابقی وجود داشته باشد، بدون تغییر عبور داده می‌شوند؛ بخش‌های بین <?xmlif if not?> و <?xmlif elif not?> و دستورالعمل پردازش شرطی بعدی در غیر این صورت عبور داده می‌شوند. بخش‌های بین <?xmlif else?> و تگ پردازش شرطی بعدی تنها در صورتی بدون تغییر عبور داده می‌شوند که هیچ بخش قبلی در همان سطح عبور داده نشده باشد. دستورالعمل‌های <?xmlif if?> و <?xmlif fi?> (و نگارش‌های `not' آن‌ها) سطح تو‌در‌تویی فعلی را تغییر می‌دهند؛ اما <?xmlif else?> و <?xmlif elif?> سطح را تغییر نمی‌دهند.

تمام این دستورالعمل‌های پردازشی از خروجی تولیدشده حذف خواهند شد. به غیر از اعمال شرط‌ها، تمام ورودی‌های دیگر دست‌نخورده عبور داده می‌شوند؛ به‌ویژه، ارجاعات موجودیت‌ها (entity references) بازگشایی نمی‌شوند.

تطبیق مقادیر بر اساس برابری رشته‌ای انجام می‌شود، با این استثنا که «|» در مقدار یک ویژگی به عنوان نویسه تناوب (یا/OR) تفسیر می‌شود. بنابراین، بیان foo='red|blue' در خط فرمان، شرایط red و blue را فعال می‌کند. درج color='black|white' در یک تگ، با شرایط خط فرمان color='black' و color='white' مطابقت پیدا می‌کند.

در اینجا یک مثال آمده است:

Always issue this text.
<?xmlif if condition='html'?>
Issue this text if 'condition=html' is given on the command line.
<?xmlif elif condition='pdf|ps'?>
Issue this text if 'condition=pdf' or 'condition=ps'
is given on the command line.
<?xmlif else?>
Otherwise issue this text.
<?xmlif fi?>
Always issue this text.

Eric S. Raymond <esr@snark.thyrsus.com>

نویسنده برنامه xmlif
April 2009 Linux