W3C

فضاهای نامی در XML 1.1 (ویرایش دوم)

توصیه ی W3C در 16 اوت 2006

نسخه ی فعلی:
http://www.w3.org/TR/2006/REC-xml-names11-20060816
نسخه ی اخیر:
http://www.w3.org/TR/xml-names11
ویرایش قبلی:
http://www.w3.org/TR/2006/PER-xml-names11-20060614
ویراستارها:
تیم بری از <Textuality <tbray@textuality.com
دیو هالندر از <Contivo, Inc. <dmh@contivo.com
اندریو لیمن از مایکروسافت  <andrewl@microsoft.com>
ریچاد تابین از دانشگاه  Edinburgh و تکنولوژی Markup محدود <richard@cogsci.ed.ac.uk>

لطفا برای این سند به لیست اشتباهات، که ممکن است شامل برخی از تصحیحات اساسی باشد، رجوع نمایید.

همچنین ترجمه ها را ببینید

كليه ‌ی حقوق چاپ و نشر 2006 W3C كه شامل تعهدات، علامت تجاری و استفاده از سند می‌ باشد، برای (MIT, ERCIM, Keio) محفوظ است.


چکیده

فضاهای نامی XML یک روش ساده برای واجد شرایط نمودن نامهای ویژگی و عنصر استفاده شده در اسناد زبان نشانه گذاری توسعه پذیر را توسط پیوندشان با فضاهای نامی تعیین شده توسط مراجع IRI میسر می سازد.

وضعیت این سند

این بخش وضعیت این سند را در زمان انتشارش توصیف می کند. اسناد دیگری می توانند جایگزین این سند شوند. لیستی از اسناد منتشر شده ی W3C و آخرین بازنگری این گزارش تخصصی می تواند در فهرست گزارشهای تخصصی W3C درhttp://www.w3.org/TR یافت شود.

این سند محصولی از کار گروه مرکزی XML بعنوان بخشی از فعالیت W3C XML می باشد. نسخه ی انگلیسی این خصوصیات تنها نسخه ی اصلی می باشد ( The English version of this specification is the only normative version). در هر صورت برای ترجمه های این سند، http://www.w3.org/2003/03/Translations/byTechnology?technology=xml-names-11  را ببینید.

کاربردهای معلوم در گزارش کاربرد فضاهای نامی 1.1 مستند می باشند (تمامی کاربردهای فضای نامی 1.1همچنین فضاهای نامی 1.0 را هم پشتیبانی می نمایند). یک مجموعه تست همچنین از طریق صفحه ی مجموعه تست XML در دسترس می باشد.

این ویرایش دوم مرکب از تمامی اشتباهات معلوم از تاریخ انتشارش می باشد. این جایگزین توصیه ی W3C در 4 فوریه ی 2004 می باشد. جهت سهولت خوانندگان، یک نسخه ی XHTML با اندیکاتور تجدید نظر رنگ رمزی تهیه شده است.

اشکالات موجود در این سند را لطفا به xml-names-editor@w3.org گزارش دهید؛ آرشیوها ی عمومی در دسترس می باشند. لیست فهرست اشتباهات برای این سند در http://www.w3.org/XML/2006/xml-names11-errata  در دسترس است.

این سند توسط اعضای W3C، توسط توسعه دهندگان نرم افزار و توسط دیگر گروههای W3C و اشخاص علاقه مند بازبینی شده و توسط مدیریت به عنوان یک توصیه ی W3C مورد تایید قرار گرفته است. این سندی پایدار است و می تواند بعنوان مرجع اساسی یا نقل شده از سند دیگری بکار برده شده باشد. نقش W3C در ساخت توصیه جهت جلب توجه به خصوصیات و در راستای ترویج گسترده ی همه جانبه اش می باشد. این کاربرد گرایی و یکپارچگی وب را تسهیل می کند.

این سند توسط  CPP در 24 ژانویه 2002 کنترل شده است بطوریکه با پردازه ی انتقالی سیاست حق امتیاز W3Cاصلاح شده است. پشتیبانی های W3C یک لیست عمومی از هر حق امتیاز آشکار ایجاد شده در ارتباط با تحویلات گروه را پشتیبانی می نماید؛ آن صفحه همچنین شامل دستوراتی برای آشکار سازی یک حق امتیاز است. شخصی که واقعا از حق امتیازی آگاه است که فرد باور دارد محتوی درخواست(های) اساسی است بایستی اطلاعات مطابق با بخش 6 از سیاست حق امتیاز W3Cرا آشکار نماید.

جدول محتویات

