Visual FoxPro расширяет свои существующие возможности по обработке XML и свою совместимость с форматами XML DiffGram и .NET Framework ADO.NET DataSet путем предоставления классов XMLAdapter, XMLTable, и XMLField. С этими классами Visual FoxPro поддерживает иерархически форматированные XML, приведенные ниже:

Visual FoxPro может переработать XML файлы, представляющие собой коллекцию различных и, возможно, связанных таблиц, таких как объект ADO.NET DataSet в отдельные курсоры Visual FoxPro. Обычно такой файл содержит данные из систем управления бащзами данных (DBMS) со структуров Parent > Child > Child. XML, кроме того, может иметь вложенный формат, такой как Parent > Child, Parent > Child, или последовательный формат, такой как Parent-Parent, Child-Child.

Когда в вашем распоряжении имеется иерархический XML, который представляет единичную таблицу, получаемую из команды SQL JOIN, связывающей множество таблиц, Visual FoxPro создаст только один курсор.

NoteЗамечание

Классы XMLAdapter, XMLTable и XMLField требуют, чтобы был инсталлирован Microsoft XML Core Services (MSXML) 4.0 Service Pack 1 (SP1). Для получения более подробной информации об этих классах обратитесь к Класс XMLAdapter, Класс XMLTable и Класс XMLField Class. Для получения более подробной информации о MSXML, смотрите Microsoft XML Core Services 4.0 SP1 на вебсайте MSDN Library http://msdn.microsoft.com/downloads/.

NoteЗамечание

Схема XML Schema Definition (XSD), сгенерированная Visual Studio ADO.NET DataSets может содержать элементы, не поддерживаемые  Visual FoxPro. Для получения более подробной информации смотрите Поддержка схем, сгенерированных ADO.NET DataSets.

ADO.NET DataSets

В .NET Framework, ADO.NET представляет собой набор классов, которые открывают программисту сервисы доступа к данным. ADO.NET предоставляет последовательный доступ к источникам данным, таким как Microsoft SQL Server и прочим источником, которые открываются через OLE DB и XML.

ADO.NET DataSet используется как первичный класс для управления данными и инкапсуляции данных в виде XML. Объект ADO.NET DataSet может производить XML несколькими способами:

  • Возвратом полного ADO.NET DataSet вызывающему приложению.

    Это метод возвращает все строки в оригинальном зарпоск в формате XML DiffGram с внутренней схемой и операциями, показанными как операции обновления, вставки и удаления. Строки, которые остались неизменными не имеют аттрибута diffgr:hasChanges.

    Когда объект DataSet возвращается вызывающему приложению их метода в приложении, которое использует  .NET Framework и возвращает объекты ADO.NET DataSet, то они всегда сериализированы или, другими словами, сконвертированы в XML. Visual FoxPro может преобразовать такой XML в курсоры, которые затем могут быть использованы в приложениях Visual FoxPro.

  • Возвратом только изменений в ADO.NET DataSet в приложение, основанноое на .NET.

    Этот метод возвращает только те строки в формате XML DiffGram, которые были изменены, добавлены или удалены.

    Если объект ADO.NET DataSet содержит изменения, они маркируются аттрибуитом DiffGram:hasChanges="modified" или DiffGram:hasChanges="inserted". Для тех записей, которые макрированы, как "modified", предыдущие их значения появляются в секции diffgr:before. Записи, которые удалены появляются только в секции diffgr:before и отсутствуют в основной секции DiffGram.

  • С помощью методов ADO.NET DataSet GetXml и GetXMLSchema возвращающих XML как .CLR поток или строчный тип.

  • С помощью методов  ADO.NET DataSet WriteXml и WriteXmlSchema для записи ADO.NET DataSet как XML в файл с внутренней схемой, без схемы или с отдельной схемой.

Для получения более подробной информации о форматах  XML DiffGram и ADO.NET DataSet смотрите .NET Framework SDK в MSDN Library на сайте http://msdn.microsoft.com/library/.

Поддержка схем, сгенерированных ADO.NET DataSets

XML, которые имеют внешнюю или внутреннюю схему XML Schema Definition (XSD), сгенерированную ADO.NET DataSets могут содержать элементы, которые не поддерживаются Visual FoxPro, который игнорирует эти элементы. Среди таких элементов, например, могут быть приведенные ниже:

  • xs:unique name

  • xs:annotation

  • Дополнительные processing instructions и аттрибуты, как перечисленные ниже:

    • Поддержка префиксов схемы (Schema prefix support), таких как msdata:Prefix, который определяет область группы элементов

    • Поддержка префиксов схемы XML, таких как аттрибут vfpx attribute, который распространяет область префикса на корневые элементы

    • аттрибут msprop и прочие аттрибуты, которые используют пространства имен

    • Прочие аттрибуты msdata, которые ссылаются на предметы, не поддерживаемые Visual FoxPro, такие как msdata:Locale или msdata:Comment

Смотрите также