ВВЕДЕНИЕ В ТЕХНОЛОГИИ W3C ЛЕКЦИЯ 11. XML

advertisement
ВВЕДЕНИЕ В
ТЕХНОЛОГИИ W3C
ЛЕКЦИЯ 11. XML
EXTENSIBLE MARKUP LANGUAGE
• Расширяемый язык разметки
• Создан для описания данных
• Не зависит от аппаратного и программного
обеспечения
ПРИМЕР
<breakfast_menu>
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>
Two of our famous Belgian Waffles with plenty of real maple syrup
</description>
<calories>650</calories>
</food>
</ breakfast_menu>
ОСОБЕННОСТИ
• Не определено отображение данных, только их
описание
• Нет предопределенных тегов
ИСПОЛЬЗОВАНИЕ XML
• Отделение представление и содержания
• Обмен данными
ЯЗЫКИ ОСНОВАННЫЕ НА XML
• XHTML
• XML Schema
• SVG
• WSDL
• RSS
ДРЕВОВИДНАЯ СТРУКТУРА
<student> - корневой элемент (root/ document element)
<name></name> - дочерние элементы
<specialty></specialty>
<skills>
<skill1></skill1>
</skills>
</student>
ПРАВИЛА СИНТАКСИСА
• Каждый элемент должен иметь закрывающий тег
• Регистр имеет значение
• Должен соблюдаться порядок вложенности элементов, т.е.:
• <i><a></a></i> - правильно
• <i><a></i></a> - не правильно
• Документ должен содержать корневой элемент и только один
• Все значения атрибутов заключаются в кавычки
СЛУЖЕБНЫЕ СИМВОЛЫ
<
<
меньше
>
>
больше
&
&
амперсанд
'
'
апостроф
"
"
кавычки
ЭЛЕМЕНТ XML
• Все содержимое начиная с открывающего тега и
заканчивая закрывающим тегом
• Может содержать:
• Другие элементы
• Текст
• Атрибуты
ПУСТОЕ ЭЛЕМЕНТ
• <student></student>
• <student />
ПРАВИЛА ИМЕНОВАНИЯ
• Имена могут содержать буквы, цифры и другие
символы
• Не могут начинаться с цифр или символов
пунктуации
• Не могут начинаться с символов xml
• Не могут содержать пробелы
РЕКОМЕНДАЦИИ ПО ИМЕНОВАНИЮ
•
Имена должны описывать семантику
•
•
Не следует использовать “-”
•
•
<first-name>
Не следует использовать “.”
•
•
•
<first_name>,<age>,<amount>
<first.name>
Символ “:” зарезервирован для пространств имен
Не следует использовать национальные алфавиты
СТИЛИ ИМЕНОВАНИЯ
Lower case
<firstname>
Upper case
<FIRSTNAME>
Underscore
<first_name>
Pascal case
<FirstName>
Camel case
<firstName>
ЭЛЕМЕНТ МОЖЕТ БЫТЬ РАСШИРЕН
<student>
<name>
</name>
</student>
<student>
<name>
</name>
<age>
</age>
</student>
АТРИБУТЫ
• Дополнительная информация о элементе
• Информация не относится к данным
• Значения заключаются в кавычки
• Хранение метаданных (id)
НЕДОСТАТКИ АТРИБУТОВ
• Не могут содержать множество значений
• Не могут содержать составные значения
• Нет возможности простого дополнения
КОНФЛИКТ ИМЕН
<table>
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
<table>
<name>African Coffee
Table</name>
<width>80</width>
<length>120</length>
</table>
ПРОСТРАНСТВА ИМЕН
<h:table>
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:table>
<f:name>African Coffee
Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
АТРИБУТ XMLNS
• Объявление пространства имен
• xmlns:prefix=«URI»
• Должен быть определен для открывающего тега элемента, в
котором используется префикс
• URI – является уникальным идентификатором и не
используется для получения дополнительной информации
• При объявлении без префикса, задает пространство имен поумолчанию
XML И CSS
• Форматирование XML документа
• XML не содержит сведения об отображении
• CSS использует теги определенные в XML
Download