1 انگیزش و خلاصه
1.1 یادداشتی در نشانه گذاری و کاربرد
2 فضاهای نامی XML
2.1 مفاهیم بنیادی
2.2 کاربرد IRI ها بعنوان نامهای فضای نامی
2.3 مقایسه ی مراجع IRI
3 فضاهای نامی اعلانی
4 نامهای واجد شرایط
5 نامهای واجد شرایط کاربردی
6 فضاهای نامی درخواستی جهت عناصر و ویژگیها
6.1 محدوده ی فضای نامی
6.2 پیش فرضی فضای نامی
6.3 یگانگی ویژگیها
7 هماهنگی اسناد
8 هماهنگی پردازنده ها

ضمایم

A منابع اصلی
B دیگر مراجع (غیر اصولی)
C ساختار داخلی فضاهای نامی XML (غیر اصولی)
D تغییرات پس از ویرایش 1.0 (غیر اصولی)
D.1 تغییرات پس از ویرایش 1.1
E سپاسگزاریها (غیر رسمی)


1 انگیزش و خلاصه

ما تصور می نماییم کاربردهای زبان نشانه گذاری توسعه پذیر (XML) را در جایی که یک سند واحد XML می تواند حاوی عناصر و ویژگیها باشد (در اینجا به عنوان یک "فرهنگ لغات نشانه گذاری شده" اشاره شده است) آنها برای و توسط واحدهای نرم افزار چندگانه تعریف شده و بکار رفته اند. یک انگیزش برای این تشکل واحدی است: چنانچه فرهنگ لغات موجود نشانه گذاری که بخوبی قابل درک است و برای جایی که دسترسی نرم افزار کاربرد مفیدی دارد، بهتر است جهت دسترسی این تصدیق نشانه گذاری قابل استفاده باشند.

چنین اسنادی، شامل فرهنگهای لغات نشانه گذاری چندگانه مطرح کننده ی مسائل تصدیق و تصادف است. واحدهای نرم افزار ضرورری است جهت تصدیق عناصر و ویژگیهایی که جهت پردازش در نظر گرفته شده اند، به یک میزان توانا باشند که در صورت "برخورد" گستردگی با توجه به اینکه برای بسته ی نرم افزار دیگر در نظر گرفته شده که نام ویژگی یا نام عنصر یکسانی را بکار برند.

این ملاحظات مستلزم آن است که آن سند نامهای ساخته شده را بایستی ساخته باشد بگونه ای که از برخوردهای میان نامها از فرهنگهای لغات نشانه گذاری متفاوت اجتناب شود. این مشخصه یک سازوکار فضاهای نامی XML، را توصیف می کند که این با تخصیص نامهای توسعه یافته جهت عناصر و ویژگیها انجام می پذیرد.

1.1 یادداشتی در نشانه گذاری و کاربرد

جایی که تاکید شده، کلید واژه های MUST, MUST NOT, REQUIRED, SHOULD, SHOULD NOT, MAY در این سند بگونه ای که در [Keywords] توصیف شده، تعبیر شده اند.

آن نکته ای که بسیاری از غیر پایانی ها در این مشخصه نه اینجا بلکه در مشخصه XML تعیین شده اند [XML]. هنگامی که غیر پایانی های تعیین شده در اینجا نامهای یکسانی بعنوان غیر پایانی های تعیین شده در مشخصه ی XML دارند، تولیدات اینجا در تمام موارد سازگار یک زیر مجموعه از رشته ها توسط یکاهای قرینه ی آنجا هماهنگ شده اند.

در این تولیدات سند، NSC یک "محدودیت فضای نامی است"، یکی از قواعدی که اسناد مطابق با این خصوصیات می بایستی ادامه دهند.

2 فضاهای نامی XML

2.1 مفاهیم بنیادی

[تعریف: یک فضای نامی XML توسط یک مرجع IRI آی آر آی [RFC3987] شناسایی شده است؛ نامهای ویژگی و عنصر می توانند در یک فضای نامی کاربردی XML سازوکار توصیف شده در این خصوصیات را بکار بر ند.]

[تعریف: یک نام توسعه یافته جفتی شامل یک نام فضای نامی و یک نام محلی است. ] [تعریف: برای یک نام  N در یک فضای نامی شناخته شده توسط یک IRI I, نام فضای نامی است I. برای یک نام  N که در یک فضای نامی نیست، نام فضای نامی مقدار ندارد.] [تعریف: در هر صورت نام محلی هست  N. ] که این ترکیبی از فضای نامی IRI اداره شده بطور کلی با نامهای محلی فهرست لغاتی است که در پیشگیری از تلاقی نام موثر است.

