Для чего используется XML?

Технические моменты создания сайтов и других Web-приложений.

Для чего используется XML?

Сообщение Gulia » 30 июл 2012, 11:00

Вот вроде бы и поверхностно знаю еще со студенческих годов, что XML – это тоже декларативный язык разметки, но для чего он нужен, уяснить себе не могу. В интернете попадается информация одного рода, где сначала рассказывают о SGML, а потом о структуре документа XML. Мне интересно знать, где реально используется этот язык, его практическое применения. Как он связывается с HTML-документами? Если можно, навести пример. Ещё меня интересует одна вещь: я сохраняю пример с расширениям XML, запускаю через браузер, а он мне выдает ту же разметку. Так должно быть?
Аватар пользователя
Gulia
Продвинутый Юзер
 
Сообщений: 458
Зарегистрирован: 04 май 2012, 09:21

Re: Для чего используется XML?

Сообщение Oleg » 14 авг 2012, 06:53

Ещё меня интересует одна вещь: я сохраняю пример с расширениям XML, запускаю через браузер, а он мне выдает ту же разметку. Так должно быть?

Да, так и должно быть, если Вы не используете данные XML в html. XML, в основном используется для работы с базой данных, то есть с помощью XML проще представить структуру и информацию, которая храниться в базе данных. Как вариант, база данных может описываться с помощью XML и сохраняется в отдельной файле с расширениям .xml, а вызывается с файла html с помощью сценария JavaScript.
Oleg
Продвинутый Юзер
 
Сообщений: 286
Зарегистрирован: 04 июн 2012, 10:46

Re: Для чего используется XML?

Сообщение Gulia » 16 авг 2012, 08:20

У меня есть ещё вопросы, если позволите. Вот в HTML каждый тег отвечает за то, как отобразиться информация на веб-старнице, а в XML оказывается можно использовать в качестве тегов всё что захочется и это будет правильным. Как тогда браузер знает, что этот тег собой представляет и как его нужно трактовать? Не посчитайте за наглость, но я просила навести пример использования XML на html-странице. Сделайте это, пожалуйста. Всё-таки, имея перед собой образец легшее понять, что да как работает на практике.
Аватар пользователя
Gulia
Продвинутый Юзер
 
Сообщений: 458
Зарегистрирован: 04 май 2012, 09:21

Re: Для чего используется XML?

Сообщение Oleg » 17 авг 2012, 08:09

Хорошо. Давайте, рассмотрим xml-документ lessons.xml, в котором мы будем сохранять данные, например, об уроках: тип урока, время начала и конца, предмет, учитель, аудитория. Он будет иметь приблизительно такой вид:
<?xml version="1.0"?>

<!DOCTYPE timetable[
<!ELEMENT timetable (day*)>
<!ELEMENT day (lesson+)>
<!ELEMENT lesson (timeFrom, timeTo, subject, teacher, room?)>
<!ELEMENT timeFrom (#PCDATA)>
<!ELEMENT timeTo (#PCDATA)>
<!ELEMENT subject (#PCDATA)>
<!ELEMENT teacher (#PCDATA)>
<!ELEMENT room (#PCDATA)>
<!ATTLIST day
dayOfWeek CDATA #REQUIRED>
<!ATTLIST lesson
type CDATA #REQUIRED>
]>

<lessons>
<day dayOfWeek="Monday">
<lesson type="practical">
<timeFrom>08.00</timeFrom>
<timeTo>09.30</timeTo>
<subject>Deutsch</subject>
<teacher>Borisova</teacher>
<room>216</room>
</lesson>
<lesson type="lecture">
<timeFrom>09.40</timeFrom>
<timeTo>11.10</timeTo>
<subject>SAP Administration</subject>
<teacher>Egorov</teacher>
<room>384</room>
</lesson>
<lesson type="practical">
<timeFrom>11.20</timeFrom>
<timeTo>12.50</timeTo>
<subject>SAP Administration</subject>
<teacher>Petrov</teacher>
<room>384</room>
</lesson>
</day>
</lessons>
Далее, нужно написать сценарий, который будет загружать этот xml-документ:
function xmlLoad (dname)
{
try
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
}
catch(e)
{
try
{
xmlDoc=document.implementation.createDocument("","",null);
}
catch(e) {alert(e.message)}
}
try
{
xmlDoc.async=false;
xmlDoc.load(dname);
return(xmlDoc);
}
catch(e) {alert(e.message)}
return(null);
}
Сценарий сохраним под именем xmlLoad.js
Далее html-документ может работать с полями lessons.xml через xmlDoc, если Вы пропишете строку:
<script type="text/javascript" src="xmlLoad.js" >
xmlDoc = xmlLoad ("lessons.xml");
</script>
Oleg
Продвинутый Юзер
 
Сообщений: 286
Зарегистрирован: 04 июн 2012, 10:46

Re: Для чего используется XML?

Сообщение Gulia » 28 авг 2012, 06:41

Не совсем всё понятно. Вот, например, для чего нужен следующий код:
<!DOCTYPE timetable[
<!ELEMENT timetable (day*)>
<!ELEMENT day (lesson+)>
<!ELEMENT lesson (timeFrom, timeTo, subject, teacher, room?)>
<!ELEMENT timeFrom (#PCDATA)>
<!ELEMENT timeTo (#PCDATA)>
<!ELEMENT subject (#PCDATA)>
<!ELEMENT teacher (#PCDATA)>
<!ELEMENT room (#PCDATA)>
<!ATTLIST day
dayOfWeek CDATA #REQUIRED>
<!ATTLIST lesson
type CDATA #REQUIRED>
]>

Далее всё более-менее понятно, что используются теги как столбцы базы данных.
Аватар пользователя
Gulia
Продвинутый Юзер
 
Сообщений: 458
Зарегистрирован: 04 май 2012, 09:21

Re: Для чего используется XML?

Сообщение Oleg » 12 сен 2012, 07:29

Это DTD-схема. Эта схема описывает конструкцию, которая необходима для определения структуры документа. Такая DTD-схема может быть внутренней, как в нашем случаи, или же выноситься во внешний файл, но потом в самом XML-документе должна присутствовать ссылка на этот файл. В нашей схеме мы объявляем элементы с помощью ключевого слова ELEMEN, ключевое слово PCDATA говорит о том, что в данном элементе содержаться данные. А, например, следующая строка
Код: выделить все
 <!ELEMENT timetable (day*)>

говорит о том, что timetable содержит любое число элементов day
Oleg
Продвинутый Юзер
 
Сообщений: 286
Зарегистрирован: 04 июн 2012, 10:46


Вернуться в Программирование для Web

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron