» Що таке Namespaces?

На сайте www.inspiro.ru заказать сайт интернет магазин до ста тысяч рублей.

Як уже згадувалося раніше, вся принадність використання XML полягає в можливості придумування власних тэгов, назви яких найбільше повно відповідали б призначенню. Але фантазія й словниковий запас людей не безмежні, тому немає абсолютно ніякої гарантії того, що дані вами імена елементів не будуть використані кимсь ще. Доти, поки у вашому додатку обробляються тільки власні XML-документи, ніяких проблем не виникне. Але цілком можлива ситуація, коли той самий документ буде містити інформацію для декількох оброблювачів одночасно. У цьому випадку назви деяких елементів або їхніх атрибутів можуть збігтися, що викличе або помилку в XML- аналізаторі, або неправильне подання документа. Наприклад, у нашому випадку, елемент event цілком міг би бути використаний для запису інших подій й оброблятися іншим додатком.

Щоб виправити цю ситуацію, ми повинні визначити унікальні назви елементів й їхніх атрибутів, “дописуючи” до їхніх звичайних імен деякий універсальний неповторюваний префікс. Для цього застосовується механізм Namespaces (специфікація Namespaces була офіційно затверджена W3C у січні 1999 року й сьогодні є частиною стандарту XML). Відповідно до цієї специфікації, для визначення “області дії” тэга ( насправді цей термін, широко використовуваний у звичайних мовах програмування, не застосуємо в XML, тому що як такої безлічі, на якому могла б бути побудована “область”, усередині структурованого XML документа немає) необхідно визначити унікальний атрибут, що описує назву елемента, по якому аналізатор документа зможе визначити, до якої групи імен воно ставиться (Namespace ідентифікатори можуть застосовуватися для опису унікальних назв як елементів, так й їхніх атрибутів). У нашому останньому прикладі це може бути зроблене так:

<?xml version=”1.0″ encoding=”koi8-r”?>

<!-іDOCTYPE log SYSTEM “log.dtd”-і>

<log xmlns:xlg=”www.mrcpk.nstu.ru/xml/ar/4/”>

<xlg:event xlg:date=” 27/May/1999:02:32:46 ” xlg:result=”success”>

<ip-from> 195.151.62.18 </ip-from>

<method>GET</method>

<url-to> /misc/</url-to>

<response>200</response>

</event>

<xlg:event date=” 27/May/1999:02:41:47 ” result=”success”>

<ip-from> 195.209.248.12 </ip-from>

<method>GET</method>

<url-to> /soft.htm</url-to>

<response>200</response>

</event>

</log>

Унікальність атрибуту імені забезпечує використання в якості його значення деяких універсальних ідентифікаторів ресурсів (наприклад, URI або ISBN) .

Повну інформацію з використання Namespace ви можете знайти в офіційній специфікації цього стандарту. Надалі, для спрощення прикладів, ми будемо Namespace - опису пропускати.