مراجع IRI می توانند حاوی کاراکترهای غیر مجاز در نامها باشند، و غالب اوقات بطور نامناسبی بلندند، بنابراین نامهای توسعه یافته مستقیما جهت عناصر نام و ویژگیها در اسناد XML استفاده نشده اند. در عوض نامهای مناسب بکار برده شده اند. [تعریف: یک نام مناسب نامی در رابطه با تفسیر فضای نامی است.] در انطباق اسناد با این خصوصیات، نامهای ویژگی و عنصر بصورت نامهای واجد شرایط ظاهر می شوند. از نظر نگارش، آنها هر یک از نامهای پیشوندی یا نامهای غیر پیشوندی هستند. یک اعلان نحوی مبنی بر ویژگی است به شرط آنکه پیشوندها جهت نامهای فضای نامی و جهت فضای نامی پیش فرض که جهت نامهای عنصر غیر پیشوندی درخواست شده مقید شده باشند؛ این اعلانها توسط عناصری که روی آنها ظاهر می شوند محدود می گردند برای اینکه مقید سازی های متفاوت ممکن است در قسمتهای مختلف یک سند اعمال گردند. انطباق پردازنده ها به این خصوصیات  بایستی تصدیق شده و روی این اعلانها و پیشوندها اعمال شوند.

2.3 مقایسه ی مراجع IRI

مراجع IRI تعیین کننده ی فضاهای نامی مقایسه شده می باشند هنگامی که تصمیم می گیرند که یک نام متعلق به یک فضای نامی معین و چه دو نام مرتبط با فضای نام یکسان باشد. [تعریف: دو IRI بعنوان رشته ها مورد عمل قرار گرفته اند، و آنها یکسان هستند اگر و تنها اگر رشته ها همانند هم می باشند، آن است که گفته شود، در صورتی که رشته کاراکترهای یکسانی دارند. ] مقایسه نسبت به بزرگ یا کوچک بودن حروف حساس است و بدون %-escaping انجام شده یا ناتمام مانده است.

یک نتیجه ی این آن است که مراجع IRI که در این مفهوم یکسان نیستند می توانند حل کننده ی منابع همانند باشند. مثالها شامل مراجع IRI هستند که تنها در مورد یا %-escaping یا در موجودیتهای خارجی متفاوتند که URI های پایه ی مختلفی دارند (اما توجه داشته باشید که IRI های خویشاوند به گونه ی نامهای فضای نام بد دانسته شده اند).

در یک اعلان فضای نامی، مرجع IRI  مقدار معمولی از ویژگی، بعنوان جانشین کاراکتر XML و مراجع موجود است که قبل از هر مقایسه ای انجام داده شده است.

مثالها:

مراجع IRI ذیل همگی برای مفاهیم فضاهای نامی معین متفاوتند، چون آنها در صورت فرق دارند:

  • http://www.example.org/wine

  • http://www.Example.org/wine

  • http://www.example.org/Wine

مراجع IRI ذیل نیز همگی برای مفاهیم فضاهای نامی معین تفاوت دارند:

  • http://www.example.org/rosé

  • http://www.example.org/ros%c3%a9

  • http://www.example.org/ros%c3%A9

  • http://www.example.org/ros%C3%a9

  • http://www.example.org/ros%C3%A9

به گونه ای که اینها هستند:

  • http://www.example.org/~wilbur

  • http://www.example.org/%7ewilbur

  • http://www.example.org/%7Ewilbur

اگر eacute جهت é تعیین شده، تگهای شروعی ذیل همگی محتوی اعلانهای فضای نامی اتصالی پیشوندی p جهت مرجع IRI یکسان اند، http://example.org/rosé.

  • <p:foo xmlns:p="http://example.org/rosé">

  • <p:foo xmlns:p="http://example.org/ros&#xe9;">

  • <p:foo xmlns:p="http://example.org/ros&#xE9;">

  • <p:foo xmlns:p="http://example.org/ros&#233;">

  • <p:foo xmlns:p="http://example.org/ros&eacute;">

بدین دلیل ریسک بی نظمی میان IRI ها که خواستار برابری هستند اگر مراجعه ای نشده، کاربرد کاراکترهای %-escaped در نامهای فضای نامی شدیدا کاسته شده است.

3 فضاهای نامی اعلانی

[تعریف: یک فضای نامی (یا به صورت دقیق تر، یک فضای نامی معتبر) کاربرد اعلان شده ی یک خانواده از خصیصه های اندوخته می باشد. چنین نام خصیصه ای هم بایستی xmlns باشد یا با xmlns: شروع شود. این ویژگیها، نظیر ویژگیهای دیگر XML می توانند باشند، به شرط آنکه مستقیما یا با پیش فرض باشند. ]

