Выбрать главу

Семантика XML интересна тем, что на элемент можно ссылаться как на узел и наоборот. В некоторых публикациях элемент также называют дескриптором. Во избежание путаницы здесь и далее используются только термины "элемент" и"узел". 

Элементы не только могут иметь атрибуты, но и подчиненные элементы; аналогично, подчиненные элементы могут иметь свои собственные атрибуты, как показано в листинге 9.1.

Листинг 9.1. Пример элемента Person с подчиненными элементами

<Person firstName="John">

 lastName = "Doe"

 address1 = "123 Main Street"

 address2 = ""

 city = "Sometown"

 state = "ОН"

 zip = "22222"

 phone = "111-242=5512"

 <orders>

  <order id="111" itemid="2932" itemdesc="Super Foo Widget"></order>

 </orders>

</Person>

Как видите, элемент Person здесь нужно закрыть явно, потому что изменился диапазон контейнера, т.е. теперь он содержит сведения о заказах orders. Приведенный в листинге 9.1 код является нейтральным, т.е. не содержит никакой информации о приложении, только данные и метаданные.

НА ЗАМЕТКУ

Языку XML посвящено множество материалов, опубликованных в печатных изданиях и в Internet. Прекрасное введение в XML можно найти по адресу: http://www/w3.org/XML/1999/XML-in-10-points.html. Вот несколько других адресов Web-узлов, которые содержат наиболее полные сведения по этой теме:

• Web-узел консорциума World Wide Web Consortium http://www/w3.org) содержит официальные и хорошо документированные спецификации XML;

• Web-узел компании Microsoft (http://msdn.microsoft.com) содержит постоянно обновляемые ресурсы, которые охватывают все вопросы использования XML и родственных технологий с программными продуктами Microsoft;

• Web-узел компании TopXML/VBXML.com (http://www.vbxml.com) предлагает разные ресурсы и примеры кодов для работы с технологией XML.

Семейство технологий XML

Язык XML не одинок и сосуществует с несколькими другими родственными технологиями.

• XML Path Language (XPATH) предлагает способ извлечения информации из XML-документа. Хотя синтаксис XPATH радикально отличается от синтаксиса XML, он работает аналогично SQL-запросам.

• Extensible StyleSheet Language Transformations (XSLT) предлагает способ преобразования (т.е. вставки, удаления или изменения) данных XML-документа в данные, которые могут использоваться в другом XML-документе. XSLT может использовать технологию XPATH для извлечения преобразуемых данных.

• Extensible StyleSheet Language (XSL) — это XSLT плюс объекты, которые позволяют разработчику описывать способ отображения информации в броузере или другом XSL-совместимом приложении.

• Document Object Model (DOM) содержит стандартный набор функций, которые позволяют программными средствами извлекать данные из XML- или HTML-документа.

• Simple Object Access Protocol (SOAP) – это спецификация вызовов Web-служб или других Web-ориентированных приложений и служб, а также форматирования отклика. Более подробно SOAP рассматривается в главе 12, "Web-службы и технологии промежуточного уровня".

РИС. 9.1. Иерархия технологий XML, XSL, XSLT u XPATH

На рис. 9.1 показана взаимосвязь между технологиями XML, XSL, XSLT и XPATH в приложении на основе XML. (Более подробно такие приложения рассматриваются далее, в разделе о классах XML на платформе .NET.) Обратите внимание, что XML-документ является источником данных, т.е. содержит отображаемые в приложении данные. XPATH-запрос элементов People/Person используется для сбора сведений обо всех элементах Person из XML-документа. XSL-стиль окружает данные элементами с указанием шрифта с помощью XSL-страницы стиля. После анализа и обработки полученный результат возвращается в формате HTML.

ВНИМАНИЕ!

Учтите, что XML имеет очень строгие правила, причем все имена нужно приводить с учетом регистра символов.

Для демонстрации этой взаимосвязи вставьте код из листингов 9.2 и 9.3 в файлы simple.xml и simple.xsl, которые располагаются в одном каталоге. Откройте файл simple.xml в Web-броузере Internet Explorer версии 6.0 или выше. Результат выполнения этих действий будет иметь вид, представленный на рис. 9.1.

ЛИСТИНГ 9.2. Файл simple.xml

<?xml version='1.0'?>

<?xmclass="underline" stylesheet type="text/xsl" href="simple.xsl"?>

<People>

 <Person>

  John Doe

 </Person>

 <Person>

  Jane Doe

 </Person>

</People>

Обратите внимание, что страница стиля связана с XML-документом. С помощью .NET-классов для XML или MSXML-анализатора Visual Basic можно динамически изменять результаты с представлением их в нескольких разных форматах (например, WML).

ЛИСТИНГ 9.3. Файл simple.xsl

<?xml version="1.0"?>

<HTML xmlns:xsl="http://www.w3.org/TR/WD-xsl">

 <xsclass="underline" for-each select="People/Person">

  <font face="Arial">