Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


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



 

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

связанный XML-документ не имеет ошибок. Если это не так, XML-данные не будут доступны;

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

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

В файле Validity Test . htm   представлена страница проверки на валидность.

 

<!-- Имя файла: Validity Test.htm --><HTML><HEAD> <TITLE>Validity Tester</TITLE> <SCRIPT LANGUAGE="JavaScript" FOR="window"  EVENT="ONLOAD"> Document = dsoTest.XMLDocument; if (Document.readyState == 4)  DisplayError (); else  Document.onreadystatechange = DisplayError;       function DisplayError ()  {  if (Document.readyState != 4)  return;  message = "parseError.errorCode: "            + Document.parseError.errorCode + "\n"            + "parseError.filepos: "            + Document.parseError.filepos + "\n"      + "parseError.line: " + Document.parseError.line            + "\n"      + "parseError.linepos: "            + Document.parseError.linepos + "\n"      + "parseError.reason: "            + Document.parseError.reason + "\n"      + "parseError.srcText: "            + Document.parseError.srcText + "\n"      + "parseError.url: " + Document.parseError.url;    alert (message);    } </SCRIPT></HEAD><BODY><!--Set SRC to the URL of the XML document you want to check: --><XML ID="dsoTest" SRC="Inventory.xml"></XML></BODY></HTML>

 

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 изменится:

 

if (Document.readyState == 4) DisplayError ();else   Document.onreadystatechange = DisplayError;

 

Оба этих свойства узла Document описаны в таблице 4.3.

Если свойство readyState еще не приняло значение 4, то функция DisplayError немедленно завершает свою работу. (Она будет вызвана снова, когда в дальнейшем значение readyState станет равным 4.) Если функция продолжает работу, она отображает все свойства элементарного объекта parseError узла Document. Эти свойства полностью описывают состояние XML-документа на предмет ошибок:

 

function DisplayError () { if (Document.readyState != 4)     return;   message = "parseError.errorCode: " + Document.parseError.errorCode + "\n" + "parseError.filepos: " + Document.parseError.filepos + "\n" + "parseError.line: " + Document.parseError.line + "\n" + "parseError.linepos: " + Document.parseError.linepos + "\n" + "parseError.reason: " + Document.parseError.reason + "\n" + "parseError.srcText: " + Document.parseError.srcText + "\n" + "parseError.url: " + Document.parseError.url; alert (message); }

 

Если документ не содержит ошибок, значение parseError.errorCode устанавливается в нуль, а другие свойства также имеют нулевые или пустые значения. Если же в документе имеется ошибка, свойство parseError.errorCode содержит числовой код ошибки, а другие свойства описывают эту ошибку.

 

Выводы:

В данном вопросе изучили основы применения DOM для отображения XML-документа.

 

Заключение

 

На занятии рассмотрены три основных метода отбражения XML-документов на HTML странице: 1) с помощью таблиц стилей CSS и XSL, 2) путём связывания данных, 3) с помощью написания сценария.

Наибольшие возможности предоставляют второй и, особенно, третий способы.

Метод связывания данных сводится к установке связи XML-документа с HTML-страницей, а также сцеплению элементов HTML с XML-элементами. В результате HTML-элементы автоматически отображают содержимое XML-элементов, с которыми они сцеплены. В этом случае при открытии HTML-страницы встроенный в Internet Explorer XML-процессор синтаксически анализирует XML-документ. При этом Internet Explorer создаёт программный объект, который носит название "Объект исходных данных" (Data Source Object, DSO). Объект DSO хранит данные XML и обеспечивает доступ к ним. DSO позволяет осуществлять доступ и манипулирование XML-данными посредством ряда методов, свойств и событий.

Метод написания сценариев заключатся в написании скриптов на JavaScript или Microsoft Visual Basic Scripting Edition [VBScript].

В основе этих методов лежит знание языков HTML, XSLT, JavaScript.

 

Вопросы для самоконтроля

1. Какие основные методы обработки XML-документов существуют?

2. Для чего нужен язык описания стилей XSL?

3. Что собой представляет объектная модель документа DOM?

4. Для чего нужны программы-анализаторы, так называемые парсеры (parsers)?

 

Литература

 

1. Хабибуллин И. Ш. Самоучитель XML. - СПб.: БХВ-Петербург, 2003. - 336 с: ил.

 

В.В. Котович


Поделиться:



Последнее изменение этой страницы: 2019-05-08; Просмотров: 235; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.019 с.)
Главная | Случайная страница | Обратная связь