نامهای ویژگی برای اعلان فضای نامی
[1] NSAttName ::= PrefixedAttName
| DefaultAttName
[2] PrefixedAttName ::= 'xmlns:' NCName[NSC: پیشوندهای اندوخته و نامهای فضای نام]
[3] DefaultAttName ::= 'xmlns'
[4] NCName ::= NCNameStartChar NCNameChar*/* یک نام XML، منهای  ":" */
[5] NCNameChar ::= NameChar - ':'
[6] NCNameStartChar ::= NameStartChar - ':'

 مقدار استاندارد شده متعلق به ویژگی بایستی هم یک مرجع IRI — هم نام فضای نام مشخص فضای نام  — یا یک رشته ی خالی باشد. نام فضای نام، که منظور مورد نظرش را سرویس می دهد، بایستی دارای خصوصیات یگانگی و ماندگاری باشند. این هدفی نیست که مستقیما برای بازیابی یک طرح (هر آنچه موجود است) قابل استفاده باشد. نامهای منبع هم شکل [RFC2141] مثالی از دستورالعملی است که بر اساس این اهداف ذهنی در نظر گرفته شده اند. در هر صورت، این بایستی مورد توجه قرار گیرد که URL های معمولی بتوانند با چنین شیوه ای اداره شده باشند بگونه ای که به اهداف یکسانی دست یابند.

[تعریف: اگر نام ویژگی مطابق PrefixedAttName باشد، آنگاه NCName پیشوند فضای نام را ارایه می دهد، جهت پیوستن نامهای ویژگی و عنصر با نام فضای نام در مقدار ویژگی در محدوده ی عنصر استفاده شده که جهت اعلان پیوست شده است. ]

[تعریف: اگر نام ویژگی مطابق DefaultAttName باشد، آن هنگام نام فضای نامی در مقدار ویژگی بصورت فضای نامی پیش فرض در محدوده ی عنصر است که جهت اعلان پیوست شده است.] فضاهای نامی پیش فرض و مهم اعلانها 6 فضاهای نامی اجرایی جهت عناصر و ویژگیها مطرح شده اند.

یک مثال اعلان فضای نامی، که پیشوند edi را با نام فضای نامی پیوند می دهد http://ecommerce.example.org/schema:

<x xmlns:edi='http://ecommerce.example.org/schema'>
  <!-- the "edi" prefix is bound to http://ecommerce.example.org/schema
       for the "x" element and contents -->
</x>

محدودیتهای فضای نام: پیشوندهای اندوخته و نامهای فضای نامی

پیشوند xml بنابر تعریف جهت نام فضای نامی مقید شده است http://www.w3.org/XML/1998/namespace. اگر بایستی، اما مورد نیاز نیست، اعلان شده باشد، و نبایستی غیر اعلانی یا جهت هر نام فضای نامی دیگر مقید شده باشد. پیشوندهای دیگر نبایستی محدود کننده ی این نام فضای نامی باشند و آن نبایستی بعنوان فضای نامی پیش فرض اعلان شده باشد.

پیشوند xmlns تنها جهت اعلان اتصالات فضای نامی استفاده شده و با مشخصات محدود شده جهت نام فضای نامی می باشد /http://www.w3.org/2000/xmlns. که نبایستی اعلان شده یا اعلان نشده باشد. پیشوندهای دیگر نبایستی مقید به این نام فضای نامی باشد و آن نبایستی بعنوان فضای نامی پیش فرض اعلان شده باشد. نامهای عنصر نبایستی دارای پیشوند xmlns باشند.

تمامی پیشوندهای شروعی دیگر با سه رشته حرف x, m, l, با هر ترکیبی، ذخیره شده اند. آن بدین منظور است:

  • کاربران نمی بایست آنها را بکار برند جز بصورت تعیین شده توسط خصوصیات اخیر

  • پردازنده ها نبایستی با آنها به عنوان اشتباهات خطرناک رفتار نمایند.

در هر صورت آنها خودشان اندوخته نشده اند، آن ناروا است که نامهای پیشوند شده ی اتصالات LocalPart با حروف x, m, l, به هر صورت ترکیبی بکار روند شروع گردند، بعنوان این نامها می خواهند استفاده شده باشند در صورتی که بخواهد ذخیره شود در صورتی که بدون یک پیشوند استفاده شده باشد.

4 نامهای واجد شرایط

در انطباق اسناد XML به این خصوصیات، برخی نامها (مطابق با Name غیر پایانی می سازند) بایستی بصورت نامهای واجد شرایط معین باشند، بصورتی که در زیر تعریف شده اند:

