|
xsl шаблон для кодогенератора
|
|||
---|---|---|---|
#18+
Делаю небольшой PLSQL кодогенератор API для таблиц БД. Процедуры обертки для insert, update, delete, exist и прочей механики. Готовые решения есть, но мне не нравятся, гибкости не хватает - чтобы банально изменить формитирование кода нужно лезть в код, выдерать куски и т.д., т.е. неудобно. Появилась идея аккуратно сделать это с помощью xsl-шаблонов, генерировать нужный код на основе xml-описаня таблиц, т.е. из этого: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Нужно получить примерно это: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
Но даже для такого простого результата xsl-шаблон у меня получился довольно заковыристым: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65.
Циклы, различные проверки на последнюю строку, в зависимости от которых ставятся переносы строк и т.д. Дальше будет только хуже. Подскажите как лучше сделать? Может адаптировать исходный xml, например так: Код: xml 1. 2. 3. 4. 5. 6. 7.
Т.о. xsl будет попроще, но получается, что в xml-структуру попадают элементы форматирования? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2012, 15:07 |
|
xsl шаблон для кодогенератора
|
|||
---|---|---|---|
#18+
Максим Н Подскажите как лучше сделать?Забить на переносы строк? Если код генерится, то как правило для немедленного исполнения и отправки в астрал, а не для оценки придирчивыми искусствоведами. Максим НТ.о. xsl будет попроще, но получается, что в xml-структуру попадают элементы форматирования?У вас на выходе текст, а не xml, о какой xml-структуре идет речь? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2012, 15:28 |
|
xsl шаблон для кодогенератора
|
|||
---|---|---|---|
#18+
AntonariyЗабить на переносы строк? Если код генерится, то как правило для немедленного исполнения и отправки в астрал, а не для оценки придирчивыми искусствоведами. В данном случае (да и вообще) офрмление кода очень важно - чтобы быстро разобраться что к чему и быстро внести нужные поправки. Чтобы сгенерированный код соостветсвовал стандартам офрмления остального кода проекта. AntonariyУ вас на выходе текст, а не xml, о какой xml-структуре идет речь? Я говорю об исходном xml, где просто описана таблица. Можно добавить информацию о переносах строк, запятых и т.д. туда. Но тогда xml перестанет быть универсальным. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2012, 16:01 |
|
xsl шаблон для кодогенератора
|
|||
---|---|---|---|
#18+
1) В XSL использовать отступы. Будет легче читать 2) Вложенные <xsl:for-each> заменить на один Код: xml 1.
3) Все <xsl:for-each> заменить на <xsl:apply-templates> 4) Вот этоМаксим Н Код: xml 1.
заменить на Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9.
5) Вот этоМаксим Н Код: xml 1.
Заменить на Код: xml 1.
6) ЭтоМаксим Н Код: xml 1. 2. 3. 4. 5.
заменить на Код: xml 1. 2. 3.
Когда все сделаете код сильно упростится. После этого можете выложить его еще раз. Мы его еще подправим ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2012, 16:24 |
|
|
start [/forum/topic.php?fid=14&gotonew=1&tid=1332690]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 128ms |
0 / 0 |