powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / xsd. Как создаются такие сложные ?
20 сообщений из 20, страница 1 из 1
xsd. Как создаются такие сложные ?
    #38854624
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.
Появилась задача разбираться со СМЕВ. Я пока еще только на очень дальних подступах, поэтому появляются различные вопросы.
Но это лирика.

Подскажите пожалуйста, какими средствами вообще формируются такие сложные XSD схемы ?

(Даю совершенно левую ссылку, то, что нагуглилось и имеет прямое отношение к СМЭВ)

https://github.com/holinov/Orit/blob/master/Orit.Egrul.WebPart/docs/fns/WSDL_????????(SID0003130)/smev.xsd
Код: xml
1.
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/


и вот, собственно сам файл, на который ссылка:
https://github.com/holinov/Orit/blob/master/Orit.Egrul.WebPart/docs/fns/WSDL_????????(SID0003130)/xmldsig-core-schema.xsd

В далекой перспективе, придется создать Web (на C#-WCF) сервис для клиентов. Придется создавать свою объектную модель и, соотвественно, создавать подобные схемы. Как это делается ? Чтобы еще и с разделением на разные файлы.
...
Рейтинг: 0 / 0
xsd. Как создаются такие сложные ?
    #38854736
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek Подскажите пожалуйста, какими средствами вообще формируются такие сложные XSD схемы ?Конкретно эти — руками. И нет в них ничего сложного, ты еще не видел формального описания xsl.
...
Рейтинг: 0 / 0
xsd. Как создаются такие сложные ?
    #38854750
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyты еще не видел формального описания xsl.А в нем, что сложного?
...
Рейтинг: 0 / 0
xsd. Как создаются такие сложные ?
    #38854793
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Antonariyты еще не видел формального описания xsl.А в нем, что сложного?для начала, оно объемом около 150 кб
...
Рейтинг: 0 / 0
xsd. Как создаются такие сложные ?
    #38855047
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyProBiotek Подскажите пожалуйста, какими средствами вообще формируются такие сложные XSD схемы ?Конкретно эти — руками. И нет в них ничего сложного, ты еще не видел формального описания xsl.

Думаете руками ?
...
Рейтинг: 0 / 0
xsd. Как создаются такие сложные ?
    #38855053
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сразу уж говори, сколько раз нужно написать "руками", чтобы закрыть этот вопрос. Не хочу бессмысленные посты плодить.
...
Рейтинг: 0 / 0
xsd. Как создаются такие сложные ?
    #38855082
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyСразу уж говори, сколько раз нужно написать "руками", чтобы закрыть этот вопрос. Не хочу бессмысленные посты плодить.

Нет, просто я думал что эта wsdl была сделана на основе объектного сервиса. И было не ясно, как получилось, что схема была разделена на несколько файлов.
Ну, к примеру, когда мы делаем WCF сервис, то потом можно снять с него wsdl. И все будет в одном большом файле.

А вы, получается, говорите, что разработчики СМЭВ сначала написали схему xsd а потом по ней делали сервис ? Я просто не знаю такого подхода и он мне очень интересен ! Как это делается ?

Мне нужно еще будет сервис пилить для клиентов. Т.е. нужно будет проделывать это.

Как это делается подскажите пожалуйста примерно. Как сделать схему xsd а потом по ней WCF службу - никогда еще пока не встречал такого руководства.
...
Рейтинг: 0 / 0
xsd. Как создаются такие сложные ?
    #38855096
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне приходилось работать с Hl7 стандартном. У него схема - вообще свихнутся можно:
https://github.com/CONNECT-Solution/CONNECT-DocumentManager/tree/master/src/main/resources/wsdl/schemas/HL7V3

Там были файлики в которых было по 10 <xs:include schemaLocation> - scvUtils их даже не всегда мог прожевать :)
Мне все было интересно, как же ее создавали то :) Все думал блин.
...
Рейтинг: 0 / 0
xsd. Как создаются такие сложные ?
    #38855131
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek Ну, к примеру, когда мы делаем WCF сервис, то потом можно снять с него wsdl.Схемы сервисов имеют конкретный вид.

ProBiotek А вы, получается, говорите, что разработчики СМЭВ сначала написали схему xsd а потом по ней делали сервис ?Скорее всего это делалось параллельно. Эти xsd не похожи на известные мне стандарты.