نام واجد شرایط
[7] QName ::= PrefixedName
| UnprefixedName
[8] PrefixedName ::= Prefix ':' LocalPart
[9] UnprefixedName ::= LocalPart
[10] Prefix ::= NCName
[11] LocalPart ::= NCName

  پیشوند قسمت پیشوند فضای نامی از نام فضای نامی را تامین می نماید، و  بایستی با یک مرجع فضای نامی IRI در یک اعلان فضای نامی مرتبط باشد. [تعریف: The LocalPart بخش محلی نام واجد شرایط را تامین می کند.]

توجه داشته باشید که دستورالعمل های پیشوندی تنها بعنوان یک مکان نگه دار برای یک نام فضای نامی بکار می روند. برنامه های کاربردی می بایستی نام فضای نامی، نه پیشوند را، در ایجاد نامها بکار برند که محدوده ی سند را توسعه دهد.

5 نامهای واجد شرایط کاربردی

در انطباق اسناد XML با این خصوصیات، نامهای عنصر بعنوان نامهای واجد شرایط معین، بصورت ذیل تعیین شده اند:

نامهای عنصر
[12] STag ::= '<' QName (S Attribute)* S? '>' [NSC: Prefix Declared]
[13] ETag ::= '</' QName S? '>'[NSC: Prefix Declared]
[14] EmptyElemTag ::= '<' QName (S Attribute)* S? '/>'[NSC: Prefix Declared]

مثالی از یک نام واجد شرایط سرویس دهنده بعنوان یک نام عنصر:

  <!-- the 'price' element's namespace is http://ecommerce.example.org/schema -->
  <edi:price xmlns:edi='http://ecommerce.example.org/schema' units='Euro'>32.18</edi:price>

ویژگیهای هر دوی اعلانهای فضای نامی یا نام هایشان بصورت نامهای واجد شرایط معین هستند:

ویژگی
[15] Attribute ::= NSAttName Eq AttValue
| QName Eq AttValue[NSC: Prefix Declared]

مثالی از یک نام واجد شرایط سرویس دهنده بعنوان یک نام ویژگی:

<x xmlns:edi='http://ecommerce.example.org/schema'>
  <!-- the 'taxClass' attribute's namespace is http://ecommerce.example.org/schema -->
  <lineItem edi:taxClass="exempt">Baby food</lineItem>
</x>

محدودیت فضای نامی: اعلان شده ی پیشوند

پیشوند فضای نامی، جز آنکه xml یا xmlns است، بایستی در یک ویژگی اعلان فضای نامی در هر یک از تگ شروعی عنصر در جایی که پیشوند استفاده شده یا در یک عنصر جدی اعلان شده باشد (یعنی یک عنصر در محتوایش نشانه گذاری پیشوند شده واقع گشته است). علاوه بر این، مقدار ویژگی در درون چنین اعلانی نبایستی یک رشته ی خالی باشد.

این محدودیت می تواند منجر به دشواریهای عملیاتی در مورد جایی گردد که ویژگی اعلان فضای نامی است مشروط به اینکه، مستقیما درهویت سند XML نباشد، اما از طریق یک ویژگی پیش فرض اعلان شده در یک موجودیت خارجی باشد. همچنین اعلانها نمی توانند توسط نرم افزاری که مبنی بر پردازنده ی XML غیر اعتباری است خوانده شود. بسیاری از موارد کاربردی XML، احتمالا شامل یکاهای مهم فضای نامی، جهت پردازنده های اعتباری رد شده است. اگر عملیات با چنین برنامه های کاربردی لازم است تصحیح شود، اعلانهای فضای نامی بایستی باشند بشرط آنکه مستقیما یا از طریق ویژگی های پیش فرض در زیر مجموعه های داخلی DTD اعلان شده باشند.

نامهای عنصر و نامهای ویژگی نیز هنگامی که در اعلانها در DTD ظاهر می شوند بصورت نامهای واجد شرایط معین شده اند:

نامهای واجد شرایط در اعلانها
[16] doctypedecl ::= '<!DOCTYPE' S QName (S ExternalID)? S? ('[' (markupdecl | PEReference | S)* ']' S?)? '>'
[17] elementdecl ::= '<!ELEMENT' S QName S contentspec S? '>'
[18] cp ::= (QName | choice | seq) ('?' | '*' | '+')?
[19] Mixed ::= '(' S? '#PCDATA' (S? '|' S? QName)* S? ')*'
| '(' S? '#PCDATA' S? ')'
[20] AttlistDecl ::= '<!ATTLIST' S QName AttDef* S? '>'
[21] AttDef ::= S (QName | NSAttName) S AttType S DefaultDecl

