- •Распределенные информационные системы и базы данных Введение
- •1. Распределенные базы данных
- •1.1. Определение Дэйта.
- •1.2. Целостность данных
- •1.3. Прозрачность расположения
- •1.4. Обработка распределенных запросов
- •1.5. Межоперабельность
- •1.6. Технология тиражирования данных
- •2. Архитектура "клиент-сервер"
- •Лекция на тему "Что такое база данных. Реляционная база данных ms Access"
- •Реляционные базы данных
- •Язык гипертекстовой разметки xml
- •Введение
- •Для чего нужен новый язык разметки?
- •Как выглядит xml-документ?
- •Правила создания xml- документа
- •Конструкции языка
- •Элементы данных
- •Комментарии
- •Атрибуты
- •Cпециальные символы
- •Директивы анализатора
- •Что дальше
- •Просмотр xml-документов
- •Использование msxml в ie 4
- •Объектная модель xml в Internet Explorer 4.0
- •Свойства и методы документа(объект xml Document)
- •Свойства и методы элементов документа
- •Пример использования
- •Использование asp
- •Стилевые таблицы xsl
- •С чего начать
- •Структура xsl- таблиц
- •Правила xsl
- •Корневое правило
- •Отношения между элементами
- •Приоритеты правил
- •Использование атрибутов элементов
- •Фильтрация элементов
- •Правила стилей
- •Сценарии
- •Вычисление выражений
- •Выполнение инструкций
- •Определение функций и глобальных переменных
- •Использование Java Script для html
- •Встроенные функции xsl
- •Определение элемента
- •Определение атрибутов
- •Определение компонентов(макроопределений)
- •Типизация данных
- •Общая структура документа
- •Управление отображением
- •Встроенная графика
- •Гипертекстовые ссылки
- •Каждая иконка связана с разделом данной страницы гипертекстовой ссылкой:
- •6.1. Средства разработки клиентских приложений
- •Разработка программ
- •Разработка клиентских программ
- •Разработка серверных программ, сервисов
- •2. Трехуровневая архитектура “клиент-сервер”
- •11.2. Проблемы создания и ведения реляционных баз данных
- •11.3. Понятие языка sql и его основные части
- •11.3.1. История возникновения и стандарты языка sql
- •11.3.2. Достоинства языка sql
- •11.3.2. Общая характеристика sql
- •Терминология
- •Разновидности sql
Свойства и методы элементов документа
type |
Возвращает тип элемента. Это свойство может быть использовано для того, чтобы разделить имена тэгов и данные, содержащиеся внутри них. В данной версии анализатора определены следующие типы элементов: 0 - элемент 1 - текст 2 - комментарий 3 - Document 4 - DTD |
tagName |
Возвращает или устанавливает название тэга(в виде строки с символами, приведенными к верхнему регистру). Названия метатэгов(например, <?xml?>) начинаются с символа ?. Названия тэгов комментариев начинаются с символа !. |
text |
Возвращает текстовое содержимое элементов и комментариев. |
AddChild() |
Добавление нового дочернего элемента и всех его потомков в текущую ветвь дерева. В качестве первого параметра этой функции необходимо передать объект типа Element, который затем будет помещен в список дочерних элементов. Также необходимо задать индекс нового элемента в списке и в качестве последнего параметра обязательно передать значение -1. Т.к. в данной модели любой элемент в документе может иметь ссылку только на один родительский элемент, при выполнении данной процедуры у добавляемого объекта старая ссылка на родительский элемент теряется. Используя это свойство, можно перемещать элементы из одного XML- документа в другое, но том случае, если у дочерних ссылок перемещаемого элемента существуют внешние ссылки или сами дочерние элементы ссылаются на внешние возможно возникновение ошибки elem.addChild(elem.children.item().children.item(0),0,-1) |
removeChild() |
Удаляет дочерний элемент и всех его потомков. Элементы остаются в памяти и могут быть вновь добавлены к дереву при помощи метода addChild(). elem.removeChild(elem.children.item(1)) |
parent |
Возвращает указатель на текущий родительский элемент. Ссылки на родительский элемент имеют все элементы, за исключением корневого. |
GetAttribute() |
Возвращает значение указанного атрибута в виде текстовой строки. elem.getAttribute("color") |
SetAttribute() |
Устанавливает указанный атрибут и его значение. Прежнее значение атрибута теряется elem.setAttribute("color","red") |
removeAttribute() |
Уничтожает указанный атрибут elem.removeAttribute("color") |
children |
Возвращает ассоциированный список дочерних элементов(коллекцию). Такой список позволяет приложению получать нужные элементы как по названию, так и по порядковому номеру при помощи метода item(). В том случае, если потомков у текущего элемента нет, функция возвратит null |
Пример использования
Вот пример использования описанных функций:
<script language="javascript">
<!--
var xmldoc = new ActiveXObject("msxml");
var xmlsrc = "http://localhost/xml/sample.xml";
function parse(root){
var i=0;
if(root.type==0){
this.document.writeln('<UL>Current tag is '+root.tagName+'
(parent is '+root.parent+'). ');
}else if(root.type==1){
this.document.writeln('<LI>It is a text of '+root.parent.tagName+'
element: <i>'+root.text+'</i></LI>');
}else{
this.document.writeln('<br><br>Error');
}
if(root.children!=null){
this.document.writeln('It consist of '+root.children.length+' elements:');
for(i=0;i<root.children.length;i++){
parse(root.children.item(i));
}
}
else{
this.document.writeln('</UL>');
}
}
function viewDocument(){
xmldoc.URL = xmlsrc;
this.document.writeln('<body bgcolor="white">');
this.document.writeln('<p><center><hr width=80%>XML sample page
<hr width=80%></center><p>');
parse(xmldoc.root);
this.document.writeln('</body>');
}
viewDocument();
//-->
</script>
Как видно из примера, в процессе обработки XML- документа необходимо рекурсивно обходить все ветви создаваемого анализатором дерева, причем, на каждом шаге возможны следующие ситуации:
Встретился новый элемент. В этом случае его название(задаваемое тэгом) доступно при помощи свойства tagName, а содержимое - свойством text. У любого непустого элемента существует хотя бы один потомок, представляющий собой содержимое этого элемента(в этом отличие представленной объектной модели msxml от реальной структуры документа - в XML под элементом понимается как название тэга, так и текстовое содержимое его)
Встретилось текстовое поле. Это поле может быть либо комментарием, либо просто текстом, содержащемся в текущем элементе
Для обработки потомков текущего элемента используется метод item(), который вызывается в цикле столько раз, сколько потомков у текущего элемента. Обработка каждого дочернего элемента осуществляется вызовом этой же функции, в чем и заключается рекурсия.