Имя: Пароль:
1C
1С v8
Как собрать схему из такого xml
,
0 Zixxx
 
16.07.13
08:50
Есть вот такой XML

[CODE]
<?xml version="1.0" encoding="windows-1251"?>
<response>
 <status>
   <code>0</code>
 </status>
 <result>
   <rows>14086</rows>
   <data>
     <row0>
       <campaignID>142052</campaignID>
       <campaignName>(moscow)(mainpage)header_sp_1</campaignName>
       <bannerID>809429</bannerID>
       <bannerName>(ad_zone)header_sp_1</bannerName>
       <placeID>488983</placeID>
       <placeName>(ad_zone)header_sp_1</placeName>
       <impressions>1</impressions>
       <clicks>0</clicks>
       <bannerUserDefined1>383001967f4c9-b985-11de-a311-001d604582c7</bannerUserDefined1>
       <bannerUserDefined2>38300569e7d3e-020f-11e2-8ceb-0025902cba63</bannerUserDefined2>
       <bannerUserDefined3>38300i18092n5</bannerUserDefined3>
       <bannerUserDefined4>3830095c71687-fbb0-11df-9419-001d604582c7</bannerUserDefined4>
       <bannerUserDefined5>0</bannerUserDefined5>
     </row0>
     <row1>
       <campaignID>142052</campaignID>
       <campaignName>(moscow)(mainpage)header_sp_1</campaignName>
       <bannerID>809429</bannerID>
       <bannerName>(ad_zone)header_sp_1</bannerName>
       <placeID>489193</placeID>
       <placeName>(ad_zone)header_sp_1</placeName>
       <impressions>5</impressions>
       <clicks>0</clicks>
       <bannerUserDefined1>383001967f4c9-b985-11de-a311-001d604582c7</bannerUserDefined1>
       <bannerUserDefined2>38300569e7d3e-020f-11e2-8ceb-0025902cba63</bannerUserDefined2>
       <bannerUserDefined3>38300i18092n5</bannerUserDefined3>
       <bannerUserDefined4>3830095c71687-fbb0-11df-9419-001d604582c7</bannerUserDefined4>
       <bannerUserDefined5>0</bannerUserDefined5>
     </row1>
     <row2>
       <campaignID>142052</campaignID>
       <campaignName>(moscow)(mainpage)header_sp_1</campaignName>
       <bannerID>809429</bannerID>
       <bannerName>(ad_zone)header_sp_1</bannerName>
       <placeID>490003</placeID>
       <placeName>(ad_zone)header_sp_1</placeName>
       <impressions>33</impressions>
       <clicks>0</clicks>
       <bannerUserDefined1>383001967f4c9-b985-11de-a311-001d604582c7</bannerUserDefined1>
       <bannerUserDefined2>38300569e7d3e-020f-11e2-8ceb-0025902cba63</bannerUserDefined2>
       <bannerUserDefined3>38300i18092n5</bannerUserDefined3>
       <bannerUserDefined4>3830095c71687-fbb0-11df-9419-001d604582c7</bannerUserDefined4>
       <bannerUserDefined5>0</bannerUserDefined5>
     </row2>
   </data>
 </result>
</response>
[/CODE]

Вся беда в том что повторяются строки <row0>, <row1>, <row2> и их десятки тысяч. Попробовал сделать так

[CODE]
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="a91ef465-75c7-41f9-b6d3-b57d9331cf0c"
          xmlns:xs="http://www.w3.org/2001/XMLSchema"
          targetNamespace="a91ef465-75c7-41f9-b6d3-b57d9331cf0c"
          attributeFormDefault="unqualified" elementFormDefault="qualified">

 <xs:complexType name="response">
   <xs:sequence>
     <xs:complexType name="status">
       <xs:sequence>
         <xs:element name="code" type="xs:string"/>
       </xs:sequence>
     </xs:complexType>
     <xs:complexType name="result">
       <xs:sequence>
         <xs:element name="rows" type="xs:string"/>
         <xs:complexType name="data">
           <xs:element name="rows???" type="tns:ЭлементСтроки" minOccurs="0" maxOccurs="unbounded"/>
         </xs:complexType>
       </xs:sequence>
     </xs:complexType>
   </xs:sequence>
 </xs:complexType>

 <xs:complexType name="ЭлементСтроки">
   <xs:sequence>
     <xs:element name="campaignID" type="xs:string" />
     <xs:element name="campaignName" type="xs:string" />
     <xs:element name="bannerID" type="xs:string" />
     <xs:element name="bannerName" type="xs:string" />
     <xs:element name="placeID" type="xs:string" />
     <xs:element name="placeName" type="xs:string" />
     <xs:element name="impressions" type="xs:string" />
     <xs:element name="clicks" type="xs:string" />
     <xs:element name="bannerUserDefined1" type="xs:string" />
     <xs:element name="bannerUserDefined2" type="xs:string" />
     <xs:element name="bannerUserDefined3" type="xs:string" />
     <xs:element name="bannerUserDefined4" type="xs:string" />
     <xs:element name="bannerUserDefined5" type="xs:string" />
   </xs:sequence>
 </xs:complexType>
 
</xs:schema>
[/CODE]

Но вопрос опять же как быть с rows??? которые повторяются с подстановкой 0 1 2 3 и т.д.?
1 AaNnDdRrEeYy
 
16.07.13
09:00
это xml случайно не из DataAdapter c коннектом к какой-то базе?
2 Zixxx
 
16.07.13
09:02
(1) Это статистика из AdFox
3 AaNnDdRrEeYy
 
16.07.13
09:04
я не контору имел в виду и не программу, а технологию.
если эти данные вытягиваются через средний уровень т.е dataAdapter который подключен к БД то можно напрямую забрать данные из БД, без всяких адаптеров которые такие xml выплевывают.
4 Zixxx
 
16.07.13
09:06
(3) Нет, это все что могут дать
5 Serginio1
 
16.07.13
09:06
6 Zixxx
 
16.07.13
09:14
(5) Так схему то я создаю либо вручную либо через Visual Studio. Но проблема в том что как быть с типами row0, row1, row2, ... row12254. Описывать каждый такой тип в схеме с запасом до row100000?
7 George Wheels
 
16.07.13
09:17
Я думаю только предварительно привести все row0, row1, row2, ... row12254 к виду <row>.
8 Serginio1
 
16.07.13
09:17
(6) Ясно. Интересно, кто же такой умный то?
Есть предложение перед загрузкой заменить все rowX на row
9 Zixxx
 
16.07.13
09:26
(7), (8) печально :(
10 slin-dev
 
16.07.13
09:30
скорее, вид должен быть подобным <row count="1">
11 Zixxx
 
16.07.13
09:32
(10) Не совсем понял
12 Serginio1
 
16.07.13
09:55
(9) Через чтениеXML и ЗаписьXML задача простая
Программист всегда исправляет последнюю ошибку.