توجه داشته باشید که ارزیابی مبنی بر DTD آگاه از فضای نامی در زیر دریافت نشده است: یک DTD مجبور می نماید عناصر و ویژگی هایی که می توانند در یک سند توسط نامهای تفسیر نشده ی خودشان ظاهر شوند، نه توسط دو قسمت (نام فضای نامی، نام محلی). جهت معتبر سازی سندی که در مقابل یک DTD از فضاهای نامی استفاده می نماید، پیشوندهای یکسان بایستی بصورتی که در نمونه است در DTD استفاده شده باشند. یک DTD بهرحال ممکن است بطور غیر مستقیم مجبور نماید که فضاهای نامی استفاده شده را در یک سند معتبر مشروط به مقادیر FIXED# برای ويژگیهای فضاهای نامی اعلان نمایند.

6 فضاهای نامی درخواستی جهت عناصر و ویژگی‌ها

6.1 محدوده ی فضای نامی

محدوده ی یک اعلان فضای نامی اعلان کننده ی یک پیشوند توسعه یافته ها مطابق آغاز تگ شروع چنان بنظر می رسد که تا انتهای مشابه تگ پایان، به استثنای محدوده ی هر اعلان داخلی با قسمت NSAttName یکسان باشد. در مورد یک تگ خالی،  محدوده خود تگ است.

چنین اعلان فضای نامی ای جهت تمام نامهای ویژگی و عنصر درون محدوده اش که مربوط به سازگاریهای پیشوندی تعیین شده ی آن در اعلان می باشد، بکار می رود.

نام بسط یافته مطابق با یک نام ویژگی یا عنصر پیشوند شده IRI ای را داراست که پیشوند بصورت نام فضای نامی خودش، و قسمت محلی بصورت نام محلی اش محدود شده است.

<?xml version="1.1"?>

<html:html xmlns:html='http://www.w3.org/1999/xhtml'>

  <html:head><html:title>Frobnostication</html:title></html:head>
  <html:body><html:p>Moved to 
    <html:a href='http://frob.example.com'>here.</html:a></html:p></html:body>

</html:html>

چندین پیشوند فضای نامی می توانند بصورت ویژگیهای یک عنصر واحد، همچون در این نمونه نشان داده شوند:

<?xml version="1.1"?>
<!-- both namespace prefixes are available throughout -->
<bk:book xmlns:bk='urn:loc.gov:books'
         xmlns:isbn='urn:ISBN:0-395-36341-6'>
    <bk:title>Cheaper by the Dozen</bk:title>
    <isbn:number>1568491379</isbn:number>

</bk:book>

مقدار ویژگی در یک اعلان فضای نامی برای یک پیشوند می تواند تهی باشد. این اثر را در محدوده ی اعلان، از رفع هر نوع پیوند پیشوند با یک نام فضای نامی دارا است. بیشتر اعلانها می توانند دوباره پیشوند را از نو اعلان نمایند:


<?xml version="1.1"?>
<x xmlns:n1="http://www.w3.org">
    <n1:a/>               <!-- legal; the prefix n1 is bound to http://www.w3.org -->

    <x xmlns:n1="">
        <n1:a/>           <!-- illegal; the prefix n1 is not bound here -->
	<x xmlns:n1="http://www.w3.org">
            <n1:a/>       <!-- legal; the prefix n1 is bound again -->
        </x>

    </x>
</x>

6.2 پیش فرضی فضای نامی

محدوده ی یک اعلان فضای نامی پیش فرض بواسطه ی آغاز تگ  شروعی که در آن تا انتهای مشابه تگ پایانی ظاهر می شود، بجز محدوده ی هر یک از اعلانهای فضای نامی پیش فرض درونی، توسعه می یابد. در مورد یک تگ خالی، محدوده خود تگ است.

یک اعلان فضای نامی پیش فرض تمامی نامهای عنصر غیر پیشوندی درون محدوده اش را درخواست می کند. اعلانهای فضای نامی پیش فرض مستقیما نامهای ویژگی را درخواست نمی نمایند؛ تفسیر ویژگیهای غیر پیشوندی توسط عنصر که بر روی آنها ظاهر می شود، قطعی است.

اگر در آنجا یک اعلان فضای نامی پیش فرض در محدوده است، نام بسط یافته مطابق با یک نام عنصر پیشوندی دارای IRI از فضای نامی پیش فرض بصورت نام فضای نامی است. اگر در آنجا اعلان فضای نامی پیش فرض در محدوده نیست، نام فضای نامی بدون مقدار است. نام فضای نامی همواره برای یک نام ویژگی غیر پیشوندی بدون مقدار است. در تمام موارد، نام محلی   قسمت محلی است (که البته بصورت نام غیر پیشوندی خودش مشابه است).

<?xml version="1.1"?>

<!-- elements are in the HTML namespace, in this case by default -->
<html xmlns='http://www.w3.org/1999/xhtml'>
  <head><title>Frobnostication</title></head>
  <body><p>Moved to 
    <a href='http://frob.example.com'>here</a>.</p></body>

