powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Перевести XSD в DW
8 сообщений из 8, страница 1 из 1
Перевести XSD в DW
    #35123407
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята, помогите
Что-то я совсем запарился, никак не могу создать dw полностью соответствующую схеме документа. Кто что знает- поделитесь
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Перевести XSD в DW
    #35123949
oleg_shishkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пример например для НДФЛ2
// catch все удалены
// получаем все элементы Справка
try
dom_elem_root.GetChildElements('Справка',elem)
end try

for i=1 to dw_xml.rowcount()
ds_1.setfilter('client_id='+string(dw_xml.object.client_id ))
ds_1.filter()
if ds_1.rowcount()>0 then
try
dom_bldr = create pbdom_builder
dom_doc_tmp = dom_bldr.BuildFromDatastore(ds_1)
end try
destroy dom_bldr

try
elem_root=dom_doc_tmp.GetRootElement()
end try

// получаем все элементы ДохВыч
try
elem1=el
elem_root.GetChildElements('ДохВыч',elem1)
end try

for i1=1 to upperbound(elem1)
try
elem1[i1].detach()
elem.GetChildElement('СвДохСтав').insertcontent(elem1[i1],elem.GetChildElement('СвДохСтав').GetChildElement('СГДНалПер'))
end try
next
end if
next
...
Рейтинг: 0 / 0
Перевести XSD в DW
    #35124031
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Олег
У меня просто вид шаблона получаемый из dw-ки отличается
С моей dw
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="123.xsd">
<data_row>
<member_id> 1 </member_id>
<contractor_id> 23 </contractor_id>
<id> 4 </id>
<role_ag>agent</role_ag>
<type_ag> 2 </type_ag>
<cashbook_id> 333 </cashbook_id>
<ispayer> 1 </ispayer>
<operation_type> 1 </operation_type>
<siebel_id> 1 -fk</siebel_id>
</data_row>
</data>
С оригинальной схемы
Код: plaintext
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.
<?xml version="1.0" encoding="UTF-8"?>
<!--Sample XML file generated by XMLSpy v2006 rel. 3 sp2 (http://www.altova.com)-->
<customer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Vlad_old\TEMP\xsd\policy\customer.xsd" role="1" IsPayer="-2" type="1" id="1" member_id="-0" contractor_id="-0" operation-type="-0" cashbook_id="1" siebel_id="String">
	<person>
		<surname>String</surname>
		<first-name>String</first-name>
		<middle-name>String</middle-name>
		<birth-date> 1967 - 08 - 13 </birth-date>
		<sex> 1 </sex>
		<inn>String</inn>
		<driving-experience> 3 . 1415926535897932384626433832795 </driving-experience>
		<papers>
			<paper type="1">
				<serial>String</serial>
				<number>String</number>
				<issue-date> 1967 - 08 - 13 </issue-date>
				<issue-place>String</issue-place>
			</paper>
		</papers>
		<ClassBM/>
	</person>
	<requisites>
		<addresses>
			<address type="N_ADDRESS_REG">
				<postcode>String</postcode>
				<region>String</region>
				<district>String</district>
				<city>String</city>
				<street>String</street>
				<house>String</house>
				<building>String</building>
				<construction>String</construction>
				<apartment>String</apartment>
				<KLADR_code>String</KLADR_code>
			</address>
		</addresses>
		<PhoneList>
			<Phone Type="Пейджер" Number="String"/>
		</PhoneList>
		<EMailList>
			<EMail Type="E-mail домашний" Number="String"/>
		</EMailList>
	</requisites>
	<comissions IsComissionKeeped="-0" percent="Text">
		<comission cover="String">
			<sum> 3 . 1415926535897932384626433832795 </sum>
			<currency>String</currency>
		</comission>
	</comissions>
	<isresident>- 0 </isresident>
	<covers>
		<cover>String</cover>
	</covers>
</customer>
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Перевести XSD в DW
    #35124042
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто никак не соображу, как dw должна выглядеть
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Перевести XSD в DW
    #35125790
oleg_shishkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вначале пропиши правильно корень , не <data_row> , а <customer>
пропиши правильно namespace - например через AddNamespaceDeclaration - или в редакторе правильно укажи Namespace
далее
1. В dw выбираешь все <customer>
получаем корень
elem_root=dom_doc_tmp.GetRootElement() // <customer>
// выбираем листья
dom_elem_root.GetChildElements('customer',elem)

2. Пишешь цикл, в котором для каждого <customer>, выбираешь листья <person>,<requisites> и др.
и подставляешь в главное . Т.е. для каждого <person>,<requisites> делашь dw и выбираешь их. Не забудь только перед присвоением сбрасывать листья, а то будут писаться одинаковые данные
for i1=1 to upperbound(elem)
try
// здесь надо ретривить листок
elem[i1].detach() // сбрасываем
// вставляем значение
elem.GetChildElement('СвДохСтав').insertcontent(elem1[i1],elem.GetChildElement('СвДохСтав').GetChildElement('СГДНалПер'))
end try
next
end if
next
...
Рейтинг: 0 / 0
Перевести XSD в DW
    #35127859
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Олег, тогда такой вопрос
Как реализуется елемент схемы <xs:choose>, а не <xs:sequence>?
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Перевести XSD в DW
    #35132430
oleg_shishkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
spas2001Олег, тогда такой вопрос
Как реализуется елемент схемы <xs:choose>, а не <xs:sequence>?

а где он упоминается - в том что ты кинул его нет
...
Рейтинг: 0 / 0
Перевести XSD в DW
    #35132606
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В самой схеме, по которой я делаю
Спасибо за помощь, в принципе я сделал
Просто в каждом случае своя xml получается
Может и не очень красивый код, но пока сойдет
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Перевести XSD в DW
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]