|
|
ru.website- RU.WEBSITE ------------------------------------------------------------------- From : Serge Shikov 2:5020/400 27 Jun 2001 10:09:04 To : All Subject : Re: Литература по PHP -------------------------------------------------------------------------------- pavel kurnosoff wrote: > > >> хы. тоже мне, бином ньютона... > >> > >> {% INCLUDE dates/input format="%04y/%02m/%02d" lang="ru" > >> name="start_date" value=db.getrow("select date from table") %} > >> > >> сам поверишь, что большинство (если не все) твоих "вложенных xml'ей" > >> я легко уложу на tt2'шный процедурный язык (который здесь, imho, > >> более адекватен) или доказывать? > SS> Доказывай, доказывай. Пока я вижу, что ты cocoon esql в глаза не > SS> видел, и слабо представляешь, чего там можно навкладывать. > я представляю, что такое xml. Hе похоже, однако. > ничего серх-xml-ного твой esql сделать не может. > ну никак. а xml я любой уложу. Рассказываю. Имеем скажем базу данных. Из которой извлекаем нечто, описанное select-ом: <esql:connection> <esql:driver>org.postgresql.Driver</esql:driver> <esql:dburl>jdbc:postgresql://localhost/test</esql:dburl> <esql:username>test</esql:username> <esql:password>test</esql:password> <esql:execute-query> <esql:query>select id,name from department_table</esql:query> <esql:results> <header>header info</header> <esql:row-results> <department> <id><esql:get-int column="id"/></id> <name><esql:get-string column="name"/></name> <esql:execute-query> <esql:query>select name from user_table where department_id = <esql:parameter type="int"> <esql:get-int ancestor="1" column="id"/> </esql:parameter> </esql:query> <esql:results> <esql:row-results> <user><esql:get-string column="name"/></user> </esql:row-results> </esql:results> </esql:execute-query> </department> </esql:row-results> <footer>footer info</footer> </esql:results> </esql:execute-query> </esql:connection> (Это кокуновский подход, есть еще и поудобнее средства, XLE например). Заметь - тут два вложенных select, так что твой db.getrow("select date from table") уже пошел лесом - у тебя уже будет два цикла. Эту вот фигню написал _программист_, знакомый со структурой базы. Дальше он сказал другому человеку, что тот получит данные такой структуры: <header>...</header> <department> <id>...</id> <name>...</name> <user>...</user> </department> ... <footer>footer info</footer> Теперь представим себе, что в каждой строке этого безобразия есть поле типа дата, и наш контрол dates:input надо повторить тоже для каждой строки. Каким образом ты собрался ссылаться на одно из полей, выбранных твоим select-ом - я не понимаю. Я лично сошлюсь на него при помощи XPath - потому что у меня _на самом деле_ все в XML. Что интересно - на данном этапе человек уже может быть дизайнером. Ему максимум что надо знать, так это XPath, который в общем выучить не сложно. Во всяком случае что-то типа //department/user/birthdate напишет любой дурак. А у тебя на самом деле все будет в перле и в его переменных, которые тебе придется заводить для этой задачки. А все почему - потому что ты не можешь вкладывать свои операции %INCLUDE друг в друга - у них синтаксис не XML-ный. Потому что у них нету контекста, как в XML-документе, взаимосвязей типа родитель-ребенок-сосед и т.п. Поэтому у тебя XPath нету, а у меня - есть. Может ты XML и знаешь, но пока ты предлагаешь совершенно не-XML-ные решения, на мой взгляд совершенно кривые и негибкие. --- ifmail v.2.15dev5 * Origin: home (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.website/28257657a292.html, оценка из 5, голосов 10
|