</html>
<?xml version="1.1"?>
<!-- unprefixed element types are from "books" -->
<book xmlns='urn:loc.gov:books'
      xmlns:isbn='urn:ISBN:0-395-36341-6'>
    <title>Cheaper by the Dozen</title>
    <isbn:number>1568491379</isbn:number>

</book>

مثالی کامل تر از نقل فضای نامی:

<?xml version="1.1"?>
<!-- initially, the default namespace is "books" -->
<book xmlns='urn:loc.gov:books'
      xmlns:isbn='urn:ISBN:0-395-36341-6'>
    <title>Cheaper by the Dozen</title>
    <isbn:number>1568491379</isbn:number>

    <notes>
      <!-- make HTML the default namespace for some commentary -->
      <p xmlns='http://www.w3.org/1999/xhtml'>
          This is a <i>funny</i> book!
      </p>

    </notes>
</book>

مقدار ویژگی در یک اعلان فضای نامی پیش فرض می تواند تهی باشد. این اثر یکسانی دارد، درون محدوده ی اعلان از آنجا فضای نامی پیش فرض موجود نیست.

<?xml version='1.1'?>
<Beers>
  <!-- the default namespace inside tables is that of HTML -->

  <table xmlns='http://www.w3.org/1999/xhtml'>
   <th><td>Name</td><td>Origin</td><td>Description</td></th>

   <tr> 
     <!-- no default namespace inside table cells -->
     <td><brandName xmlns="">Huntsman</brandName></td>
     <td><origin xmlns="">Bath, UK</origin></td>

     <td>
       <details xmlns=""><class>Bitter</class><hop>Fuggles</hop>
         <pro>Wonderful hop, light alcohol, good summer beer</pro>

         <con>Fragile; excessive variance pub to pub</con>
         </details>
        </td>
      </tr>
    </table>

  </Beers>

6.3 یگانگی ویژگیها

در انطباق اسناد XML با این خصوصیات، هیچ تگی نمی تواند دربرگیرنده ی دو ویژگی باشد که:

  1. نامهای یکسان دارد یا

  2. دارای نامهای واجد شرایط با قسمت محلی یکسان با پیشوندها است که مقید به نامهای فضای نامی بوده اند که همانند هستند.

این محدودیت برابر با تقاضای آن بدون عنصر دارای دو ویژگی با نام بسط یافته ی یکسان است.

برای مثال، هر یک از تگهای عنصر تهی bad در ذیل غیر مجازند:

<!-- http://www.w3.org is bound to n1 and n2 -->
<x xmlns:n1="http://www.w3.org" 
   xmlns:n2="http://www.w3.org" >
  <bad a="1"     a="2" />
  <bad n1:a="1"  n2:a="2" />

</x>

بهرحال، هر یک از تگهای ذیل مجازند، دوما برای اینکه نامهای پیش فرض نمی توانند به نامهای ویژگی اشاره نمایند:

<!-- http://www.w3.org is bound to n1 and is the default -->
<x xmlns:n1="http://www.w3.org" 
   xmlns="http://www.w3.org" >
  <good a="1"     b="2" />
  <good a="1"     n1:a="2" />
</x>

7 هماهنگی اسناد

این خصوصیات به اسناد XML 1.1 اشاره می نمایند. جهت تطبیق با این خصوصیات، یک سند بایستی مطابق با خصوصیات XML 1.1 خوش ترکیب باشد [XML 1.1].

در اسناد XML که مطابق با این خصوصیات هستند، نامهای ویژگی و عنصر بایستی هماهنگ با تولید برای QName باشند و بایستی جبران کننده ی "محدودیتهای فضای نامی" باشند. تمامی نشانه های دیگر در سند که مورد نیازند، برای خوش ترکیبهای XML 1.1 ، جهت سازگاری تولید XML برای Name بایستی هماهنگ با این تولید خصوصیات برای NCName باشند.

[تعریف: یک سند در صورتی که مطابق با این خصوصیات باشد خوش ترکیب فضای نامی است. ]

در یک سند خوش ترکیب فضای نامی چنین است:

بعلاوه یک سند خوش ترکیب فضای نامی همچنین می تواند فضای نامی معتبر باشد.

[تعریف: یک سند خوش ترکیب فضای نامی در صورتی که مطابق با خصوصیات XML 1.1 معتبر است فضای نامی معتبر می باشد و تمام نشانه های متفاوت نامهای ویژگی و عنصر که لازمند، برای اعتبار XML 1.1، جهت سازگاری تولید XML برای Name هماهنگ با این تولید خصوصیات برای NCName است. ]

