
- •Оглавление введение 4
- •Тема 1. Простой xml-документ 8
- •Тема 2. Создание корректно сформированных xml-документов 20
- •Тема 3. Создание валидных xml-документов 37
- •Тема 4. Определение и использование примитивов 72
- •Тема 5. Таблицы каскадных стилей 94
- •Тема 6. Связывание данных 169
- •Тема 7. Сценарии объектной модели документа 219
- •Тема 8. Xsl-таблицы стилей 261
- •Тема 9. Описание схемы документа на языке xsd 288
- •Список литературы 320 введение
- •Тема 1. Простой xml-документ
- •Лабораторная работа №1
- •Тема 2. Создание корректно сформированных xml-документов
- •2.1. Составные части корректно сформированного xml-документа
- •Лабораторная работа №2
- •2.2. Добавление элементов в документ
- •2.3. Анатомия элемента
- •2.4. Типы содержимого элемента
- •2.5. Пустые элементы
- •Лабораторная работа №3
- •2.6. Задание атрибутов для элементов
- •2.7. Правила для создания атрибутов
- •2.8. Правила для корректного задания значений атрибутов
- •Тема 3. Создание валидных xml-документов
- •3.1. Основной критерий для валидного документа
- •3.2. Преимущества использования валидных xml-документов
- •3.3. Добавление dtd
- •3.4. Форма записи dtd
- •3.5. Форма записи объявления типа элемента
- •3.6. Описание содержимого элемента
- •3.7. Задание содержимого элемента
- •3.8. Задание смешанного содержимого
- •Лабораторная работа №4
- •3.8. Форма записи объявления списка атрибутов
- •3.9. Тип атрибута
- •3.10. Задание атрибута маркерного типа
- •3.11. Задание атрибута нумерованного типа
- •3.12. Объявление значения по умолчанию
- •Лабораторная работа №5
- •3.13. Использование внешних подмножеств dtd
- •3.14. Использование внешних и внутренних подмножеств dtd одновременно
- •3.15. Условия игнорирования разделов внешнего подмножества dtd
- •Лабораторная работа №6
- •3.16. Преобразование корректно сформированного документа в валидный
- •Тема 4. Определение и использование примитивов
- •4.1. Определения и классификация примитивов
- •4.2. Типы примитивов
- •4.3. Объявление общего внутреннего разбираемого примитива
- •4.4. Объявление общего внешнего разбираемого примитива
- •4.5. Объявление общего внешнего не разбираемого примитива
- •4.6. Объявление нотаций
- •Лабораторная работа №7
- •4.7. Объявление параметрического внутреннего разбираемого примитива
- •4.8. Объявление параметрического внешнего разбираемого примитива
- •4.9. Вставка ссылок на примитив
- •4.10. Ссылка на примитив. Пример 1
- •4.11. Ссылка на примитив. Пример 2
- •4.12. Вставка ссылок на символы
- •4.13. Использование предварительно определённых примитивов
- •4.14. Объявление документа автономным (standalone)
- •Лабораторная работа №8
- •Тема 5. Таблицы каскадных стилей
- •5.1. Создание файла таблицы стилей
- •5.2. Нечувствительность к регистру в css
- •5.3. Наследование установок свойств
- •5.4. Использование множественных элементов и множественных правил
- •5.5. Использование контекстуальных селекторов
- •5.6. Использование атрибута style
- •5.7. Импорт других таблиц стилей
- •5.8. Задание значений url
- •5.9. Связывание таблицы стилей с xml-документом
- •5.9. Присвоение значений в таблицах каскадных стилей
- •5.10. Установка свойства display
- •5.11. Задание ключевых слов css в качестве значений
- •5.12. Установка свойства font-family
- •5.13. Установка свойства font-size
- •Задание размера шрифта относительно размера шрифта браузера
- •5.14. Установка свойства font-style
- •Ключевые слова, используемые для свойства font-style
- •5.15. Установка свойства font-weight
- •Ключевые слова, используемые для свойства font-weight
- •5.16. Установка свойства font-variant
- •Ключевые слова, используемые для свойства font-variant
- •5.17. Установка свойства color
- •5.18. Установка свойства background-color
- •5.19. Установка свойства background-image
- •5.20. Установка свойства background-repeat
- •5.21. Установка свойства background-position
- •5.22. Установка свойства letter-spacing
- •5.23. Установка свойства vertical-align
- •Ключевые слова, используемые для свойства vertical-align
- •5.24. Установка свойства text-align
- •5.25. Установка свойства text-indent
- •5.26. Установка свойства line-height
- •5.27. Установка свойства text-transform
- •Ключевые слова, используемые для свойства text-transform
- •5.28. Установка свойства text-decoration
- •Ключевые слова, используемые для свойства text- decoration
- •5.29. Установка свойств управоения полями
- •5.30. Установка свойства border-style
- •Ключевые слова, используемые для свойства border-style
- •5.31. Установка свойства border-width
- •Ключевые слова, используемые для свойства border-width
- •5.31. Установка свойства border-color
- •5.32. Установка свойств просвета между обрамлением и текстом
- •5.33. Установка свойств размеров
- •5.34. Установка свойства позиционирования float
- •Ключевые слова, используемые для свойства float
- •5.35. Установка свойства позиционирования clear
- •Ключевые слова, используемые для свойства clear
- •5.36. Вставка элементов html в xml-документы и использование пространства имён
- •Тема 6. Связывание данных
- •6.1. Основные шаги при связывании данных
- •6.1. Шаг первый: установка связи xml-документа с html-страницей
- •6.2. Как хранятся данные xml
- •6.3. Проверка на наличие ошибок
- •6.4. Шаг второй: сцепление html-элементов с xml-элементами. Использование табличного сцепления
- •6.5. Использование одной html-таблицы для отображения простого набора записей
- •6.6. Использование постраничного отображения
- •Методы перемещения по записям таблицы
- •6.7. Использование вложенных таблиц для отображения иерархической структуры записей
- •Лабораторная работа №9
- •6.8. Использование связывания данных по одной записи
- •6.9. Перемещение между записями
- •Методы объекта recordset
- •6.10. Другие способы связывания данных
- •Сцепляемын html-элементы (за исключением элемента table)
- •6.11. Связывание с другими html-элементами
- •6.12. Передача html-разметки
- •6.13. Обновление накопленных данных
- •Методы объекта recordset
- •6.14. Использование dtd при сявзывании данных
- •6.15. Связывание html-элементов с xml-атрибутами
- •Лабораторная работа №10
- •6.16. Использование сценариев для dso
- •Тема 7. Сценарии объектной модели документа
- •7.1. Связывание xml-документа с html-страницей
- •7.2. Структура dom
- •7.3. Доступ и отображение элементов xml-документа
- •Полезные свойства и методы, предоставляемые узлами Document/
- •7.4. Использование объекта NodeList
- •7.5. Извлечение символьных данных элемента
- •7.6. Отображение переменного числа xml-элементов
- •7.7. Использование других способов доступа к элементам
- •Лабораторная работа №11
- •7.8. Доступ и отображение значений атрибутов в xml-документе
- •7.9. Доступ к примитивам и нотациям xml
- •Лабораторная работа №12
- •7.10. Перемещение внутри xml-документа
- •7.11. Проверка валидности xml-документа
- •Тема 8. Xsl-таблицы стилей
- •8.1. Основы использования xsl-таблиц стилей
- •8.2. Использовании одного шаблона xsl
- •8.3. Отображение переменного числа элементов
- •8.4. Использование нескольких шаблонов
- •Лабораторная работа №13
- •8.5. Фильтрация и сортировка данных xml
- •8.6. Доступ к атрибутам xml
- •Лабораторная работа №14
- •Тема 9. Описание схемы документа на языке xsd
- •9.1. Встроенные простые типы xsd
- •9.1.1. Вещественные числа
- •9.1.2. Целые числа
- •9.1.3. Строки символов
- •9.1.4. Дата и время
- •9.1.5. Двоичные типы
- •9.1.6. Прочие встроенные простые типы
- •9.2. Определение простых типов
- •9.2.1. Сужение
- •9.2.2. Список
- •9.2.3. Объединение
- •9.3. Обявление элементов и их атрибутов
- •9.4. Определение сложных типов
- •9.4.1. Определение типа пустого элемента
- •Лабораторная работа №15
- •9.4.2. Определение типа элемента с простым телом
- •9.4.3. Определение типа вложенных элементов
- •9.5. Определение типа со сложным телом
- •9.6. Безымянные типы
- •9.7. Пространства имён языка xsd
- •9.8. Включение файлов схемы в другую схему
- •9.9. Связь документа xml со своей схемой
- •Лабораторная работа №16
- •Вопросы для тестирования
- •Список литературы
2.7. Правила для создания атрибутов
Описание атрибута состоит из имени атрибута, вслед за которым идет знак равенства и значение атрибута. Вы можете выбрать любое имя атрибута, придерживаясь при этом следующих правил:
имя должно начинаться с буквы или символа подчеркивания (_), после чего могут следовать другие буквы, цифры, символы точки (.), тире (-) или подчеркивания;
спецификация XML оговаривает, что имена атрибутов, начинающиеся с префикса “xml” (в любом сочетании строчных или прописных букв), «зарезервированы для стандартного использования». Хотя для Internet Explorer это ограничение значения не имеет, во избежание проблем в будущем лучше не использовать этот префикс;
каждое имя атрибута может только один раз присутствовать в одном и том же начальном теге или в теге пустого элемента.
Например, следующие описания имен в стартовых тегах являются допустимыми:
<ANIMATION FileName=Waldo.ani”>
<LIST _1stPlace=”Sam”>
<ENTRY Zip.Code=”94941”>
Приведенные ниже имена атрибутов недопустимы:
<!-- Дублирование имени атрибута внутри одного тега: -->
<ANIMATION FileName="Waldo1.ani" FileName="Waldo2.ani">
<LIST 1stPlace=""Sam"> <!- Первый символ не может быть цифрой -->
<ITEM A:Category="cookware"> <!—В IE допускается, только
если вы объявили А как пространство имен -->
В соответствии с XML-спецификацией двоеточие (:) в имени элемента зарезервировано для задания пространства имен. Пространства имен дают возможность дифференцировать элементы с одними и теми же именами; этот вопрос будет обсуждаться позже. Internet Explorer 5 разрешает вам использовать двоеточие в имени элемента только в том случае, если оно следует за пространством имен, объявленным в документе. Например, запись A:Category будет корректной, только если А объявлено как пространство имен.
2.8. Правила для корректного задания значений атрибутов
Значение, которое присваивается атрибуту, представляет собой группу символов, ограниченных кавычками, называемую также литералом. Можно присвоить атрибуту в качестве значения любой литерал, придерживаясь при этом следующих правил:
строка может быть заключена как в одинарные ('), так и в двойные кавычки (");
строка не может содержать внутри себя тот же символ кавычек, которыми она ограничена;
строка может содержать ссылку на символ или ссылку на внутренние примитивы общего назначения (об этом будет рассказано позже);
строка не может содержать символ < (синтаксический анализатор может воспринять этот символ как начало описания XML-разметки.);
строка не может содержать символ &, если это не ссылка на символ или примитив.
Ниже приведены неправильные описания:
<EMPLOYEE Status=""downsized""> <!-- Нельзя использовать символы ограничители внутри строки. -->
<ALBUM Type="<CD>"> <!-- Нельзя использовать символ < внутри строки -->
<WEATHER Forecast="Cold &Windy"> <!-- Нельзя использовать символ &,
если это не ссылка -->
Если необходимо использовать двойные кавычки (") внутри значения атрибута, то следует применить в качестве ограничителей одинарные кавычки ('), как показано в примере:
<EMPLOYEE Status='"downsized"'> <!-- Правильное значение атрибута. -->
Аналогично, чтобы включить одинарные кавычки в значение атрибута, следует использовать в качестве ограничителей двойные кавычки:
<CANDIDATE name="W.T, 'Bill' Bagley"> <!-- Правильное значение атрибута. -->
Можно избавиться от всех ограничений и вводить в имя атрибута любой символ, если воспользуетесь ссылкой на символ или ранее определенной ссылкой на примитив общего назначения, о которых будет рассказано далее.
При создании корректно сформированного документа, в котором не объявлен тип документа (как это мы делали в предыдущих примерах), атрибуту можно присвоить любое значение, соответствующее приведенным выше правилам. Однако, если создаётся описание типа документа и внутри него определяются атрибуты, то можно ограничить типы значений, которые могут быть присвоены конкретному атрибуту. Например, можно определить атрибут, которому могут быть присвоены только значения “yes” или “nо”. Таким образом, одно из преимуществ задания определенного типа информации через атрибуты элементов в отличие от задания через содержимое элемента заключается в том, что при этом можно контролировать все типы данных, которые могут быть присвоены атрибуту, и синтаксический анализатор учитывает эти ограничения типов.