- •Содержание
- •Глава 1. Хранение в данных в формате xml
- •§ 1.1. Назначение xml
- •§ 1.2. Достоинства xml
- •§ 1.3. Заменит ли xml html?
- •§ 1.4. Структура xml
- •1.4.1. Объявление xml
- •1.4.2. Корневой элемент
- •1.4.3. Комментарий
- •Глава 2. Отображение и хранение экономических xml-документов с использованием связывания данных
- •Основные шаги
- •§ 2.1. Использование связывания данных по одной записи
- •Перемещение между записями
- •§ 2.2. Отображение и хранение экономического xml документа по отдельным записям
- •Как хранятся данные xml
- •Проверка на наличие ошибок xml
- •Cцепление html-элементов с xml-элементами
- •§ 2.3. Использование табличного сцепления данных
- •Использование одной html-таблицы для отображения простого набора записей
- •§ 2.4. Использование постраничного отображения экономического xml документа
- •Другие способы связывания данных
- •§ 2.5. Связывание с другими html-элементами
- •§ 2.6. Использование сценариев dso для отображения экономического xml документа
- •Заключение
- •Список использованной литературы
- •Приложения
Заключение
Поскольку в XML нет типовых элементов, может показаться, что в нем вообще отсутствуют какие-либо стандарты. Тем не менее, язык XML имеет строго определенный синтаксис. Например, в отличие от HTML, каждый элемент XML должен содержать начальный и конечный тег. Любой вложенный элемент должен быть полностью определен внутри элемента, в состав которого он входит.
На деле гибкость в создании собственных элементов требует строгого соблюдения синтаксиса. Это обусловлено тем, что структура XML-документов должна быть понятной для программы, которая обрабатывает и отображает информацию, содержащуюся в этих документах. Строгий синтаксис придает XML-документу предсказуемую форму и облегчает написание программы обработки. Основное назначение языка XML – облегчить работу с документами в Web.
Можно использовать XML не только для описания отдельного документа, и хранение данных. Индивидуальный пользователь, компания или комитет по стандартам может определить необходимый набор элементов XML и структуру документа, которые будут применяться для особого класса документов. Подобный набор элементов и описание структуры документа называют XML-приложением или XML-словарем.
Например, организация может определить XML-приложение для создания документов, описывающих молекулярные структуры, людские ресурсы, мультимедиа презентации или содержащих векторную графику и т. д.
Список использованной литературы
1. Самоучитель по XML. Автор: Хибибулин И. Ш. Год издание: 2003
2. XML. Разработка WEB приложений.Автор: Старыгин А. Год издание:2003
3. XML. Проектирование и реализация. Программирование с помощью XML, и IE5. Автор: Спенсер П.. Год издания: 2001
4. Проектирование интерактивных Web-приложений: Учебное пособие — М.: Горячая линия,2001.—272 с.: ил.
5. Изучаем XML. Э. Рей – Спб: Символ-Плюс, 2001.
6. Мифы и реальности XML. Сергей Кузнецов - ИСП РАН, Центр информационных технологий.
7. XML и IE5. Справочник программиста. Алекс Гомер. 2001
8. Многозначные СУБД и XML базы данных. В. А. Филиппов. 2008
9. XML и JDBC. Практическое введение. С. Н. Смирнов. 2010
10. http://www.xmlportal.ru - Информационный сервер по языку XML
11. HTML и XML. Быстро и эффективно. Моррисон М. 2005
12. Как програмировать на XML. Дейтел Харви, Дейтел Пол Дж., Нието Тем. 2008
Приложения
К главе 2.1:
<?xml version="1.0"?>
<GAME>
<NAME>Assanin's Creed</NAME>
<AUTHOR>Ubisoft</AUTHOR>
<GENRE>Action</GENRE>
<YEAR>2008</YEAR>
<PLATFORM>PC, Xbox 360, PS3</PLATFORM>
</GAME>
Game.xml
<HTML>
<HEAD>
<TITLE>Игры</TITLE>
</HEAD>
<BODY>
<XML ID="dsogame" SRC="game.xml"></XML>
<H2>Игры</H2>
<SPAN STYLE="font-style:italic">Игра: </SPAN>
<SPAN STYLE="font-weight:bold" DATASRC="#dsogame"
DATAFLD="NAME"></SPAN>
<BR>
<SPAN STYLE="font-style:italic">Разработчик: </SPAN>
<SPAN DATASRC="#dsogame" DATAFLD="AUTHOR"></SPAN>
<BR>
<SPAN STYLE="font-style:italic">Жанр: </SPAN>
<SPAN DATASRC="#dsogame" DATAFLD="GENRE"></SPAN>
<BR>
<SPAN STYLE="font-style:italic">Год: </SPAN>
<SPAN DATASRC="#dsogame" DATAFLD="YEAR"></SPAN>
<BR>
<SPAN STYLE="font-style:italic">Платформа: </SPAN>
<SPAN DATASRC="#dsogame" DATAFLD="Platform"></SPAN>
</BODY>
</HTML>
Game.html
К главе 2.2:
<?xml version="1.0"?>
<GAMES>
<GAME>
<NAME>Max Payne</NAME>
<AUTHOR>Remedy</AUTHOR>
<GENRE>TPS</GENRE>
<YEAR>2001</YEAR>
<PLATFORM>PC, PS2, XBox</PLATFORM>
</GAME>
<GAME>
<NAME>GTA Vice City</NAME>
<AUTHOR>Rockstar</AUTHOR>
<GENRE>TPS</GENRE>
<YEAR>2003</YEAR>
<PLATFORM>PC, PS2</PLATFORM>
</GAME>
<GAME>
<NAME>Splinter Cell</NAME>
<AUTHOR>Ubisoft</AUTHOR>
<GENRE>Stealth</GENRE>
<YEAR>2003</YEAR>
<PLATFORM>PC, XBox</PLATFORM>
</GAME>
<GAME>
<NAME>Far Cry</NAME>
<AUTHOR>Crytek</AUTHOR>
<GENRE>FPS</GENRE>
<YEAR>2004</YEAR>
<PLATFORM>PC</PLATFORM>
</GAME>
<GAME>
<NAME>Half-Life 2</NAME>
<AUTHOR>Valve</AUTHOR>
<GENRE>FPS</GENRE>
<YEAR>2004</YEAR>
<PLATFORM>PC</PLATFORM>
</GAME>
<GAME>
<NAME>World of Warcraft</NAME>
<AUTHOR>Blizzard</AUTHOR>
<GENRE>MMORPG</GENRE>
<YEAR>2004</YEAR>
<PLATFORM>PC</PLATFORM>
</GAME>
<GAME>
<NAME>Gears of War</NAME>
<AUTHOR>Epic Games</AUTHOR>
<GENRE>TPS</GENRE>
<YEAR>2007</YEAR>
<PLATFORM>PC, XBox 360</PLATFORM>
</GAME>
<GAME>
<NAME>Assassin's creed</NAME>
<AUTHOR>Ubisoft</AUTHOR>
<GENRE>Action</GENRE>
<YEAR>2008</YEAR>
<PLATFORM>PC, XBox 360, PS3</PLATFORM>
</GAME>
<GAME>
<NAME>DEVIL MAY CRY 4</NAME>
<AUTHOR>Capcom</AUTHOR>
<GENRE>Action</GENRE>
<YEAR>2008</YEAR>
<PLATFORM>PC, PS3, XBox 360</PLATFORM>
</GAME>
<GAME>
<NAME>Spore</NAME>
<AUTHOR>Maxis</AUTHOR>
<GENRE>Strategy</GENRE>
<YEAR>2008</YEAR>
<PLATFORM>PC</PLATFORM>
</GAME>
<GAME>
<NAME>Fallout 3</NAME>
<AUTHOR>Bethesda</AUTHOR>
<GENRE>RPG</GENRE>
<YEAR>2008</YEAR>
<PLATFORM>PC, XBox 360</PLATFORM>
</GAME>
<GAME>
<NAME>Mirror's Edge</NAME>
<AUTHOR>EA Dice</AUTHOR>
<GENRE>FPS</GENRE>
<YEAR>2009</YEAR>
<PLATFORM>PC, XBox 360, PS3</PLATFORM>
</GAME>
<GAME>
<NAME>Empire: Total War</NAME>
<AUTHOR>The Creative Assembly</AUTHOR>
<GENRE>Strategy</GENRE>
<YEAR>2009</YEAR>
<PLATFORM>PC</PLATFORM>
</GAME>
<GAME>
<NAME>Need For Speed: Shift</NAME>
<AUTHOR>Slightly Mad Studios</AUTHOR>
<GENRE>Raicing</GENRE>
<YEAR>2009</YEAR>
<PLATFORM>PC, XBox 360, PS3</PLATFORM>
</GAME>
<GAME>
<NAME>Dragon Age: Origins</NAME>
<AUTHOR>Bioware</AUTHOR>
<GENRE>RPG</GENRE>
<YEAR>2009</YEAR>
<PLATFORM>PC, XBox 360, PS3</PLATFORM>
</GAME>
<GAME>
<NAME>Mass Effect 2</NAME>
<AUTHOR>Bioware</AUTHOR>
<GENRE>Action/RPG</GENRE>
<YEAR>2010</YEAR>
<PLATFORM>PC, XBox 360</PLATFORM>
</GAME>
</GAMES>
Games.xml
<HTML>
<HEAD>
<TITLE>Игры</TITLE>
</HEAD>
<BODY>
<XML ID="dsogames" SRC="games big.xml"></XML>
<H2>Игры</H2>
<SPAN STYLE="font-style:italic">Игра: </SPAN>
<SPAN DATASRC="#dsogames" DATAFLD="NAME"
STYLE="font-weight:bold"></SPAN>
<BR>
<SPAN STYLE="font-style:italic">Разработчик: </SPAN>
<SPAN DATASRC="#dsogames" DATAFLD="AUTHOR"></SPAN>
<BR>
<SPAN STYLE="font-style:italic">Жанр: </SPAN>
<SPAN DATASRC="#dsogames" DATAFLD="GENRE"></SPAN>
<BR>
<SPAN STYLE="font-style:italic">Год: </SPAN>
<SPAN DATASRC="#dsogames" DATAFLD="YEAR"></SPAN>
<BR>
<SPAN STYLE="font-style:italic">Платформа: </SPAN>
<SPAN DATASRC="#dsogames" DATAFLD="PLATFORM"></SPAN>
<HR>
<BUTTON ONCLICK="dsogames.recordset.moveFirst()">
|< Начало
</BUTTON>
<BUTTON ONCLICK="dsogames.recordset.movePrevious();
if (dsogames.recordset.BOF)
dsogames.recordset.moveNext()">
< Назад
</BUTTON>
<BUTTON ONCLICK="dsogames.recordset.moveNext();
if (dsogames.recordset.EOF)
dsogames.recordset.movePrevious()">
Далее >
</BUTTON>
<BUTTON ONCLICK="dsogames.recordset.moveLast()">
Конец >|
</BUTTON>
</BODY>
</HTML>
Games.html
К главе 2.3:
<?xml version="1.0"?>
<GAMES>
<GAME>
<NAME>Max Payne</NAME>
<AUTHOR>Remedy</AUTHOR>
<GENRE>TPS</GENRE>
<YEAR>2001</YEAR>
<PLATFORM>PC, PS2, XBox</PLATFORM>
</GAME>
<GAME>
<NAME>GTA Vice City</NAME>
<AUTHOR>Rockstar</AUTHOR>
<GENRE>TPS</GENRE>
<YEAR>2003</YEAR>
<PLATFORM>PC, PS2</PLATFORM>
</GAME>
<GAME>
<NAME>Splinter Cell</NAME>
<AUTHOR>Ubisoft</AUTHOR>
<GENRE>Stealth</GENRE>
<YEAR>2003</YEAR>
<PLATFORM>PC, XBox</PLATFORM>
</GAME>
<GAME>
<NAME>Far Cry</NAME>
<AUTHOR>Crytek</AUTHOR>
<GENRE>FPS</GENRE>
<YEAR>2004</YEAR>
<PLATFORM>PC</PLATFORM>
</GAME>
<GAME>
<NAME>Half-Life 2</NAME>
<AUTHOR>Valve</AUTHOR>
<GENRE>FPS</GENRE>
<YEAR>2004</YEAR>
<PLATFORM>PC</PLATFORM>
</GAME>
<GAME>
<NAME>World of Warcraft</NAME>
<AUTHOR>Blizzard</AUTHOR>
<GENRE>MMORPG</GENRE>
<YEAR>2004</YEAR>
<PLATFORM>PC</PLATFORM>
</GAME>
<GAME>
<NAME>Gears of War</NAME>
<AUTHOR>Epic Games</AUTHOR>
<GENRE>TPS</GENRE>
<YEAR>2007</YEAR>
<PLATFORM>PC, XBox 360</PLATFORM>
</GAME>
<GAME>
<NAME>Assassin's creed</NAME>
<AUTHOR>Ubisoft</AUTHOR>
<GENRE>Action</GENRE>
<YEAR>2008</YEAR>
<PLATFORM>PC, XBox 360, PS3</PLATFORM>
</GAME>
</GAMES>
Games table.xml
<HTML>
<HEAD>
<TITLE>Сортировка игр</TITLE>
</HEAD>
<BODY>
<XML ID="dsogames" SRC="games.xml"></XML>
<H2>Игры</H2>
<TABLE ID="gamestable" DATASRC="#dsogames" BORDER="1" CELLPADDING="5">
<THEAD>
<TH>Игра</TH>
<TH>Разработчик</TH>
<TH>Жанр</TH>
<TH>Год</TH>
<TH>Платформа</TH>
</THEAD>
<TR ALIGN="center">
<TD><SPAN DATAFLD="NAME"
STYLE="font-style:italic"></SPAN></TD>
<TD><SPAN DATAFLD="AUTHOR"></SPAN></TD>
<TD><SPAN DATAFLD="GENRE"></SPAN></TD>
<TD><SPAN DATAFLD="YEAR"></SPAN></TD>
<TD><SPAN DATAFLD="PLATFORM"></SPAN></TD>
</TR>
</TABLE>
</BODY>
</HTML>
Games table.html
К главе 2.4:
<?xml version="1.0"?>
<GAMES>
<GAME>
<NAME>Max Payne</NAME>
<AUTHOR>Remedy</AUTHOR>
<GENRE>TPS</GENRE>
<YEAR>2001</YEAR>
<PLATFORM>PC, PS2, XBox</PLATFORM>
</GAME>
<GAME>
<NAME>GTA Vice City</NAME>
<AUTHOR>Rockstar</AUTHOR>
<GENRE>TPS</GENRE>
<YEAR>2003</YEAR>
<PLATFORM>PC, PS2</PLATFORM>
</GAME>
<GAME>
<NAME>Splinter Cell</NAME>
<AUTHOR>Ubisoft</AUTHOR>
<GENRE>Stealth</GENRE>
<YEAR>2003</YEAR>
<PLATFORM>PC, XBox</PLATFORM>
</GAME>
<GAME>
<NAME>Far Cry</NAME>
<AUTHOR>Crytek</AUTHOR>
<GENRE>FPS</GENRE>
<YEAR>2004</YEAR>
<PLATFORM>PC</PLATFORM>
</GAME>
<GAME>
<NAME>Half-Life 2</NAME>
<AUTHOR>Valve</AUTHOR>
<GENRE>FPS</GENRE>
<YEAR>2004</YEAR>
<PLATFORM>PC</PLATFORM>
</GAME>
<GAME>
<NAME>World of Warcraft</NAME>
<AUTHOR>Blizzard</AUTHOR>
<GENRE>MMORPG</GENRE>
<YEAR>2004</YEAR>
<PLATFORM>PC</PLATFORM>
</GAME>
<GAME>
<NAME>Gears of War</NAME>
<AUTHOR>Epic Games</AUTHOR>
<GENRE>TPS</GENRE>
<YEAR>2007</YEAR>
<PLATFORM>PC, XBox 360</PLATFORM>
</GAME>
<GAME>
<NAME>Assassin's creed</NAME>
<AUTHOR>Ubisoft</AUTHOR>
<GENRE>Action</GENRE>
<YEAR>2008</YEAR>
<PLATFORM>PC, XBox 360, PS3</PLATFORM>
</GAME>
<GAME>
<NAME>DEVIL MAY CRY 4</NAME>
<AUTHOR>Capcom</AUTHOR>
<GENRE>Action</GENRE>
<YEAR>2008</YEAR>
<PLATFORM>PC, PS3, XBox 360</PLATFORM>
</GAME>
<GAME>
<NAME>Spore</NAME>
<AUTHOR>Maxis</AUTHOR>
<GENRE>Strategy</GENRE>
<YEAR>2008</YEAR>
<PLATFORM>PC</PLATFORM>
</GAME>
<GAME>
<NAME>Fallout 3</NAME>
<AUTHOR>Bethesda</AUTHOR>
<GENRE>RPG</GENRE>
<YEAR>2008</YEAR>
<PLATFORM>PC, XBox 360</PLATFORM>
</GAME>
<GAME>
<NAME>Mirror's Edge</NAME>
<AUTHOR>EA Dice</AUTHOR>
<GENRE>FPS</GENRE>
<YEAR>2009</YEAR>
<PLATFORM>PC, XBox 360, PS3</PLATFORM>
</GAME>
<GAME>
<NAME>Empire: Total War</NAME>
<AUTHOR>The Creative Assembly</AUTHOR>
<GENRE>Strategy</GENRE>
<YEAR>2009</YEAR>
<PLATFORM>PC</PLATFORM>
</GAME>
<GAME>
<NAME>Need For Speed: Shift</NAME>
<AUTHOR>Slightly Mad Studios</AUTHOR>
<GENRE>Raicing</GENRE>
<YEAR>2009</YEAR>
<PLATFORM>PC, XBox 360, PS3</PLATFORM>
</GAME>
<GAME>
<NAME>Dragon Age: Origins</NAME>
<AUTHOR>Bioware</AUTHOR>
<GENRE>RPG</GENRE>
<YEAR>2009</YEAR>
<PLATFORM>PC, XBox 360, PS3</PLATFORM>
</GAME>
<GAME>
<NAME>Mass Effect 2</NAME>
<AUTHOR>Bioware</AUTHOR>
<GENRE>Action/RPG</GENRE>
<YEAR>2010</YEAR>
<PLATFORM>PC, XBox 360</PLATFORM>
</GAME>
</GAMES>
Games big.xml
<HTML>
<HEAD>
<TITLE>Сортировка игр</TITLE>
</HEAD>
<BODY>
<XML ID="dsogames" SRC="games big.xml"></XML>
<H2>Игры</H2>
<BUTTON ONCLICK="gameTable.firstPage()">
|< Начало
</BUTTON>
<BUTTON ONCLICK="gameTable.previousPage()">
< Предыдущая
</BUTTON>
<BUTTON ONCLICK="gameTable.nextPage()">
Следующая >
</BUTTON>
<BUTTON ONCLICK="gameTable.lastPage()">
Конец >|
</BUTTON>
<p>
<TABLE ID="gameTable" DATASRC="#dsogames"
DATAPAGESIZE="5" BORDER="1" CELLPADDING="5">
<THEAD>
<TH>Игра</TH>
<TH>Разработчик</TH>
<TH>Жанр</TH>
<TH>Год</TH>
<TH>Платформа</TH>
</THEAD>
<TR ALIGN="center">
<TD><SPAN DATAFLD="NAME"
STYLE="font-style:italic"></SPAN></TD>
<TD><SPAN DATAFLD="AUTHOR"></SPAN></TD>
<TD><SPAN DATAFLD="GENRE"></SPAN></TD>
<TD><SPAN DATAFLD="YEAR"></SPAN></TD>
<TD><SPAN DATAFLD="PLATFORM"></SPAN></TD>
</TR>
</TABLE>
</BODY>
</HTML>
Games big table.html
К главе 2.5:
<?xml version="1.0"?>
<GAMES>
<GAME>
<GAMEIMAGE>maxpayne.jpg</GAMEIMAGE>
<NAME>Max Payne</NAME>
<AUTHOR>Remedy</AUTHOR>
<GENRE>TPS</GENRE>
<YEAR>2001</YEAR>
<PLATFORM>PC, PS2, Xbox</PLATFORM>
</GAME>
<GAME>
<GAMEIMAGE>gta.jpg</GAMEIMAGE>
<NAME>GTA Vice City</NAME>
<AUTHOR>Rockstar</AUTHOR>
<GENRE>Action</GENRE>
<YEAR>2002</YEAR>
<PLATFORM>PC, PS2</PLATFORM>
</GAME>
<GAME>
<GAMEIMAGE>farcry.jpg</GAMEIMAGE>
<NAME>Far Cry</NAME>
<AUTHOR>Crytek</AUTHOR>
<GENRE>FPS</GENRE>
<YEAR>2003</YEAR>
<PLATFORM>PC</PLATFORM>
</GAME>
</GAMES>
Games picture.xml
<HTML>
<HEAD>
<TITLE>Games</TITLE>
</HEAD>
<BODY>
<XML ID="dsogames" SRC="games picture.xml"></XML>
<H2>Игры</H2>
<TABLE DATASRC="#dsogames" BORDER="1" CELLPADDING="5">
<THEAD>
<TH>Обложка</TH>
<TH>Название</TH>
<TH>Разработчик</TH>
<TH>Жанр</TH>
<TH>Год</TH>
<TH>Платформа</TH>
</THEAD>
<TR ALIGN="center">
<TD><IMG DATAFLD="GAMEIMAGE"></TD>
<TD><SPAN DATAFLD="NAME"
STYLE="font-style:italic"></SPAN></TD>
<TD><SPAN DATAFLD="AUTHOR"></SPAN></TD>
<TD><SPAN DATAFLD="GENRE"></SPAN></TD>
<TD><SPAN DATAFLD="YEAR"></SPAN></TD>
<TD><SPAN DATAFLD="PLATFORM"></SPAN></TD>
</TR>
</TABLE>
</BODY>
</HTML>
Games picture.html
К главе 2.6:
<HTML>
<HEAD>
<TITLE>Game Finder</TITLE>
</HEAD>
<BODY>
<XML ID="dsogames" SRC="games big.xml"></XML>
<H2>Поиск игры</H2>
Название: <INPUT TYPE="TEXT" ID="SearchText"> 
<BUTTON ONCLICK='Findgames()'>Поиск</BUTTON>
<HR>
Результат:<P>
<DIV ID=ResultDiv></DIV>
<SCRIPT LANGUAGE="JavaScript">
function Findgames ()
{
SearchString = SearchText.value.toUpperCase();
if (SearchString == "")
{
ResultDiv.innerHTML = "<Введите название игры в меню "
+ "'Название' >";
return;
}
dsogames.recordset.moveFirst();
ResultHTML = "";
while (!dsogames.recordset.EOF)
{
TitleString = dsogames.recordset("NAME").value;
if (TitleString.toUpperCase().indexOf(SearchString)
>=0)
ResultHTML += "<I>"
+ dsogames.recordset("NAME")
+ "</I>, "
+ "<B>"
+ dsogames.recordset("AUTHOR")
+ "</B>, "
+ dsogames.recordset("GENRE")
+ ", "
+ dsogames.recordset("YEAR")
+ " год, "
+ dsogames.recordset("PLATFORM")
+ "<P>";
dsogames.recordset.moveNext();
}
if (ResultHTML == "")
ResultDiv.innerHTML = "<игра не найдена>";
else
ResultDiv.innerHTML = ResultHTML;
}
</SCRIPT>
</BODY>
</HTML>
Game find.html