Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Перевести XSD в DW / 8 сообщений из 8, страница 1 из 1
11.02.2008, 10:42
    #35123407
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перевести XSD в DW
Ребята, помогите
Что-то я совсем запарился, никак не могу создать dw полностью соответствующую схеме документа. Кто что знает- поделитесь
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
11.02.2008, 13:11
    #35123949
oleg_shishkin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перевести XSD в DW
пример например для НДФЛ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
11.02.2008, 13:31
    #35124031
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перевести XSD в DW
Спасибо Олег
У меня просто вид шаблона получаемый из 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
11.02.2008, 13:33
    #35124042
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перевести XSD в DW
Просто никак не соображу, как dw должна выглядеть
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
12.02.2008, 09:28
    #35125790
oleg_shishkin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перевести XSD в DW
Вначале пропиши правильно корень , не <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
12.02.2008, 17:21
    #35127859
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перевести XSD в DW
Олег, тогда такой вопрос
Как реализуется елемент схемы <xs:choose>, а не <xs:sequence>?
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
14.02.2008, 12:48
    #35132430
oleg_shishkin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перевести XSD в DW
spas2001Олег, тогда такой вопрос
Как реализуется елемент схемы <xs:choose>, а не <xs:sequence>?

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


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