![]() |
|
IT и Связь Обсуждение "айтишных" вопросов и средств связи |
![]() |
|
Опции темы | Опции просмотра |
![]() |
#1 |
Просто Зануда
|
![]()
Софорумчане, а среди вас нет специалистов по XML Schema? Есть вопрос про наследование и переодпределение типа элементов.
__________________
The misuse of language induces evil in the soul © Socrates ![]() |
![]() |
![]() |
Зарегистрируйтесь или войдите под своим именем, чтобы спрятать этот рекламный блок |
![]() |
#3 |
Заслуженный Участник
|
![]()
Меня трудно назвать экспертом по схеме, но определенный опыт имеетсо.
Можно услышать вопрос если он еще актуален? Желательно четко, а также с подробностями для чего именно (просто валидация или биндинг). Чем смогу тем помогу. ![]() |
![]() |
![]() |
![]() |
#5 |
Заслуженный Участник
|
![]()
Если я правильно понял, то задача все-таки ближе к биндингу. Не совсем понятен смысл "для начала"... Надеюсь это не экзамен.
![]() Если честно, то этот вопрос представляет собой чисто академический интерес. Забегая наперед, могу сказать, что заниматься строгим натягиванием ХМЛя на ООП (судя по диаграмме классовименно это вы пытаетесь делать) определенно бессмысленно. Но вы сами в этом убедитесь позднее. Во-первых, я бы убрал слово "должна" из постановки задачи. Вариантов представления этой диаграммы в ХМЛь - море. Я приведу только часть из них, самые простые. Небольшое теоретическое отступление: наследование (derivation) в ХМЛе имеет несколько другой смысл, чем в ООП. Здесь можно либо расширять (extension) либо ограничивать (restriction). Но это касается только объявления типов. Если учесть их использование, то количество вариантов становится втрое больше. Это классический choice, element и type substitution. Примеры прилагаются. Я ограничился только 2 наследниками для простоты. Простите, но у вас будет какой-то конкретный вопрос или продолжим изыскания на тему? |
![]() |
![]() |
![]() |
#6 |
Просто Зануда
|
![]()
Kot, спасибо за примеры. Очевидно, что скромничаете вы напрасно и предмет понимаете достаточно хорошо
![]() Однако, к сожалению, все приведённые примеры уже были испробованы и не являются удовлетворительными, так как не позволяют одновременно добавлять новые элементы в "дочерний" тип и переопределять тип элементов из "родительского" типа. Как вы правильно заметили, наследование в XSD "имеет несколько другой смысл", то есть его там как такового нет, что и является причиной нашей сегодняшней головной боли. Приведённый пример вовсе не академичен, взят из реального проекта, в котором я сейчас участвую. Он достаточно прост, но демонстрирует проблему с переопределением типа. В случае с многоуровневыми иерархиями классов, которые состоят в разнообразных отношениях между собой и с другими классами, всё становится ещё интереснее. Цели "строго натянуть" XML на ООП нет, но есть необходимость формализовать преобразование UML class diagrams в XSD, сумев передать смысл модели. Пока достаточно удачно это получается, за исключением нахождения красивого решения для переопределения типов. Так как я далеко не специалист по XSD, то вот и пытаюсь по форумам и знакомым найти такового чтобы спросить совета. Ещё раз спасибо за помощь.
__________________
The misuse of language induces evil in the soul © Socrates ![]() |
![]() |
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщ. |
Типа Расследование | Wolf | Общие темы | 2 | 22.10.2005 13:43 |
Типа оптическая иллюзия | Arte | Само приползло | 6 | 11.07.2005 23:10 |
СПАМ типа от Telestunt | nexus | Общие темы | 7 | 23.06.2005 17:19 |
по мотивам ЖЖ (сплошной ненорматив типа ;) 18+ only | Arte | Само приползло | 0 | 10.06.2005 17:01 |