В принципе сгенерировать можно что угодно, я вот с помощью xml/xsl генерю код js, vb, тот же xsd. Может и эти xsd были сгенерированы, но генератор точно не из стандартных, и они однозначно были допилены руками — русских комментариев генератор придумать не в состоянии.

ProBiotek Как это делается подскажите пожалуйста примерно. Как сделать схему xsd а потом по ней WCF службу - никогда еще пока не встречал такого руководства.Так не делается. Смысл WCF в обратном - пишешь чисто функционал, а среда разработки генерирует описание. Я бы мог провернуть обратную операцию, сгенерировать интерфейс сервиса, у меня есть инструмент, но это не описание WCF.

Из данного описания можно нагенерить пустых классов с помощью стандартного функционала студии, но сервис, ими манипулирующий, нужно писать самому.
...
Рейтинг: 0 / 0
xsd. Как создаются такие сложные ?
    #38855166
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyТак не делается. Смысл WCF в обратном - пишешь чисто функционал, а среда разработки генерирует описание. Я бы мог провернуть обратную операцию, сгенерировать интерфейс сервиса, у меня есть инструмент, но это не описание WCF.

Из данного описания можно нагенерить пустых классов с помощью стандартного функционала студии, но сервис, ими манипулирующий, нужно писать самому.

Ну да. Именно это мне еще и нужно будет потом сделать :)
А если конкретней - то мне нужно будет сделать Поставщика Информации для СМЭВ - подключить его к общей сети. Вот и ломаю голову сейчас, как бы сгенерить схемы подобные
https://github.com/holinov/Orit/blob/master/Orit.Egrul.WebPart/docs/fns/WSDL_????????(SID0003130)/smev.xsd

Не знаете способа ? Чтобы служба WCF отдавала вот такую вот WSDL с такими описаниями, как по ссылке.

А может я не прав ? Может нужно делать обычную службу WCF, снимать с нее WSDL, допиливать ее руками - по подобию того, что по ссылке, и вставлять в документацию ? А сама служба будет с минималистичным WSDL.
...
Рейтинг: 0 / 0
xsd. Как создаются такие сложные ?
    #38855218
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek Не знаете способа ? Чтобы служба WCF отдавала вот такую вот WSDL с такими описаниями, как по ссылке.Это не WSDL. Это описание сферических классов в вакууме.

ProBiotek А может я не прав ? Может нужно делать обычную службу WCFДа.

ProBiotek снимать с нее WSDL, допиливать ее руками Нет. Как я понимаю, методы сервиса должны тупо возвращать xml-текст, который должен проходить валидацию этими СМЭВ-схемами. По такому принципу сделан сервис ФИС ЕГЭ, который тоже является WCF-сервисом. Описаний передаваемого xml он соответственно не содержит, схемы выложены на сайте.

Соответственно, вот такие случаи:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
	<complexType name="KeyInfoType" mixed="true">
		<choice maxOccurs="unbounded">
			<element ref="ds:KeyName"/>
			<element ref="ds:KeyValue"/>
			<element ref="ds:RetrievalMethod"/>
			<element ref="ds:X509Data"/>
			<element ref="ds:PGPData"/>
			<element ref="ds:SPKIData"/>
			<element ref="ds:MgmtData"/>
			<any namespace="##other" processContents="lax"/>
			<!-- (1,1) elements from (0,unbounded) namespaces -->
		</choice>
		<attribute name="Id" type="ID" use="optional"/>
	</complexType>

нужно обрабатывать вручную, то есть задавать значение только одному из свойств.
...
Рейтинг: 0 / 0
xsd. Как создаются такие сложные ?
    #38855310
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy[/src]нужно обрабатывать вручную, то есть задавать значение только одному из свойств.

Объясните пожалуйста, что имелось ввиду ? Я не понял. Что значит обрабатывать вручную, задавать значение только одному из свойств ?
...
Рейтинг: 0 / 0
xsd. Как создаются такие сложные ?
    #38855336
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да.

Тот пример не очень, вот более наглядный:

Код: xml
1.
2.
3.
4.
5.
6.
7.
	<complexType name="KeyValueType" mixed="true">
		<choice>
			<element ref="ds:DSAKeyValue"/>
			<element ref="ds:RSAKeyValue"/>
			<any namespace="##other" processContents="lax"/>
		</choice>
	</complexType>

Этот кусок превращается в класс:
Код: vbnet
1.
2.
3.
4.
Public Class KeyValueType
    Dim DSAKeyValue
    Dim RSAKeyValue
