Технология Microsoft ADO.NET

Понятие корректно сформированных (well-formed) XML-документов


Документ называется корректно сформированным, если он соответствует минимальному набору правил для XML-документов:

  1. XML-документ должен иметь только один корневой элемент (элемент "Документ"). Все другие элементы должны быть вложены в корневой элемент.
  2. Элементы должны быть вложены упорядоченным образом. Если элемент начинается внутри другого элемента, он должен и заканчиваться внутри этого элемента.
  3. Каждый элемент должен иметь начальный и конечный теги. В отличие от HTML, в XML не разрешается опускать конечный тег - даже в том случае, когда браузер в состоянии определить, где заканчивается элемент.
  4. Название элемента в начальном теге должно в точности соответствовать (с учетом регистра) названию в соответствующем конечном теге.
  5. Название элемента должно начинаться с буквы или с символа подчеркивания ( _ ), после чего могут идти буквы, цифры, символы точки (.), тире (-) или подчеркивания.

Это базовые критерии корректного формирования. Для других понятий языка XML (атрибутов, примитивов, связей) действуют свои правила, которые необходимо соблюдать. Можно сказать, что если документ создан правильно, верно и при его отображении и использовании не возникает никаких ошибок, то это и есть корректно сформированный документ. Если вы ошибетесь в каком-либо теге HTML-страницы, браузер просто проигнорирует соответствующий тег, а ошибка в теге XML сделает невозможным отображение страницы. В этом смысле написание XML похоже на программирование на C# - компилятор не запустит программу при наличии синтаксических ошибок. При наличии одной из ошибок встроенный в Internet Explorer анализатор (его иногда называют XML-процессор или парсер) определяет ее позицию (таблица 10.2).

Таблица 10.2. Ошибки формирования XML-документов

№ОшибкаОписание
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).



Содержание раздела