powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Проблема с аннотированной схемой для загрузки XML через SQLXMLBulkLoad.
4 сообщений из 4, страница 1 из 1
Проблема с аннотированной схемой для загрузки XML через SQLXMLBulkLoad.
    #34772701
Alexey^^
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день уважаемые Форумчане.
Передо мной была поставлена задача: recordset, сохранённый в xml файл, загрузить в определённую таблицу MSQL 2000. Прочитал довольно много статей по этому поводу, но так и не понял, как решить следующую проблему:
После сохранения recordset.Save('c:\table1.xml',adPersistXML), я получил файл следующего формата:
Код: 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.
55.
56.
57.
58.
<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
	xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
	xmlns:rs='urn:schemas-microsoft-com:rowset'
	xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
	<s:ElementType name='row' content='eltOnly'>
		<s:AttributeType name='IdValue' rs:number='1'>
			<s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true' rs:maybenull='false'/>
		</s:AttributeType>
		<s:AttributeType name='IdSeason' rs:number='2' rs:writeunknown='true'>
			<s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true' rs:maybenull='false'/>
		</s:AttributeType>
		<s:AttributeType name='IdType' rs:number='3' rs:writeunknown='true'>
			<s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true' rs:maybenull='false'/>
		</s:AttributeType>
		<s:AttributeType name='IdTM' rs:number='4' rs:nullable='true' rs:writeunknown='true'>
			<s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true'/>
		</s:AttributeType>
		<s:AttributeType name='IdSubTM' rs:number='5' rs:writeunknown='true'>
			<s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true' rs:maybenull='false'/>
		</s:AttributeType>
		<s:AttributeType name='IdGender' rs:number='6' rs:writeunknown='true'>
			<s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true' rs:maybenull='false'/>
		</s:AttributeType>
		<s:AttributeType name='IdCollection' rs:number='7' rs:writeunknown='true'>
			<s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true' rs:maybenull='false'/>
		</s:AttributeType>
		<s:AttributeType name='IdSite' rs:number='8' rs:writeunknown='true'>
			<s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true' rs:maybenull='false'/>
		</s:AttributeType>
		<s:AttributeType name='IdCTM' rs:number='9' rs:nullable='true' rs:writeunknown='true'>
			<s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true'/>
		</s:AttributeType>
		<s:AttributeType name='Model' rs:number='10' rs:nullable='true' rs:writeunknown='true'>
			<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='30'/>
		</s:AttributeType>
		<s:AttributeType name='Fabric' rs:number='11' rs:writeunknown='true'>
			<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='30' rs:maybenull='false'/>
		</s:AttributeType>
		<s:AttributeType name='CodeColor' rs:number='12' rs:nullable='true' rs:writeunknown='true'>
			<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='100'/>
		</s:AttributeType>
		<s:AttributeType name='NameColor' rs:number='13' rs:nullable='true' rs:writeunknown='true'>
			<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='50'/>
		</s:AttributeType>
		<s:AttributeType name='SizeRLC' rs:number='14' rs:nullable='true'>
			<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='62'/>
		</s:AttributeType>
		<s:extends type='rs:rowbase'/>
	</s:ElementType>
</s:Schema>
<rs:data>
	<z:row IdValue='1088719' IdSeason='4' IdType='1' IdTM='19' IdSubTM='1126' IdGender='1' IdCollection='2' IdSite='1'
		 IdCTM='19188' Model='148169' Fabric='WAAN0' CodeColor='6215' SizeRLC='36'/>
	<z:row IdValue='1088720' IdSeason='4' IdType='1' IdTM='19' IdSubTM='1126' IdGender='1' IdCollection='2' IdSite='1'
		 IdCTM='19188' Model='148169' Fabric='WAAN0' CodeColor='6215' SizeRLC='36/5'/>
