Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
10-1169213639
truegosha
2007-01-19 16:33
2010.10.31
сервис и ADO (многопотоковый COM)


15-1279911922
antonn
2010-07-23 23:05
2010.10.31
посоветуйте по поводу музыки =)


2-1281369967
DROWSY
2010-08-09 20:06
2010.10.31
TIBCustomDataSet .RecordCount


2-1281113383
nik9632
2010-08-06 20:49
2010.10.31
Ищу удачный вариант участка кода программы


6-1228479138
dmitry_12_08_73
2008-12-05 15:12
2010.10.31
Ограничения на объём передаваемого файла с помощью TIdHTTP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский