Украина, Киев |
Введение в XML
Структура XML-документа
Созданный нами документ состоит из двух основных частей - пролога и корневого элемента (элемента "Документ") (рис. 10.6).
Пролог может иметь необязательные компоненты, такие как тип и структура документа, инструкции по обработке приложения. Далее мы будем встречать эти компоненты. Корневой элемент представляет собой основу всего элемента и состоит из начального тега, конечного тега и содержимого. В качестве содержимого могут быть данные (текст), другие теги (вложенные элементы) или их сочетание. В рассматриваемом документе корневой элемент - TABLE. Его начальный тег - <TABLE>, конечный - </TABLE>, а содержимое - пять вложенных элементов <TOUR>. Каждый элемент Tour в свою очередь состоит из группы вложенных элементов (рис. 10.7).
Каждый тег, входящий в элемент TOUR, представляет собой простейшую структуру (рис. 10.8).
Структура в точности такая же, как и у элементов HTML, только названия элементов определены, а в тегах XML тип задается пользователем.
Понятие корректно сформированных (well-formed) XML-документов
Документ называется корректно сформированным, если он соответствует минимальному набору правил для XML-документов:
- XML-документ должен иметь только один корневой элемент (элемент "Документ"). Все другие элементы должны быть вложены в корневой элемент.
- Элементы должны быть вложены упорядоченным образом. Если элемент начинается внутри другого элемента, он должен и заканчиваться внутри этого элемента.
- Каждый элемент должен иметь начальный и конечный теги. В отличие от HTML, в XML не разрешается опускать конечный тег - даже в том случае, когда браузер в состоянии определить, где заканчивается элемент.
- Название элемента в начальном теге должно в точности соответствовать (с учетом регистра) названию в соответствующем конечном теге.
- Название элемента должно начинаться с буквы или с символа подчеркивания ( _ ), после чего могут идти буквы, цифры, символы точки (.), тире (-) или подчеркивания.
Это базовые критерии корректного формирования. Для других понятий языка XML (атрибутов, примитивов, связей) действуют свои правила, которые необходимо соблюдать. Можно сказать, что если документ создан правильно, верно и при его отображении и использовании не возникает никаких ошибок, то это и есть корректно сформированный документ. Если вы ошибетесь в каком-либо теге HTML-страницы, браузер просто проигнорирует соответствующий тег, а ошибка в теге XML сделает невозможным отображение страницы. В этом смысле написание XML похоже на программирование на C# - компилятор не запустит программу при наличии синтаксических ошибок. При наличии одной из ошибок встроенный в Internet Explorer анализатор (его иногда называют XML-процессор или парсер) определяет ее позицию (таблица 10.2).
№ | Ошибка | Описание |
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8" ?> <!-- Название файла XMLTour.xml --> <TABLE> : </TABLE> <TABLE2> </TABLE2> |
В документе находится два корневых элемента |
Результат в Internet Explorer | ||
2 |
<?xml version="1.0" encoding="utf-8" ?> <!-- Название файла XMLTour.xml --> <TABLE> <TOUR> <IDTOUR>1</IDTOUR> <NAME>Кипр</NAME> <PRICE>25 000,00р. </PRICE> <INFORMATION>В стоимость двух взрослых путевок входит цена одной детской (до 7лет)</TOUR> </INFORMATION> : </TABLE> |
Тег INFORMATION начинается внутри тега TOUR, а заканчивается снаружи Правильная структура: <TOUR> <INFORMATION> </INFORMATION> </TOUR> Неправильная: <TOUR> <INFORMATION> </TOUR> </INFORMATION> |
Результат в Internet Explorer | ||
3 |
<?xml version="1.0" encoding="utf-8" ?> <!-- Название файла XMLTour.xml --> <TABLE> <TOUR> <IDTOUR>1 : </TOUR> : </TABLE> |
Нет конечного тега IDTOUR |
Результат в Internet Explorer | ||
4 |
<?xml version="1.0" encoding="utf-8" ?> <!-- Название файла XMLTour.xml --> <TABLE> <TOUR> <IDTOUR>1</IDTOUR> <NAME>Кипр</name> : </TOUR> : </TABLE> |
Регистр начального и конечного тега не совпадают |
Результат в Internet Explorer | ||
5 |
<?xml version="1.0" encoding="utf-8" ?> <!-- Название файла XMLTour.xml --> <TABLE> <TOUR> <IDTOUR>1</IDTOUR> <NAME>Кипр</NAME> <1PRICE>25 000,00р. </PRICE> : </TOUR> : </TABLE> |
Название элемента 1PRICE начинается с цифры |
Результат в Internet Explorer | ||
В программном обеспечении к курсу вы найдете папку "Ошибки_XML", в которой находятся рассмотренные документы XML с ошибками (Code\Glava5\Ошибки_XML).