Umarım birileri bana yardımcı olabilir. Bu konuda çok yeniyim. XML verilerini çoklu SQL tablolarına (sql:relation attribute
, vb. Kullanarak) dökmek için bir XSD Şeması almanın mümkün olup olmadığını merak ediyordum.XML verilerini SQL tablolarına koymak için bir XSD Şeması yazma
Bir tablo sorun olmadığını kanıtlıyor, bu yüzden iki veriyi döküp dökemeyeceğinizi merak ettim. Bunu bir XSD Şeması ile yapabilmek güzel olurdu, ama ikinci tablo için XML'de iki geçiş yapmak zorunda mıyım?
Yardımlarınız için teşekkür ederiz. Gördüğünüz gibi
<?xml version='1.0' encoding='utf-8'?>
<feed version="2">
<numFound>7985</numFound>
<products>
<product id="18639|216623247">
<title>Trouser</title>
<url>http://www.products.com/trousers/trouser/</url>
<image_url>http://www.images.co.uk/images/big/4d624426.jpg</image_url>
<verified_image>True</verified_image>
<currency>GBP</currency>
<price>1000</price>
<prev_price>1000</prev_price>
<firstseen>2010-10-27T00:00:00Z</firstseen>
<lastseen>2010-10-27T00:00:00Z</lastseen>
<merchant id="20748">Yours Clothing</merchant>
<by>Yours Clothing</by>
<description></description>
<category>
<item id="9">Lounge & nightwear</item>
<item id="3">Women</item>
<item id="2">Clothing</item>
<item id="1">Clothing, shoes & accessories</item>
</category>
</product>
</products>
</feed>
, bu iki tablo içine dökümü çalışır: Burada
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<!-- Skimlinks/Everyfeed schema -->
<!-- definition of simple elements -->
<xs:element name="title" type="xs:string" sql:field="ProductName"/>
<xs:element name="url" type="xs:string" sql:field="ProductURL"/>
<xs:element name="image_url" type="xs:string" sql:field="ImageURL"/>
<xs:element name="currency" type="xs:string" sql:field="currency"/>
<xs:element name="price" type="xs:string" sql:field="Price"/>
<xs:element name="merchant" type="xs:string" sql:field="Brand" default=" " />
<xs:element name="description" type="xs:string" sql:field="Description" default=" "/>
<xs:element name="item" type="xs:string" sql:field="Category" />
<!-- definition of attributes -->
<xs:attribute name="id" type="xs:string" sql:field="SKU" />
<!-- definition of complex elements -->
<xs:element name="category" sql:relation="ProductDataCategory">
<xs:complexType>
<xs:sequence>
<xs:element ref="item" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="product" sql:relation="ProductData">
<xs:complexType>
<xs:sequence>
<xs:element ref="title"/>
<xs:element ref="url"/>
<xs:element ref="image_url"/>
<xs:element ref="currency"/>
<xs:element ref="price"/>
<xs:element ref="merchant"/>
<xs:element ref="description"/>
<xs:element ref="category"/>
</xs:sequence>
<xs:attribute ref="id" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="products" sql:is-constant="1">
<xs:complexType>
<xs:sequence>
<xs:element ref="product" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="everyFeed" sql:is-constant="1">
<xs:complexType>
<xs:sequence>
<xs:element ref="products" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
biz ithal ediyoruz XML bir örnek: Burada
şema kendisi var: ProductData ve ProductDataCategory. Sadece
<item>
öğelerinde saklanan öğeler ikinci tabloya (alan kategorisinde) gitmelidir.
hata mesajı okur:! Bu işe yaraması herhangi yardım için :(
Teşekkür
@Django - Bu, XML şemasına Microsoft'a özgü bir uzantı olduğundan yeniden etiketlendim – Anon
Yapmaya çalıştığınız şey hakkında daha fazla ayrıntı vermek isteyeceksiniz. Verileri tek bir tabloya toplu yüklemek için bu şemayı nasıl kullanıyorsunuz? –
Merhaba John, işte daha fazla ayrıntı: http://stackoverflow.com/questions/3373104/problem-during-sql-bulk-load –