End Class


Если сделать так:
Код: vbnet
1.
2.
3.
Dim kvt As New KeyValueType
kvt.DSAKeyValue = xxx
kvt.RSAKeyValue = yyy

то после сериализации в xml и отправки вернется ошибка валидации — choice предполагает наличие значения или у DSAKeyValue или у RSAKeyValue, но не у обоих одновременно. VB/C# не могут проконтролировать этот момент, поэтому нужно самому написать код так, чтобы оба значения не были заданы ни при каких обстоятельствах.
...
Рейтинг: 0 / 0
xsd. Как создаются такие сложные ?
    #38855349
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

Спасибо.
...
Рейтинг: 0 / 0
xsd. Как создаются такие сложные ?
    #38855585
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

Еще вопросик разрешите.

Как в WCF описать контракт, в котором для свойства, задать условие - чтобы вот в WSDL оно трансформаировалось в это самое "<choice>" ?
...
Рейтинг: 0 / 0
xsd. Как создаются такие сложные ?
    #38855621
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот choice не имеет никакого отношения к WSDL.
...
Рейтинг: 0 / 0
xsd. Как создаются такие сложные ?
    #38876369
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy По такому принципу сделан сервис ФИС ЕГЭ, который тоже является WCF-сервисом. Описаний передаваемого xml он соответственно не содержит, схемы выложены на сайте.


Можете дать ссылочку на схемы пожалуйста. Гуглингом не нашел. нашел лишь кучу предложений интеграторов по подключению к этой ФИС.
Мне очень хочется посмотреть на их схемы - тем более, раз у них сервис написан на WCF, уж очень интересно посмотреть как у них вышло описание форматов сообщений СМЭВ.

Или может просто скинете эти схемки - если сайт не доступен ?
...
Рейтинг: 0 / 0
xsd. Как создаются такие сложные ?
    #38876622
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekМне очень хочется посмотреть на их схемы - тем более, раз у них сервис написан на WCF, уж очень интересно посмотреть как у них вышло описание форматов сообщений СМЭВ. http://priem.edu.ru/Document.aspx?id=292267502335

Только эти схемы не имеют ни малейшего отношения к WCF. И тем более к СМЭВ.

Вот сам сервис (тестовый): http://priem.edu.ru:8000/import/ImportService.svc, только публикация контракта (WSDL-схемы) отключена.

Ты хронически не догоняешь одной вещи: WSDL описывает методы, типы их аргументов и типы возвращаемых значений. Тип ВСЕХ принимаемых и возвращаемых значений у методов ФИС ЕГЭ - текст. И не важно, текст стихов Бродского это или что еще. Не важно с точки зрения WSDL. Однако внутри метода есть проверка, реализованная руками программиста, что за текст пришел — стихи или xml, в правильном формате этот xml или нет. Формат проверяется с помощью схем, ссылку на которые я дал. Все это происходит за рамками понятий WCF/WSDL.

Если бы ты смог подключить к проекту этот сервис как веб-ссылку, то обнаружил бы, что все методы выглядят примерно так:

Код: vbnet
1.
2.
3.
Public Function Import(sText as String)  as String
Public Function Dictionary(sText as String)  as String
Public Function Delete(sText as String)  as String

и никакого намека на то, что описано в схемах по ссылке.
...
Рейтинг: 0 / 0
xsd. Как создаются такие сложные ?
    #38876814
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

Я и сам недавно допер, что общение в смэв происходит XMLками (именно что передача параметров происходит в виде XML. На сайте госуслуг куча документаций на разные сервисы - из них это видно.
Как раз думал - а вдруг этот сервис ЕГЭ другой.

Ну чтож. Это даже упрощает дело ! Неопределенности нет.
...
Рейтинг: 0 / 0
xsd. Как создаются такие сложные ?
    #39143202
Wayfarer_Ng
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ProBiotekМне приходилось работать с Hl7 стандартном. У него схема - вообще свихнутся можно. Мне все было интересно, как же ее создавали то :) Все думал блин.

В HL7v3 схемы создаются с помощью V3Generator на основе моделей созданных в Visio (RMIM Designer). Именно по этой причине нет прямого соответствия между моделью (где, например, пациент указан как subjectOf) и полученной схемой (где тот же пациент сериализован как subjectOf3, к примеру).
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / xsd. Как создаются такие сложные ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]