|
|
|
генерация XML из БД по шаблону
|
|||
|---|---|---|---|
|
#18+
Коллеги, добрый день, Не слышали ли вы про какой-нибудь фреймворк для генерации XML из БД, который можно было бы использовать примерно так: function get_report_xml(p_report_id number) return XMLType is f xml_gen_framework; l_template clob; begin f := xml_gen_framework(); f.add_parameter('p_report_id',p_report_id); f.add_rowset('rep','select * from t_reports where id=:p_report_id'); f.add_rowset('org','select * from t_clients c where c.client_id=rep.client_id'); select text into l_template from t_templates where code='CONTRACT' f.set_template(text); return f.generate_xml(); end; При этом в t_templates.text хранится, например, следующее: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:fcsCustomerReportContractExecution schemeVersion="6.3" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://zakupki.gov.ru/oos/extegration/1 fcsExtegration.xsd" xmlns:ns2=" http://zakupki.gov.ru/oos/extegration/1" xmlns=" http://zakupki.gov.ru/oos/types/1"> <!---ds:rep--> <externalId><!---ds:rep.external_id--></externalId> <docDate><!---ds:rep.doc_date--></docDate> <versionNumber><!---ds:rep.version_number--></versionNumber> <publishOrg> <!---ds:org--> <regNum><!---ds:org.reg_num--></regNum> <fullName><!---ds:org.full_name--></fullName> <INN><!---ds:org.INN--></INN> <KPP><!---ds:org.KPP--></KPP> <responsibleRole><!---ds:org.responsible_role--></responsibleRole> <OGRN><!---ds:org.ogrn--></OGRN> </publishOrg> </ns2:fcsCustomerReportContractExecution> То есть это XML, в котором для каждого узла указан источник данных для этого узла. Для выборок – имя датасета, для полей-имя колонки Я сам искал такой фреймворк, но не пока не нашел… Узнал про dbms_xmlgen, dbms_xmlquery, Oracle XML Publisher. Но это тоже не совсем то. Но пока верю, что что-то подобное есть. Так получилось бы максимально разделить PL/SQL код и XML. Сейчас я трачу кучу времени чтобы разобраться в сотнях строк запросов из xmlelement и xmlagg. Читать их уж оочень неудобно…. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 19:37 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=114&tid=1883976]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 356ms |

| 0 / 0 |
