
- •Раздел 1
- •Тема 1.1 Основные принципы технологии «клиент сервер»
- •Тема 1.2 Серверы приложений. Web-серверы.
- •1. Типы серверов
- •Типы серверов
- •Лекция 1.3 Основы Web-программирования.
- •1. Основы функционирования Интернет.
- •Основы функционирования интернета
- •Язык разметки html
- •Каскадные таблицы стилей (css)
- •Язык сценариев JavaScript
- •Объектная модель dhtml
- •Объектная модель dom
- •Основы языка xml и объектная модель xml
- •Лекция 1.4 Протоколы прикладного уровня.
- •Механизм взаимодействия клиента и ервера
- •Раздел 2. Основы Web-программирования.
- •Тема 2.1 Развитие языков разметки гипертекста
- •Структура html-документа
- •Лекция 2.2 Описание html. Теги языка, их свойства.
- •Тема 2.3 Фреймы. Формы.
- •Свойства фреймов
- •Синтаксис фреймов
- •Атрибуты и их значения
- •Планирование фрэймов и взаимодействия между фрэймами
- •Синтаксис
- •Тэги Формы
- •Меню выбора в формах
- •Отправление файлов при помощи форм
- •Тема 2.4 Каскадные таблицы стилей.
- •Структура и правила
- •Id селекторы (id Selectors):
- •Внутренние Таблицы Стилей
- •Глобальные Таблицы Стилей
- •Связанные Таблицы Стилей
- •Свойства Font
- •Свойства Text
- •Свойства Color и Background
- •Свойства Box
- •Классификация
- •Лекция 2.5 Характеристика и вохмодности xml.
- •Отображение документов xml
- •Правила создания xml- документа
- •Конструкции языка
- •Правила xsl
- •Лекция 2.6 Язык описания схемы данных xml (dtd).
- •Лекция 2.7 Объектная модель документа dom.
- •Лекция 2.8 Характеристика ис. Спецификация cgi.
- •Лекция 2.9 Расширение isapi. Серверы asp.
- •Лекция 2.10 Характеристика программного средства (рнр).
- •Лекция 2.11 Основы языка ис. Синтаксис.
- •Лекция 2.12 Элементы и выражения языка.
- •Лекция 2.13 функции ис.
- •Лекция 2.14 Характеристика программного средства (JavaScript).
- •Лекция 2.15 Синтаксис языка JavaScript. Операторы.
- •Выражения
- •Побитовые Операторы сдвига
- •Логические операторы
- •Операторы Строки
- •Лекция 2.16 Функции JavaScript.
- •Лекция 2.17 Объекты JavaScript. Методы и события.
- •Общие сведения
Правила xsl
XSL- документ представляет собой совокупность правил построения, каждое из которых выделено в отдельный блок, ограниченный тэгами <rule> и </rule>;. Правила определяют шаблоны, по которым каждому элементу XML ставится в соответствие последовательность HTML- тэгов, т.е. внутри них содержатся инструкции, определяющие элементы XML- документа и тэги форматирования, применяемые к ним.
Разбор любого XSL- документа всегда начинается с правила для корневого элемента, в котором определяется область всего разбираемого XML документа и поэтому тэги форматирования, помещенные сюда, будут действовать на весь документ в целом. Для обозначения корневого правила необходимо включить в него элемент <root/>;.
Дочерние элементы в XML-документе всегда находятся внутри области, определяемой тэгами родительского по отношению к ним элемента. Для того, чтобы точно указать месторасположение обрабатываемого элемента в дереве XML, в XSL используется дополнительный тэг <element>;. При помощи него можно указать, какие элементы должны предшествовать текущему, а какие - следовать после него.
В том случае, если внутри XSL- документа встречается несколько правил для одного и того же элемента, то msxsl будет использовать то из них, которое более точно определяет позицию данного элемента.
В общем случае приоритет правил определяется следующим образом (в порядке убывания приоритета):
правила, помеченные специальным тэгом <importance>
правила с наибольшим значением атрибута id, если он определен
правила с наибольшим значением атрибута class, если он определен
правила, имеющие наибольшую вложенность, определяемую тэгом <element>
правила, использующие атрибут type совместно с <target-element>
правила, в которых отсутствует атрибут type в <target-element> или <element>
правила с более высоким приоритетом, задаваемым атрибутом priority тэга <rule>
правила с наибольшим значением квалификаторов <only>, <position>, <attribute>
Одним из самых мощных средств XSL является возможность сортировки и выборки элементов, выделяемых из общего дерева элементов документа. Для этого используется элемент <select-elements>;, который заменяет <children/> в правилах, определяя те элементы, которые следует обработать в процессе рекурсивного обхода.
Для определения правила стилевого оформления необходимо воспользоваться элементом <style-rule>;, который используется точно также, как и <rule>, но инструкции, содержащиеся в нем, никак не влияют на структуру выходного документа. Поэтому все команды внутри этого правила должны описываться в рамках элемента <apply>.
Лекция 2.6 Язык описания схемы данных xml (dtd).
1. Определение элементов.
2. Определение атрибутов.
3. Определение компонентов.
4. Типы данных.
5. Схемы данных.
ОПРЕДЕЛЕНИЕ ЭЛЕМЕНТОВ
В XML- документах DTD определяет набор действительных элементов, идентифицирует элементы, которые могут находиться в других элементах, и определяет действительные атрибуты для каждого из них. Синтаксис DTD весьма своеобразен и от автора-разработчика требуются дополнительные усилия при создании таких документов Как уже отмечалось, в XML использовать DTD не обязательно - документы, созданные без этих правил, будут правильно обрабатываться программой-анализатором, если они удовлетворяют основным требованиям синтаксиса XML. Однако контроль за типами элементов и корректностью отношений между ними в этом случае будет полностью возлагаться на автора документа.
Элемент в DTD определяется с помощью дескриптора !ELEMENT, в котором указывается название элемента и структура его содержимого.
Например, для элемента <flower> можно определить следующее правило:
<!ELEMENT flower PCDATA>
Ключевое слово ELEMENT указывает, что данной инструкцией будет описываться элемент XML. Внутри этой инструкции задается название элемента(flower) и тип его содержимого.
Последовательность дочерних для текущего элемента объектов задается в виде списка разделенных запятыми названий элементов. При этом для того, чтобы указать количество повторений включений этих элементов могут использоваться символы +,*, ? :
<!ELEMENT issue (title, author+, table-of-contents?)>
В этом примере указывается, что внутри элемента <issue> должны быть определены элементы title, author и table-of-contents, причем элемент title является обязательным элементом и может встречаться лишь однажды, элемент author может встречаться несколько раз, а элемент table-of-contents является опциональным, т.е. может отсутствовать. В том случае, если существует несколько возможных вариантов содержимого определяемого элемента, их следует разделять при помощи символа "|" :
<!ELEMENT flower (PCDATA | title )*>
Символ * в этом примере указывает на то, что определяемая последовательность внутренних элементов может быть повторена несколько раз или же совсем не использоваться.
ОПРЕДЕЛЕНИЕ АТРИБУТОВ
Списки атрибутов элемента определяются с помощью ключевого слова !ATTLIST. Внутри него задаются названия атрибутов, типы их значений и дополнительные параметры. Например, для элемента <article> могут быть определены следующие атрибуты:
<!ATTLIST article
id ID #REQUIRED
about CDATA #IMPLIED
type (actual | review | teach ) 'actual' '' >
В данном примере для элемента article определяются три атрибута: id, about и type, которые имеют типы ID(идентификатор), CDATA и список возможных значений соответственно. Всего существует шесть возможных типов значений атрибута:
CDATA - содержимым документа могут быть любые символьные данные
ID - определяет уникальный идентификатор элемента в документе
IDREF( IDREFS )- указывает, что значением атрибута должно выступать название(или несколько таких названий, разделенных пробелами во втором случае) уникального идентификатора определенного в этом документе элемента
ENTITY( ENTITIES) - значение атрибута должно быть названием компонента (макроопределения), определенного в документе
NMTOKEN (NMTOKENS) - содержимым элемента может быть только одно отдельное слово (т.е. этот параметр является ограниченным вариантом CDATA)
Список допустимых значений - определяется список значений, которые может иметь данный атрибут.
Также в определении атрибута можно использовать следующие параметры:
#REQUIRED - определяет обязательный атрибут, который должен быть задан во всех элементах данного типа
#IMPLIED - атрибут не является обязательным
#FIXED "значение" - указывает, что атрибут должен иметь только указанное значение, однако само определение атрибута не является обязательным, но в процессе разбора его значение в любом случае будет передано программе-анализатору
Значение - задает значение атрибута по умолчанию
ОПРЕДЕЛЕНИЕ КОМПОНЕНТОВ
Компонент (entity) представляет собой определения, содержимое которых может быть повторно использовано в документе . В других языках программирования подобные элементы называются макроопределениями. Создаются DTD- компоненты при помощи инструкции !ENTITY:
<!ENTITY hello ' Мы рады приветствовать Вас!' >
Программа-анализатор, просматривая в первую очередь содержимое области DTD- определений, обработает эту инструкцию и при дальнейшем разборе документа будет использовать содержимое DTD- компонента в том месте, где будет встречаться его название. Т.е. теперь в документе мы можем использовать выражение &hello; , которое будет заменено на строчку "Мы рады приветствовать Вас"
В общем случае, внутри DTD можно задать три типа макроопределений:
Внутренние макроопределения - предназначены для определения строковой константы, с их помощью можно организовывать ссылки на часто изменяемую информацию, делая документ более читабельным. Внутренние компоненты включаются в документ при помощи амперсанта &
В XML существует пять предустановленных внутренних символьных констант:
&lt; - символ "<"
&gt; - символ ">"
&amp; - символ "&"
&apos; - символ апострофа "'"
&quot; - символ двойной кавычки """
Внешние макроопределения - указывают на содержимое внешнего файла, причем этим содержимым могут быть как текстовые, так и двоичные данные. В первом случае в месте использования макроса будут вставлены текстовые строки, во втором - бинарные данные, которые анализатором не рассматриваются и используются внешними программами
<!ENTITY logotype SYSTEM "/image.gif" NDATA GIF87A>
Макроопределения правил - макроопределения параметров могут использоваться только внутри области DTD и обозначаются специальным символом %, вставляемым перед названием макроса. При этом содержимое компонента будет помещено непосредственно в текст DTD- правила
ТИПЫ ДАННЫХ
Используя типизацию данных, можно создавать элементы, значения которых могут использоваться, например, в качестве параметров SQL- запросов. Программа клиент в этом случае должна знать, к какому типу данных относится текущее значение элемента и в случае соответствия формирует SQL-запрос.
Если в качестве программы на стороне клиента используется верифицирующий XML-процессор, то информацию о типе можно передавать при помощи специально созданного для этого атрибута элемента, имеющего соответствующее DTD- определение. В процессе разбора программа-анализатор передаст значение этого атрибута клиентскому приложению, которое сможет использовать эту информацию должным образом.
СХЕМА ДАННЫХ
Схемы данных (Schemas) являются альтернативным способом создания правил построения XML-документов. По сравнению с DTD, схемы обладают более мощными средствами для определения сложных структур данных, обеспечивают более понятный способ описания грамматики языка, способны легко модернизироваться и расширяться. Безусловным достоинством схем является также то, что они позволяют описывать правила для XML- документа средствами самого же XML.
Внешне документы схем очень похожи на те документы XML, с которыми мы уже встречались в предыдущих разделах. Мы размечаем документ при помощи специальных элементов, выполняющих в схемах роль инструкций. Эти инструкции составляют набор правил, используя которые, программа-клиент будет делать вывод о том, корректен документ или нет.
Создавая схемы данных, мы определяем в документе специальный элемент, <schema>;, внутри которого содержатся описания правил:
<schema id="OurSchema">
<!-- последовательность инструкций -->
</schema>
Для определения класса элемента, к которому в дальнейшем будут применяться инструкции, описывающие его содержимое и структуру, предназначен специальный элемент схемы elementType,
<elementType id="issue">
<descript>Элемент содержит информацию об очередном
выпуске журнала</descript>
</elementType>
Название элемента задается атрибутом id . Все дальнейшие инструкции, которые относятся к описываемому классу, определяют его внутреннюю структуру и набор допустимых данных, содержатся внутри блока, заданного тэгами <elementType> и </elementType>. Мы рассмотрим эти инструкции чуть позже.
Как видно из примера, при определении класса элемента, можно также использовать комментарии к нему, которые заключаются в тэги <descript></descript>
Для того, чтобы в описании элемента определить его атрибуты и описать свойства этих атрибутов мы должны использовать элемент attribute:
<elementType id="photo">
<attribute name="src"/>
<empty/>
</elementType>
В данном примере элементу <photo> определяется атрибут src, значением которого может быть любая последовательность разрешенных символов:
<photo src="0"/>
<photo src="some text">
Подобно DTD, схемы данных позволяют устанавливать ограничения на значения и способ использования атрибутов. Для этого в дескрипторе <attribute> необходимо использовать параметр atttype.
Под моделью содержимого в схеме данных понимают описание всех допустимых объектов XML- документа, использование которых внутри данного элемента является корректным. Модель содержимого определяется инструкциями, расположенными внутри блока <elementType>.
<elementType id="article">
<attribute name="id" atttype="ID">
<element type="#title">
<string/>
</elementType>
Вложенные элементы описываются при помощи инструкции element, в которой параметром type указывается класс объекта - ссылка на его определение:
<elementType id="article">
<element type="#title"/>
<element type="#author"/>
</elementType>
Если требуется указать режим использования вложенного элемента, то надо определить параметр occurs:
<elementType id="article">
<element type="#title" occurs="REQUIRED"/>
<element type="#author" occurs="OPTIONAL"/>
<element type="#subject" occurs="ONEORMORE"/>
</elementType>
Возможные значения этого параметра таковы:
REQUIRED - элемент должен быть обязательно определен
OPTIONAL - использование элемента не является обязательным
ZEROORMORE - вложенный элемент может встречаться несколько раз или ни разу
ONEORMORE - элемент должен встречаться хотя бы один раз
Группировка объектов позволяет определять сразу группу объектов различных типов, которые могут находится внутри данного объекта.
Когда мы определяем модель содержимого текущего элемента, список дополнительных допустимых элементов правилами не ограничивается - он может свободно расширяться.
Для того, чтобы при описании класса ограничить список объектов, которые могут являться родительскими для данного элемента, необходимо использовать элемент схемы domain.
Инструкция <domain> указывает, что текущий объект должен определяться строго внутри элемента, заданного этим тэгом. Например, в следующем фрагменте указывается, что элемент <author> может быть определен строго внутри тэга <article>:
<elementType id="author">
<element type="#lastname">
<element type="#firstname">
<domain type="#article"/>
</elementType>
Значения элементов могут быть ограничены при помощи тэгов <min> и <max>;:
<elementType id="room">
<element type="#floor"><min>0</min><max>100</max>
</elementType>
Внутри этих элементов могут указываться и символьные ограничения:
<elementType id="line">
<element type="#character"><min>A</min><max>Z</max>
</elementType>