ВВЕДЕНИЕ В ТЕХНОЛОГИИ 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> - не правильно • Документ должен содержать корневой элемент и только один • Все значения атрибутов заключаются в кавычки СЛУЖЕБНЫЕ СИМВОЛЫ &lt; < меньше &gt; > больше &amp; & амперсанд &apos; ' апостроф &quot; " кавычки ЭЛЕМЕНТ 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