Кіріспе

XML құжатында бірегей элементтер мен атрибуттарды ұсыну әдісі XML атау кеңістіктері XML құжатында бірегей аталатын элементтер мен атрибуттарды ұсыну үшін қолданылады. Олар W3C ұсынымында анықталған. XML мысалында бірнеше XML сөздігінен элементтердің немесе атрибуттардың атаулары болуы мүмкін. Әр сөздікке атау кеңістігі берілсе, бірдей аталатын элементтер немесе атрибуттар тудыратын қарама-қайшылықты шешуге болады. Мысалы, клиент пен тапсырыс берілген өнімге сілтемелерді қамтитын XML мысалын қарастырайық. Клиент элементі мен өнім элементінің екеуінде де "id" деп аталатын дочер элементі болуы мүмкін. Сондықтан "id" элементіне сілтемелерді дұрыс түсіну қиын болар еді; оларды әртүрлі атау кеңістіктеріне орналастыру осы қарама-қайшылықты жояды.

Атау кеңістігінің атауы

Атау кеңістігінің атауы – бірыңғай ресурс идентификаторы (URI). Әдетте, нақты XML сөздігінің атау кеңістігі үшін таңдалған URI, сөздікті анықтайтын автор немесе ұйым бақылайтын ресурсты сипаттайды, мысалы, автордың веб-серверінің URL-ы. Дегенмен, атау кеңістігінің спецификациясы атау кеңістігі URI-сін ақпаратты алу үшін пайдалануды талап етпейді және ұсынбайды; XML талдаушысы оны жай ғана жол ретінде қарастырады. Мысалы, http://www.w3.org/1999/xhtml мекенжайындағы құжатта ешқандай код жоқ. Ол жай ғана XHTML атау кеңістігін адамдарға түсінікті ету үшін сипаттайды. Атау кеңістігін анықтау үшін URI (мысалы, "http://www.w3.org/1999/xhtml") пайдалану, қарапайым жолға қарағанда ("xhtml" сияқты), әртүрлі атау кеңістіктерінде қайталанатын идентификаторларды пайдалану ықтималдығын азайтады. "Атау кеңістігі URI" термині кеңінен таралған болса да, W3C ұсынымы оны "атау кеңістігінің атауы" деп атайды. Спецификация атау кеңістігі атауларының нақты ережелері туралы қатаң талаптар қоймайды (атау кеңістігі атауы жарамды Бірыңғай ресурс идентификаторы болмаған жағдайда талдаушылар құжатты қабылдамауы керек екенін нақты айтпайды) және көптеген XML талдаушылары кез келген таңбалар жолын пайдалануға рұқсат береді. Ұсынымның 1.1 нұсқасында атау кеңістігі атауы Халықаралықтандырылған ресурс идентификаторына (Internationalized Resource Identifier) айналады, бұл іс жүзінде барлық XML бағдарламалық құралдары қабылдаған ASCII емес таңбаларды пайдалануға мүмкіндік береді. Дегенмен, "URI атау кеңістігі" термині тек кең таралған қолданыста ғана емес, сонымен қатар W3C және басқа да көптеген спецификацияларда қолданылады. Namespaces ұсынымы жарияланғаннан кейін, салыстырмалы URI-лерді қалай өңдеу керек деген туралы қызу пікірталас болды, кейбіреулер оны жай ғана таңбалар жолы ретінде қарастыру керек деп таласқан, ал басқалары оны құжаттың негізгі URI-іне қатысты абсолютті URI-ге түрлендіру керек деп сендірген. Пікірталас нәтижесінде W3C салыстырмалы URI-лердің қолданылуын ұсынбады. http схемасындағы URL түріндегі URI-лерді пайдалану (мысалы, http://www.w3.org/1999/xhtml) жиі кездеседі, HTTP протоколымен тікелей байланысы болмаса да. Namespaces спецификациясында мұндай URL сілтемеден шығарылса (яғни, бағдарламалық құрал осы мекенжайдан құжатты алуға тырысса) не болуы керек екені айтылмаған. Кейбір пайдаланушылар RDDL құжатын сол мекенжайға орналастыруды қабылдады. Алайда, жалпы алғанда, пайдаланушылар атау кеңістігі URI-сінің жай ғана атау екенін, веб-құжаттың мекенжайы емес екенін ескеруі керек.

API-лер мен XML нысандық модельдердегі атау кеңістіктері

Әртүрлі техникалық талаптар атау кеңістігі туралы ақпаратты қолданбаларға қалай ұсынуға қатысты әртүрлі тәсілдерді қолданды. Көптеген бағдарламалау модельдері элементтің немесе атрибут түйінінің атын үш бөліктен тұратын атау ретінде алуға мүмкіндік береді: жергілікті атау, атау кеңістігінің префиксі және атау кеңістігінің URI. Қолданбалар префикстің таңдалуына ешқандай маңыз беруден аулақ болуы керек, бірақ бұл ақпарат адамдарға оқу үшін пайдалы болуы мүмкін. Егер атау кеңістігінің URI және жергілікті атау сәйкес келсе, атаулар тең деп есептеледі. Сонымен қатар, көптеген модельдер белгілі бір элемент үшін қандай атау кеңістіктері жарияланғанын анықтаудың бір жолын ұсынады. Бұл ақпарат қажет, себебі кейбір XML сөздіктері элементтердің немесе атрибуттардың мазмұнында да, олардың аттарында да атау кеңістігі префикстерін қамтитын білікті атауларды пайдалануға рұқсат береді. Бұл ақпаратты үш негізгі тәсілмен беруге болады: "xmlns" немесе "xmlns:xxx" деп аталатын атрибут түйіндері арқылы, дәл сол атау кеңістіктері бастапқы XML құжатында жазылғандай. Бұл модель DOM жүйесінде ұсынылған. Атау кеңістігінің жарияланымдары ретінде: атрибуттардан ерекшеленеді, бірақ бастапқы XML құжатындағы тиісті атрибуттармен бір-бірге сәйкес келеді. Бұл модель JDOM жүйесінде ұсынылған. Атау кеңістігінің қолжетімді байланыстары түрінде: бұл модельде қолданба кез келген элемент үшін қандай атау кеңістіктері қолжетімді екенін анықтай алады, бірақ нақты жарияланымдарды қамтитын элементтерді анықтай алмайды. Бұл модель XPath, XSLT және XQuery жүйелерінде қолданылады.