Форум: "Прочее";
Текущий архив: 2010.10.31;
Скачать: [xml.tar.bz2];
ВнизXSD-схемы Найти похожие ветки
← →
картман © (2010-07-25 01:57) [0]Всем доброго времени суток.
Заказчику нужно делать выгрузку в XML. Прислал он пример, что хотел бы видеть:
<?xml version="1.0" encoding="windows-1251"?>
<XMLArray xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
....
</MessageXMLArray>
это ж, как я понял, сделано с использованием XSD-схемы?
Сделать-то ее не проблемма - не знаю, как ею пользоваться: есть несколько таблиц, из которых нужно выгружать данные, но как их согласовать с этой схемой ума не приложу. В инете не нашел.
Пробовал с for xml auto, но не могу воссоздать один элемент - его структуру, да и что, имя схемы потом руками цеплять, что ли?(
Нашел слова, что можно сопоставлять эти схемы реляционным данным, но как именно не нашел(
База SQL Server 2005.
Подскажите, плиз, кто знает.
← →
sniknik © (2010-07-25 11:06) [1]> Сделать-то ее не проблемма
он должен бы их тебе и выслать... т.к. xsd это проверка xml на правильность (есть/нет параметр, его тип, значения в границах, обязателен или нет, может повторяться, и т.д.) ты этого знать не можешь, только тот кто разрабатывал протокол обмена (а ты его насколько понял только используешь).
и кстати вставлять ссылки на http://www.w3.org смысла мало, если только не из желания проверить на соответствие "классическому xml" (но если не соответствует то тот же IE (DOM-документ) его попросту не откроет, т.е. проверка лишняя если работаешь стандартными средствами).
> это ж, как я понял, сделано с использованием XSD-схемы?
тут скорее всего просто использовалась программа редактор xml которая их вставила автоматом, т.к. если бы это была часть протокола, то ссылки вели бы на свои xsd (или были бы добавлены к этим дополнительно).
вот например "заголовок" xml в протоколе обмена с мтс<?xml version = "1.0" encoding = "UTF-8"?>
<ESPP_0104090 xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xmlns = "http://shemas.mts.ru/ESPP/ApplicationProtocolMessages/v3_0"
xmlns:constraints = "http://shemas.mts.ru/ESPP/StandardConstraints/v3_0"
xsi:schemaLocation = "http://shemas.mts.ru/ESPP/ApplicationProtocolMessages/v3_0 ESPP_ApplicationProtocol_v3_0_Messages.xsd http://shemas.mts.ru/ESPP/StandardConstraints/v3_0 ESPP_StandardConstraints_v3_0.xsd">
(кстати не самый лучший пример для подражания :о), уж очень у них все запутано, и усложнено, и даже неправильно несмотря на правильность использования проверок по xsd)
← →
Юрий Зотов © (2010-07-25 11:58) [2]А нужна ли тут вообще проверка? Ведь XML в данном случае создается программой и отлаженная программа должна делать это без ошибок (а в случае неверных данных - сама должна генерить ошибку).
← →
картман © (2010-07-25 14:29) [3]
> sniknik © (25.07.10 11:06) [1]
> он должен бы их тебе и выслать... т.к. xsd это проверка
> xml на правильность
не выслал, только готовый XML.
> тут скорее всего просто использовалась программа редактор
> xml которая их вставила автоматом, т.к. если бы это была
> часть протокола, то ссылки вели бы на свои xsd (или были
> бы добавлены к этим дополнительно).
не знаю.
> Юрий Зотов © (25.07.10 11:58) [2]
я с XML не работал, потому не знаю, нужна ли проверка, не нужна. Мне лишь нужно из своей программы выгружать в таком же, как в присланном мне примере.
Т.е. ничего, если я "руками" этот хваленый XML сделаю? Получу данные из БД и все в Дельфи?
← →
Юрий Зотов © (2010-07-25 14:32) [4]Если, как Вы написали, "заказчику нужно делать выгрузку в XML" и больше ничего, то какая ему разница, как этот XML был получен?
По идее, никакой, лишь бы этот XML был правильного формата и содержал правильные данные, вот и все. Но на всякий случай этот вопрос надо сразу с ним согласовать.
← →
картман © (2010-07-25 14:37) [5]
> т.к. xsd это проверка xml на правильность (есть/нет параметр,
> его тип, значения в границах, обязателен или нет, может
> повторяться, и т.д.)
и все? Я-то хотел из базы сразу готовый возвратить, чтоб на клиенте не собирать - думал схема в этом поможет. Но, чего-то не получается выдать именно в таком формате. В близком да, но не в таком же... мож пробовал плохо.
> ты этого знать не можешь,
могу, как это ни странно)) - сначала я предоставил приложение, а потом заказчику возжелалось XML-я(а как же без него-то?)
← →
sniknik © (2010-07-25 14:48) [6]> и все?
может и нет, я читал что делают xtml по xml с использованием xsd схемы... правда не использовал в таком ракурсе.
в твоем случае на xml протокол обмена, с этим работал, и тут всегда xsd использовался для проверки правильности созданного xml.
> Я-то хотел из базы сразу готовый возвратить
ну так посмотри чем возвращают в хелпе, есть там в параметрах xsd схема?
> а как же без него-то?
вообще то легко. да и не часто он реально нужен. правда не все это понимают, и пихают его во все дыры (и вот тут то уже без него никуда, т.к. проще сделать с ним чем переубеждать менеджеров/клиентов/и т.д. "поведшихся" на рекламу универсальности).
← →
картман © (2010-07-25 14:52) [7]
> sniknik © (25.07.10 14:48) [6]
> > а как же без него-то?
> вообще то легко. да и не часто он реально нужен. правда
> не все это понимают, и пихают его во все дыры (и вот тут
> то уже без него никуда, т.к. проще сделать с ним чем переубеждать
> менеджеров/клиентов/и т.д. "поведшихся" на рекламу универсальности).
>
это сарказм был. Ладно, когда пиарщики впаривают нам чупы-чупсы, но, блин, отсюда(ИТ) их было бы неплохо выгнать поганой метлой.
← →
Медвежонок Пятачок © (2010-07-25 16:21) [8]я с XML не работал, потому не знаю, нужна ли проверка, не нужна.
Нужна ли проверка тебе - решаешь лично ты.
Нужна ли проверка на том конце - решает тот конец лично.
Нужно ли тебе пихать схему в документ?
Допустим, что заказчик говорит, что нужно, потому что он типа проверяет твои данные по этой схеме.
Вопрос на засыпку:
Если ты и из вредности всунешь в документ схему, и проверка по схеме скажет что "все ок", но сама схема при этом будет не та, что у заказчика, то что он сможет реально проверить?
Ему придется требовать от тебя всунуть схему проверки схемы, а затем схему проверки схемы для проверки схемы....
... Ну в общем ты уже наверное понял, нужна ли тебе схема в документе.
← →
картман © (2010-07-25 16:58) [9]
> Ну в общем ты уже наверное понял, нужна ли тебе схема в
> документе.
Понял.
Всем спасибо.
← →
sniknik © (2010-07-25 17:16) [10]> я с XML не работал
я работал и поэтому (не люблю xml) объясню...
решать проверять себя или нет конечно тебе, но вот составлять xml (указывать в нем схемы) придется согласно протокола. и указать что то другое ты там не сможешь, т.к. проверка будет все одно, т.е. пустое место это как отсутствующий файл, указать в другое место тоже т.к. обычно это или локальные файлы (на той стороне), или внутренний сайт (как в примере [1]), т.е. несоответствие протоколу даст либо "нет ссылки" либо "нет файла" либо "нет доступа" и т.д. соответствие типов и данных это уже в последнюю очередь.
и вся эта байда чаще всего лишняя, т.к. просто промежуточный этап, дальше при использовании тоже есть проверки, и вот какая разница с какого этапа получать "значение "5" не входит в разрешённый диапазон "1-3""? только разнесение логики в разные места, и ошибки от этого, типа в одном месте одно в другом другое, что постоянно при более менее сложной логике, и при том что изменения в этих местах делаются разными людьми. (с тем же мтс однажды две недели долбили "неверные данные", а как они неверные если xsd других не позволяет, и не пропускает? после разобрались конечно, xsd они поправили, но осадочек остался).
> Ему придется требовать от тебя всунуть схему проверки схемы, а затем схему проверки схемы для проверки схемы....
нет, так как ты уже понял наверное по первому абзацу, доступа к схемам по которым та сторона проверяет у тебя нет, а тебе присылают всего лишь копии для самопроверки.
← →
Медвежонок Пятачок © (2010-07-25 17:22) [11]Это было размышлением на тему "вставлять мне xsd в сам документ или нет"
Он же собирался вынимать данные из сервера так, чтобы в документе был xsd
← →
makvell (2010-07-26 09:41) [12]Можно еще вот тут посмотреть: http://www.rsdn.ru/article/db/xmlsql.xml#ENJAC
Оно немного получше чем for xml auto. (сразу говорю - я этим не пользовался :) ) С проверкой по схеме в ссылке тоже есть, чутка повыше, но я не уверен, нужно ли оно в данном случае.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2010.10.31;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.003 c