Вы можете работать с XML данными в Visual FoxPro путем импорта или экспорта XML документов, используя функции Visual FoxPro или объекты XMLAdapters. В приведенных ниже секциях вы познакомитесь с действительными (valid) или "хорошо сформированными" ("well-formed") XML документами и XML схемами, что поможет объяснить требования для работы с XML данными в Visual FoxPro:

Well-Formed XML Docments

XML документами являются действительными, когда они "хорошо сформированы". Visual FoxPro производит XML документы, которые действительно хорошо сформированы. Хорошо сформированный документ должен отвечать базовым правилам XML:

  • Каждый XML документ должен содержать уникальный корневой элемент, который представляет собой элемент, от которого осуществляется навигация по полному документу.

  • Все открывающие и закрывающие тэги должны соответствовать друг другу. XML тэги являются регистро-чувствительными.

  • Для каждого открытого тэга, должен существовать соответствующий закрывающий тэг. Специальные короткие тэги могут отсечать пустые элементы. (Прим. переводчика. Это не совсем верно, так как существуют элементы, которые не могут в принципе иметь закрывающего тэга - например тэг <img>. Для того, чтобы ввести такой элемент в документ XML и обеспечить при этом соответствие правилам хорошо сформированного документа применяется специальная нотация тэга такого элемента, например, использование дополнительного пробела и слэжа, перед закрывающей угловой скобкой тэга)

  • Элементы не должны перекрываться. Другими словами, открывающий и закрывающий тэги должны должным образом вложены внутрь других элементов.

  • Определенные зарезервированные символы, являющиеся частью XML syntax и не интерпретированные так, как они должны быть интерпретерированыa не должны быть использованы в областях данных элемента в прямом виде. В приведенной ниже таблице показаны символьные последовательности или сущности, используемые для замещения этих зарезервированных  символов.

    Символ Тип данных Кодировка сущности

    &   (ampersand) <   (левая угловая скобка) >   (првая угловая скобка) "   (значок цитирования) '   (апостроф)

    String String String String String

    Замещается  &amp; Замещается  &lt; Замещается  &gt; Замещается  &quot; Замещается  &apos;

    Для других типов данных правила кодировки сущности приведены ниже в таблице.

    Тип данных Символ и кодировка сущности

    Date

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

    Numbers

    Пунктуация должна использовать правила пунктуации U.S. English. Например, вы должны использовать  точку в качестве десятичного разделителя. Числа могут включать в себя степени.

    Boolean

    False = 0, True = 1. (SQL XML возвращает 0 и 1)

    BLOB

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

В приведенном ниже примере показан хорошо сформированный XML:

  CopyCode imageCopy Code
<?xml version="1.0"?>
<Data>
<ORDER>
<CUSTOMER>Mary Baker</CUSTOMER>
<ITEM>Coho Winery&apos;s Chablis</ITEM>
<PRICE>$10.00</PRICE>
<QUANTITY>1 Bottle</QUANTITY>
</ORDER>
</Data>
NoteСовет

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

В приведенном примере показаны определенные части XML документа:

  • <?xml version="1.0"?>

    Декларирует XML документ и предоставляет номер версии стандарта. Эта декларация является вспомогательной, но рекомендована для использования в любом XML документе.

  • <ORDER>

    Определяет корневой элемент, который заключает в себе полный документ.

  • <CUSTOMER> ... </CUSTOMER>

    Определяет набор открывающего и закрывающего тэгов, который описывает элемент данных, в данном случае, имя потребителя.

    NoteЗамечание

    Каждый набор тэгов имеет открывающий и закрываюзий тэги, которые являются регистро-чувствительными и правильно вложенными. При импорте данных приложением, сущности &apos трансформируются в апостроф ('). Апостроф имеет специальное назначение в XML документах и может быть неверно интерпретирован, если используется непосредственно в тексте. Сконвертируемые данные будут отображаться как Coho Winery's Chablis.

Поддержка XML схем

XML схема может помочь в определении правил и структуры XML документов. Visual FoxPro может интерпретировать XML файлы как со схемой, так и без нее. Однако, Visual FoxPro поддерживает XML Schema Definition (XSD), которые являются базовой инфраструктурой для описания типа и структуры документов XML.  XML schema definition обслуживает специальные цели:

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

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

  • Предоставляет модель для документа XML, содержащего данные, путем определения оформления тэгов и текста внутри всех документов, ссылающихся на схему.

При использовании XML схемы, вы можете быть уверены, что любой XML документ, используемый для импорта или экспорта данных содержит специфические данные и удовлетворяет определенной схемой структуре. Когда вы указываете схемы при экспорте XML из Visual FoxPro, то экспортируемый документа подразумевается как действительный (valid) XML. Это означает, что в дополнение к тому, что документ является хорошо сформированным, он также отвечает определенной схеме. Вы можете, кроме того, предоставить схему для других производителей и приложений, так чтобы они могли структурировать XML данные, которые будут отвечать предоставленной вами схеме.

В частности, Visual FoxPro поддерживает формат W3C XSD schema. Формат XSD schema основан на рекомандации консорциума W3C Recommendation для спецификации XSD Schema. Для получения подробной информации обратитесь к источнику по адресу http://www.w3.org/TR/2001/REC-xmlschema-0-20010502/ и связанным с ним документам.

Смотри также