
- •Язык xml - практическое введение
- •Язык xml - практическое введение
- •Для чего нужен новый язык разметки?
- •Как выглядит xml-документ?
- •Правила создания xml- документа
- •Конструкции языка
- •Элементы данных
- •Комментарии
- •Атрибуты
- •Cпециальные символы
- •Директивы анализатора
- •Что дальше
- •2. Просмотр xml - документов
- •Использование msxml в ie 4
- •Объектная модель xml в Internet Explorer 4.0
- •Свойства и методы документа(объект xml Document)
- •Свойства и методы элементов документа
- •Пример использования
- •Использование asp
- •3. Стилевые таблицы xsl
- •С чего начать
- •Структура xsl- таблиц
- •Правила xsl
- •Корневое правило
- •Отношения между элементами
- •Приоритеты правил
- •Использование атрибутов элементов
- •Фильтрация элементов
- •Правила стилей
- •Сценарии
- •Вычисление выражений
- •Выполнение инструкций
- •Определение функций и глобальных переменных
- •Использование Java Script для html
- •Встроенные функции xsl
- •Определение элемента
- •Определение атрибутов
- •Определение компонентов(макроопределений)
- •Типизация данных
- •5. Схемы данных
- •Как это выглядит
- •Область схемы данных
- •Описание элементов
- •Атрибуты элемента
- •Модель содержимого элемента
- •Группировка элементов
- •Закрытая и открытая модели описания содержимого элемента
- •Иерархия классов
- •Ограничения на значения
- •Использование правил из внешних схем
- •Компоненты схем
- •Типы данных
- •Приложение 1 Пример xml-документа
- •Приложение 2 JavaScript сценарий, обрабатывающий xml-документ, приведенный в приложении 1
- •Приложение 3 Пример xsl-документа
- •Приложение 4
Приложение 1 Пример xml-документа
<?xml version="1.0"?>
<journal>
<title>Very Useful Journal</title>
<contacts>
<address>sdsds</address>
<tel>8-3232-121212</tel>
<tel>8-3232-121212</tel>
<email>j@j.ru</email>
<url>www.j.ru</url>
</contacts>
<issues-list>
<issue index="2">
<title>XML today</title>
<date>12.09.98</date>
<about>XML</about>
<home-url>www.j.ru/issues/</home-url>
<articles>
<article ID="3">
<title>Issue overview</title>
<url>/article1</url>
<hotkeys>
<hotkey>language</hotkey>
<hotkey>marckup</hotkey>
<hotkey>hypertext</hotkey>
</hotkeys>
<article-finished/>
</article>
<article>
<title>Latest reviews</title>
<url>/article2</url>
<author ID="3"/>
<hotkeys>
<hotkey/>
</hotkeys>
</article>
<article ID="4">
<title/>
<url/>
<hotkeys/>
</article>
</articles>
</issue>
</issues-list>
<authors-list>
<author ID="1">
<firstname>Ivan</firstname>
<lastname>Petrov</lastname>
<email>vanya@r.ru</email>
</author>
<author ID="3">
<firstname>Petr</firstname>
<lastname>Ivanov</lastname>
<email>petr@r.ru</email>
</author>
<author ID="4">
<firstname>Sidor</firstname>
<lastname>Sidorov</lastname>
<email>sidor@r.ru</email>
</author>
</authors-list>
</journal>
Приложение 2 JavaScript сценарий, обрабатывающий xml-документ, приведенный в приложении 1
<HTML>
<head>
<title></title>
<script language="javascript">
<!--
var xmldoc = new ActiveXObject("msxml");
var xmlsrc = "http://localhost/xml/journal.xml";
function viewTitle(elem){ // Отображение заголовка документа, определяемого элементом <title>
this.document.writeln('<center><table width="100%" border=0><tr><td width="100%" align="center" bgcolor="silver"><b><font color="black">'+elem.text+'</font></b></td></tr></table></center><br>');
}
function viewContactsList(elem){ // Отображение содержимого дочерних элементов <author-list>
this.document.writeln('<tr><td align="right" colspan="2" bgcolor="gray"><b><font color="white">Наши реквизиты</font></b></td></tr>');
this.document.writeln('<tr><td bgcolor="silver" colspan="2"><center><table width="80%" border=0>');
if(elem.type==0){
if(elem.children!=null){
this.document.writeln('<tr><td colspan=2 width="100%"> </td></tr>');
var cur_item=elem.children.item("address");
if(cur_item!=null){
this.document.writeln('<tr><td><font color="blue">Адрес</font></td><td align="right" ><b><font color="red">'+cur_item.text+'</font></b></td></tr>');
}
var cur_item=elem.children.item("tel",0);
if(cur_item!=null){
this.document.writeln('<tr><td><font color="blue">Телефон</font></td><td align="right" ><b><font color="red">'+cur_item.text+'</font></b></td></tr>');
}
var cur_item=elem.children.item("email");
if(cur_item!=null){
this.document.writeln('<tr><td><font color="blue">E-Mail</font></td><td align="right"><b><font color="red">'+cur_item.text+'</font></b></td></tr>');
}
var cur_item=elem.children.item("url");
if(cur_item!=null){
this.document.writeln('<tr><td><font color="blue">URL</font></td><td align="right"><b><font color="red">'+cur_item.text+'</font></b></td></tr>');
}
}
}
this.document.writeln('<tr><td colspan=2 width="100%"> </td></tr>');
this.document.writeln('</table></center></td></tr>');
}
function viewAuthorsList(elem){ // Отображение содержимого дочерних элементов <author-list>
this.document.writeln('<tr><td align="right" colspan="2" bgcolor="gray"><b><font color="white">Наши авторы</font></b></td></tr>');
this.document.writeln('<tr><td bgcolor="silver" colspan="2"><center><table width="80%" border=0>');
if(elem.type==0){
if(elem.children!=null){
for(i=0;i<elem.children.length;i++){
var cur_author = elem.children.item("author",i);
this.document.writeln('<tr><td colspan=2 width="100%"> </td></tr>');
if(cur_author.children!=null){
var cur_item=cur_author.children.item("firstname");
if(cur_item!=null){
this.document.writeln('<tr><td><font color="blue">Имя</font></td><td align="right" ><b><font color="red">'+cur_item.text+'</font></b></td></tr>');
}
var cur_item=cur_author.children.item("lastname");
if(cur_item!=null){
this.document.writeln('<tr><td><font color="blue">Фамилия</font></td><td align="right" ><b><font color="red">'+cur_item.text+'</font></b></td></tr>');
}
var cur_item=cur_author.children.item("email");
if(cur_item!=null){
this.document.writeln('<tr><td><font color="blue">E-Mail</font></td><td align="right"><b><font color="red">'+cur_item.text+'</font></b></td></tr>');
}
}
}
}
}
this.document.writeln('</table></center></td></tr>');
}
function viewError(){
this.document.writeln('<center><hr>Error was detected');
}
function parse(root){
if(root==null) return;
var i=0;
var elem;
if(root.children!=null){ // Если вложенные элементы не были определены, то свойство children будет установленно в null
this.document.writeln('<center><table width="80%" border=0><tr><td>');
// Перебор дочерних элементов
for(i=0;i<root.children.length;i++){
elem=root.children.item(i);
if(root.children.item(i).tagName=="TITLE"){
viewTitle(elem); // Разбор подэлементов <title>
}
if(elem.tagName=="CONTACTS"){
viewContactsList(elem); // Разбор подэлементов <contacts>
}
if(elem.tagName=="AUTHORS-LIST"){
viewAuthorsList(elem); // Разбор подэлементов <authors-list>
}
}
this.document.writeln('</td></tr></table>');
}
}
function viewDocument(){
xmldoc.URL = xmlsrc; // Загрузка XML документа
this.document.writeln('<body bgcolor="white">');
parse(xmldoc.root); // Начало разбора документа
this.document.writeln('</body>');
}
// Генерирование страницы
viewDocument();
//-->
</script>
</head>