Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > XML, XSL > использовать XSD и XSL находящиеся в архиве


Автор: Compositum 20.4.2012, 10:53
Доброго времени суток.

Можно ли в XML файле привязываться к XSLT и XSD файлам, которые упакованы в некоторый архив? Если "да", то как это правильно делать?

Спасибо

Автор: diadiavova 20.4.2012, 12:47
Если используемый тобой софт поддерживает такую возможность, то почему бы и нет? Как сделать - смотри в документации по софту. Браузеры, насколько мне известно, такой возможности не поддерживают и в стандартах не предусмотрено. Хотя могу ошибаться.

Автор: Compositum 20.4.2012, 13:07
я как раз о браузерах и спрашивал. )

Автор: diadiavova 20.4.2012, 13:09
О них как раз в моем ответе тоже было  smile 

Автор: magelan 20.4.2012, 14:24
Мне вообще странно видеть схему в одной строке со стилями
есть XML-XSD
есть XML-XSL

зачем что-то менять?
первая связка необходима одним прогерам, чтобы защититься от других при всевозможных транспортах. XML/XSD вообще в обычной жизни цели не имеет, кроме маркетинговой, т.е. программисты тем самым свою значимость увеличивают.
Ну либо есть 100 китайцев пишущих половину проги и 100 индусов пишущих другую половину, ну и адын умный пацан из знойной Швеции, который чтобы они не поубивали друг-друга дал им схему (по русски - задал словарь для XML)

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

Любой XSLT схему пользовать не будет, для этого есть валидаторы.

Вот вы представте как оно на практике то быть должно XML->XSD ->XSL
Приходит клиент, говорит Рыжую (задал XSD), мадам смотрит критически на своих девочек, а рыжых то нет...  клиент не доволен (404 file not found)

Терь при нормальном полете XML->XSL
Тот же клиент, тоже хочет Рыжую, мадам смотрит критически на своих девочек, стилист сбоку (XSL) давайте парики оденем, ок, говорит мадам, выходят 7 девочек в париках, клиент подпрыгивает от восторга, ругает предыдущий дом терпимости( XML->XSD ->XSL), снимает двоих, мадам при деньгах. клиент счастлив, девочки сыты.

Автор: diadiavova 20.4.2012, 14:57
Цитата(magelan @  20.4.2012,  15:24 Найти цитируемый пост)
вообще в обычной жизни цели не имеет, кроме маркетинговой, т.е. программисты тем самым свою значимость увеличивают.

А как же хмл-редакторы, поддерживающие схему и выдающие по ней подсказки? Ну и вообще, бывают ситуации, когда эта связка полезна, но согласен, что это частные случаи.

Автор: Compositum 20.4.2012, 17:52
XSD нужен для проверки валидности документа, а не для значимости. Если мне пришлют документ, который я должен буду послать в программную обработку, то вполне логично, что я сначала проверю документ на валидность, чтобы в дальнейшем не заниматься глупой работой, выискивая в чём же дело, почему отчёт не генерится... XSLT нужен для визуализации документа в браузере. Файлы XSD и XSLT я храню в отдельном каталоге, содержимое которого не потребуется изменять, т.к. данные, хранящиеся в нём - статичны. 

Автор: magelan 23.4.2012, 11:56
сморите, вы сами даже эти действия разделили.
- прислали - свалидировал
- запросили отчет - визуализировал.
подвоха не чувствуете? Мухи и котлеты вместе.

Ну и то что я вам пытался сказать но вы не поняли... "мне пришлют" - значит недостоверный источник.

Если я пишу модули одной системы, которые должны общатся между собой посредством XML, то либо правая рука не знает, что делает левая и тогда мне нужны накладные расходы на валидацию и прочее прочее... вообще проверки xml мне прислали или вирус - будут в порядке вещей.
Либо у меня с головой и документацией все в порядке и моя система обменивается xml-ями на порядок быстрее тех, что программисты пишут для своей значимости

Автор: Compositum 23.4.2012, 12:05
Цитата(magelan @  23.4.2012,  11:56 Найти цитируемый пост)
подвоха не чувствуете? Мухи и котлеты вместе.

Ничего подобного.
Цитата

Если я пишу модули одной системы, которые должны общатся между собой посредством XML, то либо правая рука не знает, что делает левая и тогда мне нужны накладные расходы на валидацию и прочее прочее... вообще проверки xml мне прислали или вирус - будут в порядке вещей. 

чтобы не наступать в гуано - нужно смотреть под ноги. Прежде чем приступать к программной обработке документа, желательно убедиться в его валидности, кем бы он ни был составлен. Это снизит вероятность возникновения непредвиденных ошибок в приложении при обработке этого документа. Проверка на валидацию много времени не занимает, а результат стоит того. вы экономите не на том, на чём это стоит делать. Я нигде не писал о проверке на вирусы - лишь о валидации XML. Кроме того, если сторонние программисты захотят работать с моим XML - им достаточно будет посмотреть его XSD схему, чтобы понять структуру и ограничения.
Цитата

Либо у меня с головой и документацией все в порядке и моя система обменивается xml-ями на порядок быстрее тех, что программисты пишут для своей значимости 

"на порядок быстрее" - устраивали замеры производительности? потеря какой-то доли секунды стоит того, чтобы проверить документ на корректность. вас никто не заставляет юзать XSD. Я пишу их не для значимости. Что либо разжёвывать и пояснять - не вижу смысла.

Автор: magelan 23.4.2012, 12:29
объясняю, раз разговор про xsl тоже идет.
у меня веб, запросов на XML приходит в среднем 5-6 в секунду, в пики до 30. Да кэши и все остальное работает.  
Если вы мне 1% производительности валидацией срежете, то это будет означать, что мне еще один колокейшен сервер нужен.
Значимость программиста за 3к баксов... + работа админа + накладные расходы при репликации, чудно. в лес.
А вы можете не разжевывать и ничего клиенентам не объяснять.

Автор: Compositum 23.4.2012, 12:50
у меня всё это лежит на локальных машинах пользователей, а не на вэб сервере. Выглядит следующим образом - смотрите в прикреплённом архиве файл readme.html.

Добавлено через 2 минуты и 50 секунд
там я все XSD и XLST засунул в отдельный подкаталог ./support. Эти файлы используются различными XML файлами, хранящимися в др. каталогах.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)