در یک سند فضای نامی معتبر چنین است:

8 هماهنگی پردازنده ها

جهت مطابقت با این خصوصیات، یک پردازنده بایستی تخلفات خوش ترکیبی فضای نامی را گزارش دهد، بجز آن لازم نیست تا بررسی نماید که نامهای فضای نامی آن IRI های مجاز هستند.

[تعریف: یک پردازنده ی اعتباری XML که با این خصوصیات مطابقت می نماید اگر به اضافه ی آن خطاهای اعتباری فضای نامی را گزارش دهد فضای نامی اعتباری است. ]

A منابع اصلی

Keywords
RFC 2119: Key words for use in RFCs to Indicate Requirement Levels, S. Bradner, ed. IETF (Internet Engineering Task Force), March 1997. Available at http://www.rfc-editor.org/rfc/rfc2119.txt
RFC2141
RFC 2141: URN Syntax, R. Moats, ed. IETF (Internet Engineering Task Force), May 1997. Available at http://www.rfc-editor.org/rfc/rfc2141.txt.
RFC3986
RFC 3986: Uniform Resource Identifier (URI): Generic Syntax, T. Berners-Lee, R. Fielding, and L. Masinter, eds. IETF (Internet Engineering Task Force), January 2005. Available at http://www.rfc-editor.org/rfc/rfc3986.txt
RFC3629
RFC 3629: UTF-8, a transformation format of ISO 10646, F. Yergeau, ed. IETF (Internet Engineering Task Force), November 2003. Available at http://www.rfc-editor.org/rfc/rfc3629.txt
RFC3987
Internationalized Resource Identifiers (IRIs), M. Duerst and M. Suignard eds. January 2005. Available at http://www.rfc-editor.org/rfc/rfc3987.txt.
XML
Extensible Markup Language (XML) 1.0 (Fourth Edition), Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, and François Yergeau eds. W3C (World Wide Web Consortium), 16 August 2006. Available at http://www.w3.org/TR/2006/REC-xml-20060816/.
XML 1.1
Extensible Markup Language (XML) 1.1 (Second Edition), Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, François Yergeau, and John Cowan eds. W3C (World Wide Web Consortium), 16 August 2006. Available at http://www.w3.org/TR/2006/REC-xml11-20060816/.

B دیگر مراجع (غیر اصولی)

1.0 Errata
Namespaces in XML Errata. W3C (World Wide Web Consortium). Available at http://www.w3.org/XML/xml-names-19990114-errata.
1.1 Errata
Namespaces in XML 1.1 Errata. W3C (World Wide Web Consortium). Available at http://www.w3.org/XML/2004/xml-names11-errata.
Relative URI deprecation
Results of W3C XML Plenary Ballot on relative URI References In namespace declarations 3-17 July 2000, Dave Hollander and C. M. Sperberg-McQueen, 6 September 2000. Available at http://www.w3.org/2000/09/xppa.
Requirements
Namespaces in XML 1.1 Requirements, Jonathan Marsh, ed. W3C (World Wide Web Consortium), March 2002. Available at http://www.w3.org/TR/2002/WD-xml-names11-req-20020403/.

C ساختار داخلی فضاهای نامی XML (غیر اصولی)

این پیوست حذف شده است.

D تغییرات پس از نسخه ی 1.0 (غیر اصولی)

این نسخه شامل اشکالات نسخه ی  1.0 از تاریخ 6 دسامبر 2002 [1.0 Errata] است. در آن دو تغییر واقعی است که بیشتر مهم اند:

آنجا تغییرات چندین سر مقاله موجود است، شامل تعدادی از تغییرات اصطلاحات تخصصی و افزایشات راجع به ایجاد پایداری بیشتر می باشد. پیوست غیر اصولی "ساختار داخلی XML" حذف شده است.

D.1 تغییرات پس از نسخه ی 1.1

این نسخه شامل اشکالات نسخه ی 1.1 از تاریخ 1 ژوئن 2006 است [1.1 Errata].

با توجه به اینکه نسخه ی نهایی IRI RFC تا کنون منتشر نشده، ویرایش نخست نسخه ی 1.1 دارای مشخصات در بر گرفته اش از IRI ها می باشد. این حذف شده و با یک اشاره به RFC جایگزین شده است.

E سپاسگزاریها (غیر رسمی)

این انعکاس کار افراد بسیار زیادی، بویژه شامل شرکت کنندگان در کار گروه XML کنسرسیوم وب جهانی و گروه علاقه مند خاص و شرکت کنندگان در فعالیت فرا داده ی W3C می باشد. مخصوصا کمکهای چارلز فرنکستن از مایکروسافت هم با ارزش بودند.