Пространство имен XML-документов

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

Чтобы исправить эту ситуацию, мы должны определить уникальные названия элементов и их атрибутов, "дописывая" к их обычным именам некоторый универсальный неповторяющийся префикс. Для этого применяется механизм Namespaces. Согласно этой спецификации, для определения "области действия" тэга (на самом деле этот термин, широко используемый в обычных языках программирования, неприменим в XML, потому что как такового множества, на котором могла бы быть построена "область", внутри структурированного XML документа нет) необходимо определить уникальный атрибут, описывающий название элемента, по которому анализатор документа сможет определить, к какой группе имен оно относится (Namespace-идентификаторы могут применяться для описания уникальных названий как элементов, так и их атрибутов).

Пример 7

<?xml version="1.0" encoding="windows-1251"?>
   <!--DOCTYPE log SYSTEM "log.dtd"-->
   <log xmlns:xlg="www.mysite.ru/xml/">
    <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).


Навигация :
К Предыдущей Странице В Оглавление. На Следующую Страницу

Hosted by uCoz