</rs:data>
</xml>
Где вначале описывается схема, а за ней идут данные.
Для загрузки данных использую метод SQLXMLBulkLoad.Execute, куда передаётся сам xml файл
и аннотированная схема, которая позволяет корректно загрузить данные в нужную таблицу.
Для простых xml документов(где не используются namespaces) шаблонная схема рисуется с пол тычка, но вот когда встречаются структуры вида:
Код: plaintext
1.
2.
3.
4.
5.
6.
<rs:data>
	<z:row IdValue='1088719' IdSeason='4' IdType='1' IdTM='19' IdSubTM='1126' IdGender='1' IdCollection='2' IdSite='1'
		 IdCTM='19188' Model='148169' Fabric='WAAN0' CodeColor='6215' SizeRLC='36'/>
	<z:row IdValue='1088720' IdSeason='4' IdType='1' IdTM='19' IdSubTM='1126' IdGender='1' IdCollection='2' IdSite='1'
		 IdCTM='19188' Model='148169' Fabric='WAAN0' CodeColor='6215' SizeRLC='36/5'/>
</rs:data>
моих познаний XML уже к сожалению не хватает. Может быть кто-нибудь подскажет, как нужно корректно подправить схему,чтобы можно было достучаться до данных <rs:data> / <z:row>
Привожу пример аннотированной схемы:
Код: 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.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
  xmlns:ms="urn:schemas-microsoft-com:mapping-schema">


 <xsd:element name="data" ms:is-constant="1">
   <xsd:complexType>
     <xsd:sequence> 

        <xsd:element name ="row" ms:relation="test1">
         <xsd:complexType>


           <xsd:attribute name ="IdValue"  ms:datatype="int" ms:field="IdValue"  > </xsd:attribute >  
           <xsd:attribute name ="IdSeason" ms:datatype="int" ms:field="IdSeason" > </xsd:attribute >  
 

         </xsd:complexType>        
        </xsd:element>  

      
     </xsd:sequence>  
   </xsd:complexType>
 </xsd:element>


</xsd:schema>
которую я использовал для загрузки xml файла, вида:
Код: plaintext
1.
2.
3.
4.
5.
6.
<data>
	<row IdValue='1088719' IdSeason='4' IdType='1' IdTM='19' IdSubTM='1126' IdGender='1' IdCollection='2' IdSite='1'
		 IdCTM='19188' Model='148169' Fabric='WAAN0' CodeColor='6215' SizeRLC='36'/>
	<row IdValue='1088720' IdSeason='4' IdType='1' IdTM='19' IdSubTM='1126' IdGender='1' IdCollection='2' IdSite='1'
		 IdCTM='19188' Model='148169' Fabric='WAAN0' CodeColor='6215' SizeRLC='36/5'/>
</data>
Буду очень презнателен,если посдкажете как решить данную проблему.
Спасибо.
...
Рейтинг: 0 / 0
Проблема с аннотированной схемой для загрузки XML через SQLXMLBulkLoad.
    #34780610
Alexey^^
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
up
...
Рейтинг: 0 / 0
Проблема с аннотированной схемой для загрузки XML через SQLXMLBulkLoad.
    #34780636
ZanZibArgh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в чем вопрос-то конкретно?)))

в схеме все атрибуты перечислили, это только кусок приведен?
...
Рейтинг: 0 / 0
Проблема с аннотированной схемой для загрузки XML через SQLXMLBulkLoad.
    #34780680
ZanZibArgh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а, понял.. да, с этим тоже бьюсь )))

ну.. нужно искать схемы s, rs и z рекордсета..

попробуйте воспользоваться сгенерированной схемой
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<?xml version = "1.0" encoding = "utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wmh="http://www.wmhelp.com/2003/eGenerator" elementFormDefault="qualified" xmlns:s="www.s.com" xmlns:rs="www.rs.com" xmlns:z="www.z.com">
  <xs:import namespace="www.s.com" schemaLocation="_s.xsd"/>
  <xs:import namespace="www.rs.com" schemaLocation="_rs.xsd"/>
  <xs:import namespace="www.z.com" schemaLocation="_z.xsd"/>
  <xs:element name="xml">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="s:Schema"/>
        <xs:element ref="rs:data"/>
      </xs:sequence>
      <xs:attribute name="xmlns:s" type="xs:string"/>
      <xs:attribute name="xmlns:dt" type="xs:string"/>
      <xs:attribute name="xmlns:rs" type="xs:string"/>
      <xs:attribute name="xmlns:z" type="xs:string"/>
    </xs:complexType>
  </xs:element>
</xs:schema>
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Проблема с аннотированной схемой для загрузки XML через SQLXMLBulkLoad.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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