Создать действительный XML из XSD, загруженного во время выполнения (без xsd.exe) - PullRequest
3 голосов
/ 31 января 2010

Возможный дубликат:

Вот сценарий: я создал приложение, которое подключается к коммерческому продукту CRM с использованием их API веб-службы, который, к сожалению, имеет различную схему для каждой установки в зависимости от того, как пользователи создают свои настраиваемые поля. Эта схема также может быть изменена в любое время. Это приложение будет установлено по месту нахождения клиента, и оно должно функционировать, даже если они изменят структуру своего поля.

Чтобы вставить или обновить запись, я сначала вызываю их метод Project.GetSchema (), который возвращает файл XSD на основе текущего набора полей, а затем я могу вызвать метод Project.AddProject (), передав в файле XML, содержащем данные проекта.

Мой вопрос : Каков наилучший способ создания XML из файла XSD во время выполнения? Мне нужно иметь возможность проверять наличие полей и заполнять их только в том случае, если они существуют (например, если клиент удалил или переименовал некоторые поля).

Я действительно не хочу, чтобы приложение пыталось перекомпилировать классы на лету, используя xsd.exe. Просто должен быть лучший способ.

[обновление] Мое текущее решение, над которым я работаю, - это в основном сам разобрать файл XSD, поскольку большая часть схемы будет одинаковой для каждой установки. Это просто уродливое решение, и я надеялся, что есть лучший способ. Самая большая проблема, которую я имею, состоит в том, что их схема использует xsd: sequence, поэтому размещение вещей в другом порядке всегда нарушает проверку.

1 Ответ

0 голосов
/ 27 июня 2011

Для других, кто оказался здесь: лучшее решение с учетом ограничений, создание XML во время выполнения и использование .NET , вероятно, является первой ссылкой:
Существует ли класс для создания образца XML-документа из схемы XSD в .NET

По крайней мере, это то, что я собираюсь попробовать :).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...