Основы XML

       

Как работает страница проверки на валидность


Для HTML-страниц, с которыми вы работали в этой лекции, были приняты два допущения:

  • связанный XML-документ не имеет ошибок. Если это не так, XML-данные не будут доступны;
  • браузер закончил загрузку и обработку XML-документа к тому времени, когда сценарий предпринимает попытку обратиться к данным. Если это предположение не соответствует действительности, часть данных XML будет недоступна.

Если одно из этих предположений окажется ложным, часть или все данные XML не появятся на странице. Страница проверки на валидность, представленная здесь, демонстрирует, как вы можете проверить, содержит ли связанный XML-документ ошибки. Вы можете включить подобную проверку в создаваемые вами страницы и отображать соответствующее сообщение, если в документе будут найдены ошибки. Страница проверки на валидность также показывает, как сценарий может узнать, загружен ли полностью и обработан XML-документ на тот момент, когда сценарий пытается обратиться к его данным. Хотя в целях упрощения в предыдущих примерах эти действия были опущены, вы можете использовать их при создании полноценных HTML-страниц.

В Листинге 9.10 представлена страница проверки на валидность.

Листинг 9.10. Validity Test.htm (html, txt)

HTML-страница содержит сценарий, который выполняется, когда браузер первый раз открывает окно страницы:

<SCRIPT LANGUAGE="JavaScript" FOR="window" EVENT="ONLOAD"> /* код сценария … */ </SCRIPT>

Сначала сценарий получает узел Document:

Document = dsoTest.XMLDocument;

Затем он проверяет свойство readyState узла Document. Если значение свойства readyState равно 4, что указывает на то, что все данные XML загружены и обработаны, сценарий сразу же вызывает функцию DisplayError, которая отображает состояние документа на предмет ошибок. Если же значение свойства readyState не равно 4, сценарий присваивает функцию DisplayError свойству onreadystatechange узла Document, что приводит к вызову браузером функции DisplayError позднее, когда значение readyState изменится:



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