Понятие корректно сформированных (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).