SQL в XML в XSLT в HTML или SQL в HTML? - PullRequest
5 голосов
/ 02 февраля 2011

В настоящее время в системе, над которой я работаю, мы, кажется, преобразуем наши результирующие наборы SQL в XML, а затем используем XSLT для генерации окончательного HTML.В большинстве случаев мы никогда не используем XML, кроме как через XSLT, для создания корректного HTML.

Сегодня я обнаружил, что смотрю на наш код и думаю про себя: «Почему бы не пропустить некоторые шаги и перейти прямо от результатов SQL к HTML?»Есть ли (из вашего опыта / знаний) какая-либо причина, почему наш нынешний подход должен быть когда-либо реализован?Мне просто кажется, что нужно отслеживать больше работы / файлов.

Кроме того, кто-нибудь знает, какой подход является технически более правильным, и почему этот подход является правильным?Или это просто вопрос предпочтений?Я попытался поискать здесь и в Google, и мне так и не удалось найти убедительную причину, так или иначе.Пожалуйста, помогите мне!

Ответы [ 4 ]

2 голосов
/ 02 февраля 2011

Наша система также использует Oracle XML + XSLT.

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

для CSV, это просто простое редактирование файла XSLT без необходимости изменять структуру SQL как XML.Для графика все, что вам нужно, это проанализировать XML, и все.мы также можем сделать нашу систему сервисом, который позволит другим системам анализировать xml для удовлетворения их потребностей.

Такой подход действительно увеличивает издержки вашей системы, но дает вам возможность иметь открытое представление данных.(думаю, оно того стоит)

1 голос
/ 02 июля 2011

Одна проблема, связанная с простым написанием запроса, генерирующего HTML, заключается в том, что «группировка» является проблемой.

Например, если вы хотите отобразить все города в каждой стране и каждая страна должна находиться в заголовкетег, как вы пишете оператор SQL, который идентифицирует изменение в стране?Это сложно или невозможно без хранимой процедуры с курсором.

select CountryName, CityName
from Country, City
where CountryId = CityId

Но, учитывая, что эта группировка не проблема для вас, и вы не хотите выводить в других форматах, а HTML не слишком сложени вы не ожидаете, что формат HTML сильно изменится, тогда возможна прямая трансляция SQL в HTML.Я бы очень быстро.

1 голос
/ 02 февраля 2011

если вы используете XML, вы можете позже изменить XSLT, чтобы использовать другое представление, а не только HTML если вы решите перейти непосредственно к HTML, вы можете сэкономить некоторые усилия сегодня, но нанести ущерб будущей возможности обновления, если это слово

0 голосов
/ 02 февраля 2011

Я не верю, что существует «технически более правильная» версия.Все сводится к тому, что мы вежливо называем «предпочтение», но обычно это больше похоже на предубеждение, то, что они делали «на моей последней работе» и что заставляет менеджера чувствовать себя в безопасности.

Кроме того, помните третий вариант, передавайте ихкак JSON для умного клиента JS, который знает, что с ними делать.Есть много способов сделать это.Плюс ко всем остальным вариантам.

Но в любом случае, я сам предпочитаю результаты SQL -> HTML, потому что считаю это проще.Результаты SQL приходят в собственном формате и переходят непосредственно к формату назначения, без промежуточных шагов, которые вызывают головные боли при обслуживании.

Некоторые скажут, что если это делается в коде, это не так гибко, потому что вы должныизменить код, но если вы посмотрите на то, что связано с изменением XSLT и понимаете его правильно, я бы предпочел возиться с кодом.

БЫСТРОЕ РЕДАКТИРОВАНИЕ: Помните также, что изменениечтобы запрос (например, новые поля) должен распространяться через базовый запрос, преобразование в XML и XSLT, поверх изменения дизайна окончательного макета.Если вы просто перейдете на SQL-> HTML, вы просто измените запрос и последний шаг, опять же, никаких промежуточных шагов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...