Распечатать страницу

Базовые правила XML в Visual FoxPro

« Назад

Обмен с XML-документами VFP осуществляет функциями XMLUPDATEGRAM( ), CURSORTOXML( ) и XMLTOCURSOR( ).

Замечание. Для работы в VFP с XML-функция должен быть установлен MSXML-анализатор.

Документы, формируемые функцией CURSORTOXML( ), являются корректными, то есть отвечают следующим базовым правилам XML:

Каждый XML-документ должен иметь уникальный корневой, не имеющий родителя элемент.

Каждый начальный тег имеет соответствующий конечный тег. Пустые элементы могут быть представлены специальными сокращенными тегами.

Все начальные и конечные теги находятся в соответствии; XML-теги чувствительны к регистру.

Элементы не перекрываются, то есть записываются по тем же правилам, что и управляющие конструкции, например IF…ENDIF или SCAN…ENDSCAN.

Для повышения наглядности в тексте XML-документа могут употребляться пробелы.

Некоторые зарезервированные символы являются частью XML-синтаксиса. При употреблении такого символа в качестве данных, он заменяется последовательностью символов, называемой ссылкой на сущность (табл. 20.2).

Таблица 20.2

Кодирование зарезервированных символов

Символ

На что заменяется

&

&

<

>

"

"

'

'

  • Для других типов данных применяются приведенные в табл. 20.3 соглашения.

Таблица 20.3

Формы представления различных типов данных

Тип данных

Форма представление

Дата

Должен следовать формату ISO 8601

Числовой

Должны выполняться US English-правила. В частности, дробная часть отделяется от целой точкой. Может использоваться экспоненциальная форма представления числа

Логический

0 – истина, 1 - ложь

BLOB

Используется MIME Base64-кодировка

Пример корректного XML-документа.

<?xml version="1.0"?>

<Data>

<ORDER>

<CUSTOMER>Nancy Davolio</CUSTOMER>

<ITEM>Mom&apos;s Boston Crab Meat</ITEM>

<PRICE>$10.00</PRICE>

<QUANTITY>1 Bottle</QUANTITY>

</ORDER>

</Data>

В приведенном XML-документе:

<?xml version="1.0"?> – задает версию XML. Указывать версию необязательно. Однако разработчиками XML рекомендуют не опускать это объявление;

<ORDER> – корневой элемент, характеризующий весь документ как заказ покупателя;

<CUSTOMER> ... </CUSTOMER> – начальные и конечные теги элемента, описывающего имя покупателя;

&apos; – последовательность символов, заменяющая апостроф; сущность элемента ITEM интерпретируется следующим образом: Mom's Boston Crab Meat.

При экспортировании из VFP может быть задана схема – объявление структуры и содержимого XML-документа.

При импортировании в VFP функцией XMLTOCURSOR( ) для определения структуры таблицы используется внутренняя или внешняя схема. Если схема отсутствует, то VFP для интерпретации XML-данных употребляет метод "best guess" (наилучшего предположения). Он предполагает выполнение 2-х проходов XML-документа. Первый для определения структуры документа, второй для осуществления преобразований. Интерпретация будет успешной, если XML-документ имеет структуру, которая может быть распознана как таблица. Импортирование данных не будет произведено, если XML-документ не удастся преобразовать в таблицу.