نام شایسته (کیونیم)

یک نام شایسته (به انگلیسی: qualified name) یا کیونیم (به انگلیسی: QName) یا شایسته‌نام، یک نام کاملاً شایسته (واجد شرایط کامل) برای یک عنصر، ویژگی یا شناسانه در یک سند XML است. یک نام شایسته، به صورت خلاصه و مفید، «شناسانه منبع یکسان (URI) یک فضای نام XML» را با «نام محلی» یک عنصر، ویژگی، یا شناسانه در آن فضای‌نام پیوند می‌دهد. برای ساخت این پیوند، QName به «نام محلی» یک «پیشوند» منتسب می‌کند، که این پیشوند متناظر با فضای‌نامش است. در مجموع، QName شامل «URI فضای نام XML»، «پیشوند»، و «نام محلی» است.

ائتلاف وب جهان‌گستر در مشخصاتی با عنوان «فضاهای نام در XML»، که در سال ۱۹۹۹ منتشر شد، قردادهای نام شایسته یا کیونیم را رسماً معرفی نمود.

اهداف 
 ایراد اصلی مراجع URI برای نامگذاری عنصر/ویژگی‌ها آن است که اولا ممکن است این URI بسیار بلند باشند، و دوما ممکن است شامل نویسه‌های ممنوعه باشند.

از شایسته‌نام‌ها برای ایجاد یک تناظر بین «URI» و یک «پیشوند فضای‌نام» استفاده می‌شود. این تناظر به کوته‌سازی URIها کمک می‌کند، از این رو اگر از شایسته‌نام استفاده کنیم، راحت تر می‌توانیم اسناد XML را بنویسیم (مثال زیر را ببیند).

تعریف صوری 
شایسته‌نام‌ها توسط W3C و به صورت صوری اینگونه تعریف می‌شوند:

    QName            ::=   PrefixedName | UnprefixedName
    PrefixedName    ::=   Prefix ':' LocalPart
    UnprefixedName     ::=   LocalPart
    Prefix            ::=   NCName
    LocalPart          ::=   NCNameدر این تعریف CName به اینصورت تعریف می‌شود:        NCName            ::=   Name - (Char* ':' Char*)  (* An XML Name, minus the ":" *)
        Name            ::=   NameStartChar (NameChar)*
        NameStartChar    ::=   ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6]
                                 | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF]
                                 | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF]
                                 | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD]
                                 | [#x10000-#xEFFFF]
        NameChar           ::=   NameStartChar | "-" | "." | [0-9]
                                 | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
        Char            ::=   (* any Unicode char, excluding surrogate blocks FFFE and FFFF. *)
                                 #x9 | #xA | #xD | [#x20-#xD7FF]
                                 | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
که به موجب آن از Prefix به عنوان یک جایگاه‌دار (placeholder) برای فضای‌نام استفاده شده است، و از LocalPart به عنوان جزء محلی برای یک شایسته‌نام استفاده می‌شود. یک «جزء محلی» می‌تواند یا نام ویژگی باشد یا نام عنصر باشد.

مثال 
  <?xml version='1.0'?>
  <doc xmlns:x="http://example.com/ns/foo">
    <x:p/>
  </doc>در خط دوم، اعلام شده‌است که پیشوند "x" با URI (شناسانه منبع یکسان) "http://example.com/ns/foo" پیوند دارد. از اینجا به بعد، از این پیشوند می‌توان به عنوان یک کوته‌نوشت برای این فضای نام استفاده کرد. سپس در خط سوم، تگ "x:p" یک شایسته‌نام مجاز است، زیرا هم ارجاع فضای نام را دارد (یعنی "x") و هم جزء محلی را دارد (یعنی "p"). تگ "doc" هم یک شایسته‌نام مجاز است، اما فقط شامل جزء محلی است.

پانویس

منابع 
 
اکس‌ام‌ال