Есть небольшая задачка: создать вин апп форму (форма для настроек конекшена к серверу), которая бы забирала из базы данные и сохраняла бы их в файл в XML формате, XML должен быть валидным данной XSD схеме, которую нельзя модифицировать (схема примерно в 2000 строк).
Поля в базе, конечно же не соответствуют полям в схеме. На этом почти все неприятные моменты закончены.
У кого-нибудь есть идеи, как довольно эфективно выполнить задачу? (Я пока почитаю XSLT ).
Hello, > > У кого-нибудь есть идеи, как довольно эфективно выполнить задачу? (Я пока почитаю XSLT ). >
Сгенерируй по xsd схеме объектную модель. после этого заполняешь ее данными и делаешь сохранение (если xsd во время работы не меняется. если меняется, то потом можно будет уже делать и XSLT).
Posted via RSDN NNTP Server 2.0 alpha
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[2]: Создать XML валидный XSD схеме.
От:
Аноним
Дата:
25.02.05 15:11
Оценка:
Здравствуйте, TK, Вы писали:
TK>Сгенерируй по xsd схеме объектную модель. после этого заполняешь ее данными и делаешь сохранение (если xsd во время работы не меняется. если меняется, то потом можно будет уже делать и XSLT).
Сгенерировать, по xsd — class или dataset, с помощью xsd.exe, не получилось.
Получаю около 13-ти сообщений: The derived type and the base type must have the same content type (модифицировать схему — нельзя ).
Я думаю уже сейчас можно делать XSLT . Перспектива не из приятных, но другого пути я не вижу (в принципе, поэтому и создал пост ).
Kind Regards.
Создать XML валидный XSD схеме.
От:
Аноним
Дата:
25.02.05 17:12
Оценка:
может это подойдет: XmlDataDocument Class
// Create an XmlDataDocument.
XmlDataDocument doc = new XmlDataDocument();
// Load the schema file.
doc.DataSet.ReadXmlSchema("store.xsd");
Здравствуйте, Аноним, Вы писали:
А>может это подойдет: XmlDataDocument Class
А>// Create an XmlDataDocument. А>XmlDataDocument doc = new XmlDataDocument();
А>// Load the schema file. А>doc.DataSet.ReadXmlSchema("store.xsd");
А>// загрузить данные в doc А>...
В другой ветке я, как раз написал, что с xsd что-то не так. Что именно не знаю... Но атрибут mixed="True" в некоторых ComplexType пофиксило — "The derived type and the base type must have the same content type.", но добавило "Undefined data type: CustomType." ... Сейчас разбираюсь, что со схемой опять не так.
Хотя в условии и было, что xsd нельзя изменять — думаю, косметические изменения не помешают .
Идея заполнять автоматом сгенерированную объектную модель мне нравится больше, чем написание вручную xslt файла на основе схемы.
Kind Regards.
Re: Создать XML валидный XSD схеме.
От:
Аноним
Дата:
28.02.05 09:55
Оценка:
Hi All !!!
Проблему с xsd схемой так и не решил, точнее замкнутый круг, на месте старой вырастает новая. Видно не хватает знаний, к тому же схема довольно большая. Уже слегка запарился.
Может есть у кого-то желание помочь, напишите и я вышлю схему (надежда слабая, но есть ).
Здравствуйте, <Аноним>, Вы писали:
А>Hi All, Good Afternoon!!!
А>Есть небольшая задачка: создать вин апп форму (форма для настроек конекшена к серверу), которая бы забирала из базы данные и сохраняла бы их в файл в XML формате, XML должен быть валидным данной XSD схеме, которую нельзя модифицировать (схема примерно в 2000 строк).
1. Создай dataSource.xsd для БД простым перетаскиванием таблиц из ServerExplorer, или при помощи каких-нить утилит.
2. По этой схеме сгенерится DataSet.
3. DataSet наполняешь через метод Fill
4. Создаешь xslt которые перегонит данные из dataSource.xsd в нужную тебе.
А>Best Regards.
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Re[2]: Создать XML валидный XSD схеме.
От:
Аноним
Дата:
28.02.05 11:24
Оценка:
Здравствуйте, V.Petrovski, Вы писали:
VP>Здравствуйте, <Аноним>, Вы писали:
А>>Hi All, Good Afternoon!!!
А>>Есть небольшая задачка: создать вин апп форму (форма для настроек конекшена к серверу), которая бы забирала из базы данные и сохраняла бы их в файл в XML формате, XML должен быть валидным данной XSD схеме, которую нельзя модифицировать (схема примерно в 2000 строк).
VP>1. Создай dataSource.xsd для БД простым перетаскиванием таблиц из ServerExplorer, или при помощи каких-нить утилит. VP>2. По этой схеме сгенерится DataSet. VP>3. DataSet наполняешь через метод Fill VP>4. Создаешь xslt которые перегонит данные из dataSource.xsd в нужную тебе.
А>>Best Regards.
Это вариант номер два решения данной проблемы, я его обдумывал в самом начале. Минусы: 1. написание XSLT файла для 2000-строчной схемы, 2. А где собственно валидация по данной xsd схеме? В первом случае типизированный датасет бы гарантировал валидность выходного XML'я, во втором случае валидность гарантирует созданный XSLT файл — разницы практически никакой, но всё-таки есть .
Конечно, если не получиться создать объктную модель по схеме, то прийдётся юзать план B.
Здравствуйте, <Аноним>, Вы писали:
А>Минусы: 1. написание XSLT файла для 2000-строчной схемы
Что ты к этим строчкам привязался, самое страшное не в их количестве.
Сложность схемы зависит от количества элементов и их структуры.
А>2. А где собственно валидация по данной xsd схеме?
Валидация в алгоритме преобразования.
А>Конечно, если не получиться создать объктную модель по схеме, то прийдётся юзать план B.
Можно создать Объектную модель для xsd схемы. Если не получиться заюзать XmlSerializer по каким-либо причинам,
то тебе поможет патерн Visitor. А>Best Regards.
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Re[4]: Создать XML валидный XSD схеме.
От:
Аноним
Дата:
28.02.05 12:25
Оценка:
Здравствуйте, V.Petrovski, Вы писали:
VP>Здравствуйте, <Аноним>, Вы писали:
А>>Минусы: 1. написание XSLT файла для 2000-строчной схемы VP>Что ты к этим строчкам привязался, самое страшное не в их количестве. VP>Сложность схемы зависит от количества элементов и их структуры.
Количество элементов примерно раз в пять меньше количества строк...
А>>2. А где собственно валидация по данной xsd схеме? VP>Валидация в алгоритме преобразования.
А алгоритм преобразования случайно работает не спомощью xslt файла? (кажется я это и имел в виду)
А>>Конечно, если не получиться создать объктную модель по схеме, то прийдётся юзать план B. VP>Можно создать Объектную модель для xsd схемы. Если не получиться заюзать XmlSerializer по каким-либо причинам, VP>то тебе поможет патерн Visitor. А>>Best Regards.
Спасибо, гляну. На самом деле не стоит ходить по кругу. Есть проблема со схемой, решаю — супер, нет — xslt.